Monotouch oder Titanium für schnelle Anwendungsentwicklung auf IPhone?
Als .Net-Entwickler, die ich immer davon geträumt, die Möglichkeit zu entwickeln, mit meinen vorhandenen Fähigkeiten (c#) - Applikationen für das Iphone.
Beide Programme benötigen ein Mac, und das Iphone Sdk installiert.
Appcelerator Titanium war die erste app, die ich habe versucht, und es basiert auf Verfügbarmachen einige Iphone-native-api für javascript, so dass Sie aufgerufen werden können, mit dieser Sprache.
Monotouch beginnt bei $399 für beeing in der Lage, die Bereitstellung auf dem Iphone und nicht auf dem Iphone simulator, während Titan ist kostenlos.
Monotouch (Monodevelop) hat eine Ide, die derzeit fehlt in Titan (aber Sie können mit jedem editor wie Textmate, Aptana...)
Ich denke, dass beide Programm erstellt am Ende eine native, vorkompilierte app (auch wenn ich nicht sicher über die Größe der fertigen app auf dem Iphone wie ich mir das denke .Net framework-Aufrufe sind prelilnked bei der Kompilierung in Monotouch).
Ich bin auch nicht sicher über die vollständige Abdeckung aller Iphone-api und features.
Titan hat auch den Vorteil, zu ermöglichen, Android app Entwicklung, aber als c# - Entwickler finde ich immer noch Monotouch mehr erleben, wie der Visual Studio one.
Welches würden Sie wählen und was sind Ihre Erfahrungen auf Monotouch und Titanium?
InformationsquelleAutor der Frage Ronnie | 2009-09-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie jede die -, Werkzeug-oder-Plattform-oder-Sprache-oder-Rahmen-oder-was auch immer Frage, es sollte wirklich nach unten kommen, um das, was Sie wollen.
Vergessen, all die wenn-Sie-wollen-zu-entwickeln-für-das-Plattform-dann-Sie-haben-zu-zahlen-Ihre-Beiträge beraten. Wenn Sie interessiert sind zu lernen, Objective-C, Xcode und den zugehörigen Apple-bit, dann goferit. Ich habe. Es macht schon Spaß, aber meine war das Interesse in der Entwicklung von iPhone-apps. Das erlernen einer neuen Sprache, framework und IDE war nur ein bonus (ich mag das Zeug). Es war auch notwendig, als ich anfing.
Arbeite ich mit MonoTouch, da es veröffentlicht wurde, und ich Liebe es. Ich lieber C# , Objective-C, und ich mag, dass der Zugriff auf die Teilmenge der .Net (Mono) - framework, das MonoTouch liefert. Es gibt bestimmte Dinge, die sind einfach leichter zu tun .Net als Kakao (string-manipulation, die manipulation von Datum, alles XML, etc.).
Ich auch wie nicht mit mit reference-counting-mehr. Ich war verwöhnt von Jahren nicht mit zu verfolgen, die Ressourcen auf dieser Ebene. Ich bin nicht dagegen, dass Aufräumen nach mir selbst, aber ich will nicht zu haben, um manuell tun, etwas, das jeder andere moderne dev-Plattform, die ich verwendet habe, hat für mich automatisch. Plus, selbst für erfahrene Objective-C-Entwickler, reference-counting-ist das nicht ein no-brainer. Navigieren durch OS X ist die Ausgabe der Konsole irgendwann zu sehen, wie viele apps Abstürzen aufgrund von Speicher-management-Probleme (ich weiß - das kann passieren, im Grunde mit jeder app, aber es ist viel einfacher, Fehler zu machen, die zu dieser situation führen, wenn Sie überarbeitet devs beteiligt, deren Aufmerksamkeitsspanne wurden zerstört, zwölf Stunden, wenn dies und wenn das und anderes dies und anderes, und blah, blah, blah).
Ich immer noch mit Objective-C/Xcode - ich habe wirklich gelernt, wie die Apple-tools. Ich ehrlich das Gefühl, Sie sind umständlich und ein wenig undurchsichtig, aber immer noch Spaß.
Aber... dann bin ich auch gerne dabei:
Tun die gleiche Sache mit Objective-C (iPhone, sowieso) erfordert, dass Sie deklarieren eine lokale variable zurück die Eigenschaft, schreiben die Deklaration einer Eigenschaft, und dann mit dem "synthetisieren" - Richtlinie haben die Eigenschaft, die für Sie generiert (je nachdem, welche Eigenschaft die Attribute, die Sie angeben, haben Sie möglicherweise eine Eigenschaft, die wraps Getter und setter, die kümmern sich um reference-counting für Sie - insgesamt ist eine Zeitersparnis, aber der C# - Weise ist der klare Sieger hier).
Das ist nur ein Beispiel, wie MonoTouch können Ihr Leben einfacher machen, vor allem, wenn Sie ' re verwendet, um .Net/Java/Python/anderen Sprachen, die nicht erfordern, dass Sie Ihren Finger schmutzig mit memory-mangement (es sei denn, Sie möchten).
Soweit iPhone-ness angeht, abgesehen von der Aufzucht Teil .Net, um die iPhone-Welt, die MonoTouch-namespace Karten, Cocoa-Touch, also, wenn Sie verwirrt sind über, sagen wir, die MonoTouch UIViewController, Sie können nur hüpfen über die Apple docs auf dem UIViewController. MonoTouch .Net-izes Cocoa-Touch, aber es ist nahe genug, dass Sie wahrscheinlich eine Wand schlagen (wäre das nicht auch getroffen haben, wenn Sie wurden mit Xcode/Objective-C). Es ist glatt.
Titan ist anders. Da Sie versuchen (versuchen) zu erstellen, die eine Abstraktionsschicht, mit der Sie schreiben die gleiche Anwendung für mehrere Plattformen, die Sie gehen, um sich mit den üblichen Nachteilen: Völlig unterschiedliche APIs, Verlust der Flexibilität (das gleiche kann gesagt werden von MonoTouch, aber nicht aus der Ferne, um den gleichen Grad), und im Grunde zu lernen, eine ganz neue Plattform (das ist, was man versucht zu vermeiden, indem man rund um Xcode/Objective-C/Cocoa-Touch, richtig?).
Ich auch hasse JavaScript, so werde ich zu voreingenommen sein gegen Titan. Aber selbst wenn das nicht der Fall gewesen - auch wenn die ich verwenden könnte, eine Sprache, die ich mag - die APIs nicht kitzeln meine Phantasie. Oder meine nichts.
Unabhängig von der dev-tools, die Sie wählen, Sie wird bis zum Ende lernen Sie etwas über Cocoa-Touch. Ob Xcode/Objective-C, MonoTouch oder Titan, etwas ist zu brechen, oder gehen alle wackelig auf Sie, und Sie schließlich gehen zu müssen, siehe Cocoa-Touch Dokumentation.
Wenn ich einen Vortrag über die iPhone-Entwicklung (die ich habe, und das werde ich tun, mal wieder), und wenn ich waren zu diskutieren, alternativen zu apples dev-tools (die ich), würde ich noch empfehlen devs, um zumindest die Arbeit durch ein paar grundlegende iPhone-apps mithilfe der systemeigenen tools. Es wird machen Sie eine bessere Entwickler für die Plattform - Periode. Und Sie können diese zu Beginn der phase zu bestimmen, wenn Sie selbst wollen zu benutzen alles andere als frei von Apple mitgelieferten bits. Sie möglicherweise nicht. Ich habe mit MonoTouch, weil es mir gefällt - nicht weil es nötig ist.
Also, um zusammenzufassen, ein paar grundlegende Kriterien:
Präferenz (Sprache/frameworks)
Geräte (haben Sie Sorge, über die nicht-iPhone-Plattformen oder denken Sie vielleicht eines Tages?)
Komfort (wenn Sie mögen und wissen, C# VIEL besser als Objective-C, es gibt keinen Grund, nicht zu gehen mit MonoTouch)
Und hört nicht auf die Neinsager, es sei denn, Sie haben tatsächlich verwendet die tech Sie reden. Ich habe zum Beispiel gelesen, über Titan, aber ich bin nicht erfahren mit es - ich weiß nur, dass ich nicht wollen, etwas zu tun, aufgrund meiner Vorlieben. Das macht es nicht "schlimm" - nur etwas, was ich nicht will in meinem Leben.
Den Objective-C Menge kann eindrucksvoll eifrig. Zwar gibt es eine Menge open-minded devs in es, es gibt so, so, so viele, die glauben, Objective-C und Cocoa und bla bla bla sind DIE letzten dev-tools devkind jemals brauchen werden.
Ignorieren.
Wenn Sie besorgt über die Unterstützung, hier einige Sachen zu beachten:
Apple dürfte aktuell bleiben, wie Sie sind diejenigen, die diese junk.
MonoTouch ist wahrscheinlich, um aktuelle bleiben - die Mono guckt getan haben einen fantastischen job zu halten mit Microsoft, und ich sehe keinen Grund, warum Sie das nicht tun das gleiche mit Apple. Ich bin begeistert von dem, was Sie tun. Und trotz MonoTouch nachdem freigegeben wurde, wie fünf Minuten vor, Sie haben bereits ein update für das iPhone 3.1 Zeug. Sie sind ernst, und ich denke, Sie sind Magie. Sie sind die Keebler Elfen der dev-Welt. Sie sitzen in Ihren geheimen Schichten und Kurbel aus Sachen die jeder (ok - nicht alle) mag, aber, dass niemand sonst auch nur den Versuch zu machen.
Titan wird entweder gehen, um sich eine peinliche einheitliche API zum schreiben von apps für mehrere Plattformen, ist ganz allein seine eigene Sache, oder es wird sich mehr und mehr zersplittert als die Fähigkeiten der verschiedenen Plattformen abweichen. Ja, das ist ein Haufen von typischen Sessel nerdly Zukunft blicken... ich habe das Präfix dieses Kugel Element mit "Es ist meine Meinung, dass...", Wenn es nur einen Weg, um zurück zu gehen und ändern Sie es.
Werde ich still bis jetzt.
Gehen Sie mit, was Ihnen gefällt. MonoTouch ist eine "sichere" alternative zu apples Zeug. Ich fürchte, Titan ist zu gehen hinunter die gleiche alte oops-das-super-high-level-Plattform-Abstraktion-layer-Zeug-nicht-wirklich-Arbeit, die Straße, die so viele andere Technologien haben. Aber wenn Sie etwas einfacher, es gibt keinen Schaden in ihm einen Schuss, besonders wenn man bedenkt, dass es kostenlos während der beta-Phase.
Richtig.
Wirklich heruntergefahren, bis jetzt... ich hoffe, das hilft.
InformationsquelleAutor der Antwort Rory Blyth
Diese sind Spaß und interessante Möglichkeiten, die Sie bauen können iPhone-apps. Aber für die wirklich schnelle native iPhone-Entwicklung, Ihre beste Wette ist die Kostenlose iPhone-SDK und Xcode.
Um ehrlich zu sein, die schwierigsten Dinge zu lernen, sind die Fähigkeiten des frameworks selbst, NICHT auf die Sprache, syntax. Aber das ist ein Problem, das Sie angehen müssen entweder Weise, wie diese Entwicklungsumgebungen/Sprachen noch verlangen, dass Sie greifen einige der Konventionen von Kakao (und Cocoa Touch).
Ich nicht sagen, dies als eine Cocoa /Objective-C-snob, aber wenn Sie wissen, C (die C# - dev den Sie tun) es ist wirklich keine Barriere.
Darüber hinaus haben Sie Zugriff auf Tonnen von tutorials und Beispiel-code, das gerade nicht verfügbar sein für diese junge übersetzer/Entwicklungsumgebungen/Sprachen.
Erlernen einer anderen Programmiersprache, ist nur selten eine schlechte Sache, und wie ein erfahrener Programmierer, die Ihre Zeit-Investition nicht so groß, wie Sie denken.
InformationsquelleAutor der Antwort Corey Floyd
Habe ich ein open source Projekt http://propertycross.com , können Entwickler wählen, eine cross-Plattform-mobile-framework, indem die gleiche Anwendung mit Sencha, Titanium, Xamarin und mehr. Dieses Projekt können Sie einfach vergleichen eine Vielzahl von frameworks in Bezug auf die end-user experience, code, IDE, Entwicklungsumgebung, etc ...
InformationsquelleAutor der Antwort ColinE
Ich mag die Idee, eine Mittel, um schnell in den Griff bekommen auf dem iPhone dev mit techno-Leute schon kennen.
Ich personnaly, als Java-Entwickler sind, verwenden Sie iSPectrum (http://www.flexycore.com). Es kommen auch mit einer IDE, debugger und so Zeug, es ist wirklich bequem, um mit zu entwickeln, da es die Vorteile aller macht der Eclipse-Java-plugin.
Sie basiert auf Java, dies ermöglicht auch die einfache Wiederverwendung von bereits bestehenden code aus anderen java-apps, die wirklich nützlich, vorausgesetzt, Java ist auf fast allen Plattformen (desktop & mobile gleichermaßen), außer iPhone.
Plus es ist kostenlos für open source Projekte.
Ich würde eher überlegen, diese Art von Lösungen, da ich nicht gerne die Idee kommen Sie zurück zu der Entwicklung in den emacs 🙂 .
InformationsquelleAutor der Antwort Butters
Ich weiß, das ist ein altes Thema, aber im Interesse der dem neuesten Stand zu bleiben, es sieht aus wie MonoTouch und andere cross-Plattform-frameworks sind werde gebannt zu werden in der SDK 4.0. Ihre einzige "sichere" Wette für das schreiben von iPhone-apps ist die Verwendung von XCode und Objective-C, zumindest vorerst.
InformationsquelleAutor der Antwort shosti
Wenn Sie C# - Programmierer, warum sollten Sie nicht investieren einige Zeit, um zu lernen Objective C. Ehrlich gesagt, wird es nicht nehmen viel Zeit von dir. Aber Sie fühlt sich gut, um Arbeit in einer neuen Plattform mit neuen Sprache. Neue Dinge zu lernen, alle Zeit fasziniert mich.
InformationsquelleAutor der Antwort Mahmud Ahsan
Gibt es zahlreiche Möglichkeiten, um auf das Gerät. Apple hat erklärt, die in der SDK-Lizenz, die der einzige zugelassene Weg, um auf das Gerät über C, C++, ObjectiveC, und Javascript.
Scheint es an diesem Punkt in der Zeit, die apps gebaut auf MonoTouch und Appcelerator Titanium sind die Aufnahme in den App Store. Dank der Lizenz ändern, es gibt viel Angst, Unsicherheit und Zweifel zu diesem Thema. Apple hat Angst, jeder nicht tun, ObjectiveC.
Ich würde vorschlagen, dass Sie tun, was am meisten Sinn macht für Sie als Entwickler. Wenn Sie wissen, C# - und .NET, Sie sollten gehen mit MonoTouch. Wenn Sie wissen, ObjectiveC oder die Mac-Plattform, ObjectiveC ist wahrscheinlich der Weg zu gehen. Wenn Sie wissen, X und auf dem iPhone, naja, X ist, wo ich würde vorschlagen, auf der Suche ersten.
InformationsquelleAutor der Antwort user381079