Frage

Als .NET -Entwickler habe ich immer von der Möglichkeit geträumt, mich mit meinen vorhandenen Fähigkeiten (C#) für das iPhone zu entwickeln.

Beide Programme erfordern einen Mac und das iPhone SDK installiert.

Appcelerator Titanium war die erste App, die ich ausprobiert habe, und es basiert darauf, eine iPhone -native API JavaScript auszusetzen, damit sie mit dieser Sprache aufgerufen werden können.

Monotouch beginnt bei 399 US -Dollar für Bienen, die auf dem iPhone und nicht auf dem iPhone -Simulator bereitgestellt werden können, während Titan kostenlos ist.

Monotouch (Monodevelop) hat eine IDE, die derzeit in Titan fehlt (aber Sie können jeden Redakteur wie Textmate, Aptana ...).)

Ich denke, dass beide Programme am Ende eine native vorkompilierte App generieren (auch wenn ich mir nicht sicher bin, wie die endgültige App auf dem iPhone, wie ich denke, dass .NET Framework -Anrufe zur Zusammenstellung der Zusammenstellung in Monotouch vorgezogen werden).

Ich bin mir auch nicht sicher, ob die gesamte iPhone -API und -funktionen die volle Berichterstattung übernommen haben.

Titanium hat auch den Vorteil, die Entwicklung der Android -App zu ermöglichen, aber als AC# -entwickler finde ich immer noch Monotouch -Erfahrung eher wie das Visual Studio One.

Welches würden Sie wählen und welche Erfahrungen sind Ihre Erfahrungen auf Monotouch und Titan?

War es hilfreich?

Lösung

Wie alle, die auf der Art oder Plattform-oder-Sprache-oder-Framework-or-was auch immer die Frage, sollte es wirklich darauf ankommen, was Sie wollen.

Vergessen Sie all die, die Sie mit der Entwicklung des Plattforms-Sie-Sie-Sie-Sie-Sie-Sie-Sie-Sie-Sie-Sie-Sie-Sie-Sie-Sie-Sie-Sie-Sie-Sie-Sied-Ratschlägees. Wenn Sie sich für das Lernen von Objektiv-C, Xcode und zugehörigen Apple Bits interessieren, dann Goferit. Ich tat. Es hat Spaß gemacht, aber mein Interesse war die Entwicklung iPhone -Apps. Eine neue Sprache, ein neuer Rahmen und eine neue IDE zu lernen war nur ein Bonus (ich mag dieses Zeug). Es war auch notwendig, als ich anfing.

Ich habe seit seiner Veröffentlichung mit Monotouch gearbeitet und ich liebe es. ich Bevorzugen Sie C# zu objektivem C, und ich mag es, Zugriff auf die Teilmenge des .NET (Mono) -Frichelements zu haben, das Monotouch bietet. Es gibt bestimmte Dinge, die einfach einfacher mit .NET zu tun haben als mit Kakao (String Manipulation, Datum Manipulation, irgendetwas Xml usw.).

Ich mag es auch, mich nicht mehr mit Referenzzählungen auseinanderzusetzen. Ich war verwöhnt, weil ich jahrelang nicht auf diesem Niveau im Auge behalten musste. Es macht mir nichts aus, nach mir aufzuräumen, aber ich möchte nicht manuell etwas tun müssen, was jede andere moderne Entwicklerplattform, die ich verwendet habe, automatisch für mich tut. Auch für erfahrene Objektiv-C-Entwickler ist die Referenzbeziehung kein Kinderspiel. Scrollen Sie irgendwann durch die Konsolenausgabe von OS X, um zu sehen, wie viele Apps aufgrund von Speichermanagementproblemen abstürzen (ich weiß - dies kann im Grunde genommen mit jeder App passieren, aber es ist viel einfacher, die Fehler zu machen, die zu dieser Situation führen, wenn Sie überarbeitete Entwickler erhalten deren Aufmerksamkeitsspannen durch zwölf Stunden von IF this und wenn das und sonst das und sonst das und bla bla bla zerstört wurden.

Ich verwende immer noch Objective -C/Xcode - ich habe wirklich gelernt, Apples Tools zu mögen. Ich fühle mich ehrlich gesagt unangenehm und ein bisschen arkan, aber immer noch Spaß.

Aber ... dann gefällt mir auch das:

public string SomeString { get; set; }

Um dasselbe mit Objective-C (ohnehin auf dem iPhone) zu tun In welchen Eigenschaftenattributen, die Sie angeben, haben Sie möglicherweise eine Eigenschaft, die Getters und Setzer einwickelt, die sich um die Referenzbeziehung für Sie kümmern - insgesamt, dies ist Ein Zeitspur, aber der C# ist der klare Gewinner hier).

Dies ist nur ein Beispiel dafür, wie Monotouch Ihr Leben erleichtert kann, insbesondere wenn Sie es gewohnt sind, an .net/java/python/andere Sprachen zu sein, für die Sie nicht erforderlich sind, dass Sie Ihre Finger mit Gedächtnismainement verschmutzen (es sei denn, Sie möchten) .

Was das iPhone-Ness betrifft, abgesehen von der Brinke von .NET in der iPhone-Welt sind der Monotouch-Namespace-Karten nach Cocoatouch. Wenn Sie also beispielsweise über die Monotouch UiviewController verwirrt sind, können Sie einfach zu Apple's Docs übergehen auf dem UIViewController. Monotouch .NET-Is Cocoatouch, aber es ist nah genug, dass Sie wahrscheinlich nicht eine Wand treffen werden (das hätte auch nicht getroffen, wenn Sie Xcode/Objective-C verwendet hätten). Es ist glatt.

Titan ist anders. Da versuchen sie (versuchen) Um eine Abstraktionsebene zu erstellen, mit der Sie dieselbe App für mehrere Plattformen schreiben können, werden Sie sich mit den üblichen Nachteilen befassen: völlig unterschiedliche APIs, Flexibilitätsverlust (das gleiche kann von Monotouch gesagt werden, aber nicht aus der Ferne, um dieselbe Grad) und im Grunde genommen eine ganz neue Plattform lernen (was Sie vermeiden möchten, indem Sie Xcode/Objective-C/Cocoatouch umgehen, oder?).

Ich hasse auch JavaScript, also werde ich gegen Titan voreingenommen. Aber selbst wenn das nicht der Fall wäre - auch wenn ich eine Sprache verwenden könnte, die ich mag -, kitzeln die APIs meine Phantasie nicht. Oder mein irgendetwas.

Unabhängig von den von Ihnen gewählten Entwicklerwerkzeugen, Sie Wille Am Ende etwas über Cocoatouch lernen müssen. Ob Xcode/Objective-C, Monotouch oder Titan, etwas wird auf dich brechen oder auf dich gehen, und du musst dich schließlich auf Cocoatouch -Dokumentation verweisen.

Wenn ich einen Vortrag über die iPhone -Entwicklung halten würde (was ich habe und was ich wieder machen werde), und wenn ich Alternativen zu Apples Entwicklertools (was ich will) besprechen würde, würde ich immer noch stark ermutigen, die Entwickler zumindest zu arbeiten über ein paar grundlegende iPhone -Apps mit den nativen Tools. Es wird Sie zu einem besseren Entwickler für die Plattform machen - Zeitraum. Und Sie können diese Anfangsphase verwenden, um festzustellen wollen Um etwas anderes als die kostenlosen Apfelversorgungsbits zu verwenden. Sie könnten nicht. Ich habe Monotouch verwendet, weil es mir gefällt - nicht weil es notwendig ist.

Um ein paar grundlegende Kriterien zusammenzufassen:

  • Präferenz (Sprache/Frameworks)

  • Geräte (kümmern Sie sich um nicht-iphone-Plattformen oder denken Sie, Sie könnten eines Tages?)

  • Komfort (wenn Sie C# viel besser als Objective-C mögen und kennen, gibt es keinen Grund, nicht mit Monotouch zu gehen)

Und hören Sie nicht auf die Neinsager, es sei denn, sie haben es tatsächlich Gebraucht Die Technologie, über die sie sprechen. Zum Beispiel habe ich über Titan gelesen, aber ich habe nicht Erfahrung damit - ich weiß nur, dass ich wegen meiner Vorlieben nichts damit zu tun habe. Das macht es nicht "schlecht" - nur etwas, das ich in meinem Leben nicht will.

Das Ziel-C-Publikum kann beeindruckend eifrig sein. Während es viele aufgeschlossene Entwickler enthält, gibt es so, also, Also Viele, die objektiv-c und kakao und bla bla bla denken, sind die letzten Entwicklungswerkzeuge, die Devkind jemals brauchen werden.

Ignoriere sie.

Wenn Sie sich Sorgen um Unterstützung machen, sollten Sie einige Dinge berücksichtigen:

  • Apple bleibt wahrscheinlich aktuell, da sie diesen Müll machen.

  • Monotouch bleibt wahrscheinlich aktuell - die Mono -Peeps haben großartige Arbeit geleistet, um mit Microsoft Schritt zu halten, und ich sehe keinen Grund, warum sie mit Apple nicht dasselbe tun. Ich bin überwältigt von dem, was sie tun. Und obwohl Monotouch vor fünf Minuten veröffentlicht wurde, haben sie bereits ein Update für iPhone 3.1. Das haben es ernst und ich denke, sie sind Magie. Sie sind die Keebler -Elfen der Entwicklerwelt. Sie sitzen in ihren geheimen Schichten und schalten Sachen aus, die alle (OK - nicht alle) mögen, aber dass niemand anderes versuchen würde, dies zu tun.

  • Titanium wird entweder eine unangenehme einheitliche API für das Schreiben von Apps für mehrere Plattformen, die ganz sein eigenes Ding sind, oder es wird immer mehr zersplittert, wenn die Fähigkeiten verschiedener Plattformen abweichen. Ja, das ist ein Haufen typischer Sessel, das nerdly zukünftige Faktoren hat ... Ich hätte diesen Kugelartikel mit "Es ist meine Meinung, dass ..." vorangestellt sein sollen, wenn es nur einen Weg gäbe, zurück zu gehen und ihn zu ändern.

Ich werde jetzt die Klappe halten.

Geh mit dem, was du magst. Monotouch ist eine "sichere" Alternative zu Apples Zeug. Ich fürchte, das Titan wird die gleichen alten oops untergehen-dieses super-hohe Plattform-Abstraktion-Layer-Stuff-Stuff-Out-Really-Work-Straße, die so viele andere Technologien haben. Aber wenn Sie etwas Einfaches tun, schadet es nicht, es zu versuchen, besonders wenn man bedenkt, dass es während der Beta -Periode kostenlos ist.

Recht.

Wirklich schließen Sie jetzt ... Ich hoffe das hilft.

Andere Tipps

Dies sind lustige und interessante Möglichkeiten, wie Sie iPhone -Apps erstellen können. Für eine wirklich schnelle native iPhone -Entwicklung ist die beste Wahl der kostenlose iPhone SDK und Xcode.

Um ehrlich zu sein, sind die schwierigsten Dinge die Fähigkeiten der Frameworks selbst, nicht die Sprachsyntax. Aber das ist ein Problem, das Sie in beiden Fällen angehen müssen, da diese IDES/Sprachen immer noch einige der Konventionen von Kakao (und Kakao -Berührung) erfassen.

Ich sage das nicht als Kakao- / Objektiv-C-Snob, aber wenn Sie C kennen (was als C# dev Sie tun), gibt es wirklich keine Eintrittsbarriere.

Darüber hinaus haben Sie Zugriff auf Tonnen von Tutorials und Beispielcode, die für diese jungen Übersetzer/IDES/Sprachen nicht verfügbar sind.

Eine andere Programmiersprache zu lernen ist selten eine schlechte Sache, und als erfahrener Programmierer wird Ihre Zeitinvestition nicht so groß sein, wie Sie denken.

Ich habe ein Open -Source -Projekt erstellt http://propertycross.com Dies hilft Entwicklern, ein plattformübergreifendes mobiles Framework auszuwählen, indem die gleiche Anwendung mit Sencha, Titan, Xamarin und mehr angezeigt wird. Mit diesem Projekt können Sie eine breite Palette von Frameworks in Bezug auf Endbenutzererfahrung, Code, IDE, Entwicklererfahrung usw. leicht vergleichen.

Ich mag die Idee, Mittel zur Verfügung zu stellen, um iPhone Dev schnell im Griff zu bekommen, wobei Techno -Leute bereits wissen. I Personnaly, als Java -Entwickler, benutze ispectrum (http://www.flexycore.com). Es kommt auch mit einer IDE, einem Debugger und einem Dingen, mit denen es wirklich bequem zu entwickeln ist, da es die Kraft des Eclipse -Java -Plugins profitiert. Wenn Sie auf Java basieren, können Sie auch den bereits vorhandenen Code von anderen Java -Apps problemlos wiederverwenden. Dies kann sehr praktisch sein, sofern Java auf fast allen Plattformen (Desktop & Mobile) mit Ausnahme des iPhone vorhanden ist. Außerdem ist es für Open -Source -Projekte kostenlos.

Ich würde diese Art von Lösungen lieber in Betracht ziehen, weil ich die Idee, sich in EMACs zu entwickeln, nicht mag :).

Ich weiß in SDK 4.0 verboten werden. Ihre einzige "sichere" Wette für das Schreiben von iPhone-Apps ist die Verwendung von Xcode und Objective-C, zumindest vorerst.

Wenn Sie C# -Programmierer sind, sollten Sie einige Male nicht investieren, um objektiv C zu lernen. Ehrlich gesagt, wird es nicht viel Zeit von Ihnen dauern. Aber Sie fühlen sich gut, in einer neuen Plattform mit neuer Sprache zu arbeiten. Das Erlernen neuer Dinge alle Zeiten fasziniert mich.

Es gibt zahlreiche Möglichkeiten, auf das Gerät zu gelangen. Apple hat in der SDK -Lizenz angegeben, dass die einzige genehmigte Art, auf das Gerät zu gelangen, über C, C ++, ObjectIVec und JavaScript ist.

Zu diesem Zeitpunkt wird angezeigt, dass Apps, die auf Monotouch und Appcelerator Titanium basieren, in den App Store aufgenommen werden. Dank der Lizenzänderung gibt es viel Angst, Unsicherheit und Zweifel in diesem Thema. Apple hat Angst, dass jeder nicht Objektivec macht.

Ich würde vorschlagen, dass Sie das tun, was für Sie als Entwickler am sinnvollsten ist. Wenn Sie C# und .NET kennen, sollten Sie mit Monotouch gehen. Wenn Sie ObjectIVec oder die Mac -Plattform kennen, ist objectivec wahrscheinlich der richtige Weg. Wenn Sie x wissen und es auf dem iPhone ist, würde ich in X vorschlagen, zuerst nachzuschauen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top