Ich habe diese Frage (und Variationen davon) in letzter Zeit oft gesehen. Was mich erstaunt ist, wie oft Menschen antworten, aber wie wenige antworten .
Ich habe meine Vorlieben (ich mag beide Stapel), aber hier beginnen die meisten "Antworten" falsch zu laufen. Es sollte nicht darum gehen, was ich will (oder was jemand anderes will).
So würde ich den Wert von MonoTouch bestimmen - ich kann natürlich nicht objektiv sein, aber ich denke, das ist ziemlich eifrig:
Ist das zum Spaß oder geschäftlich? Wenn Sie sich in diesem Bereich beraten lassen möchten, können Sie Ihre 399 US-Dollar sehr schnell zurückerhalten.
Möchten Sie die Plattform von innen nach außen lernen oder möchten Sie "nur" Apps dafür schreiben?
Gefällt dir .Net genug, dass die Verwendung eines anderen Entwickler-Stacks dir den Spaß nehmen würde? Auch hier mag ich beide Stacks (Apple und Mono), aber für mich macht MonoTouch die Erfahrung so viel mehr Spaß. Ich habe nicht aufgehört, Apples Tools zu verwenden, aber das liegt hauptsächlich daran, dass ich beide Stacks wirklich mag . Ich liebe das iPhone und ich liebe .Net. In diesem Fall war MonoTouch für mich ein Kinderspiel.
Fühlen Sie sich wohl bei der Arbeit mit C? Ich meine nicht Objective-C, sondern C - es ist wichtig, weil Objective-C C ist . Es ist eine nette, schicke, freundliche OO-Version, aber wenn Zeiger Ihnen die heebie-jeebies geben, ist MonoTouch Ihr Freund. Und hören Sie nicht auf die Neinsager, die denken, Sie sind ein Entwickler, wenn es passiert, dass Sie keine Zeiger (oder C usw.) mögen. Früher bin ich mit einer Kopie der IBM ROM BIOS Pocket Reference herumgelaufen, und als ich Assembler schrieb und meinen Computer in lustige Videomodi zwang und meine eigenen Schriftwiedergabebits für sie und (zugegebenermaßen trashige) Fenstersysteme schrieb, tat ich das nicht. Ich glaube nicht, dass die QuickBasic-Entwickler Trottel waren. Ich warein QuickBasic-Entwickler (zusätzlich zu den anderen). Gib niemals dem Nerd-Machismo nach. Wenn Sie C nicht mögen und wenn Sie keine Zeiger mögen und wenn Sie sich so weit wie möglich von der manuellen Speicherverwaltung entfernen möchten (und um fair zu sein, ist es in ObjC überhaupt nicht schlecht), dann. .. MonoTouch. Und nimm keinen Scherz dafür.
Möchten Sie Benutzer oder Unternehmen ansprechen? Es ist mir nicht wichtig, aber es gibt immer noch Leute auf Edge, und Tatsache ist: Sie können ein weitaus kleineres Download-Paket erstellen, wenn Sie den Apple-Stack verwenden. Ich habe mit MonoTouch herumgespielt und es gibt eine anständige kleine App, die nach dem Komprimieren auf etwa 2,7 MB reduziert wird (wenn Sie Ihre App zur Verteilung einreichen, komprimieren Sie sie - wenn Apps aus dem Store heruntergeladen werden, werden sie ' re zipped - Wenn Sie also herausfinden, ob Ihre App unter das 10-MB-OTA-Limit fällt, zippen Sie zuerst den Sauger - Sie werden von MonoTouch angenehm überrascht sein. Abgesehen von MT-Glück ist eine halbe Megabyte gegenüber fast drei (zum Beispiel) etwas, das für Sie wichtig sein könnte, wenn Sie Endbenutzer ansprechen. Wenn Sie an Unternehmensarbeit denken, spielen ein paar MB überhaupt keine Rolle. Und, Nur um klar zu sein - ich werde demnächst eine MT-basierte App im Store einreichen, und ich habe keinerlei Probleme mit der Größe. Stört mich überhaupt nicht. Aber wenn das etwas ist, das Sie betreffen würdeSie , dann gewinnt Apples Stack diesen.
Arbeiten Sie mit XML? MonoTouch. Zeitraum.
String-Manipulation? Datumsmanipulation? Eine Million anderer kleiner Dinge, an die wir uns mit .Nets Rahmen für alles und die Küchenspüle gewöhnt haben? MonoTouch.
Internetdienste? MonoTouch.
Syntaktisch haben beide ihre Vorteile. Objective-C ist in der Regel ausführlicher, wenn Sie es schreiben müssen . Sie werden feststellen, dass Sie Code mit C # schreiben, den Sie nicht mit ObjC schreiben müssten, aber es geht in beide Richtungen. Dieses spezielle Thema könnte ein Buch füllen. Ich bevorzuge die C # -Syntax, aber nachdem ich meine anfängliche Reaktion auf Objective-C überwunden habe, habe ich gelernt, sie ziemlich zu genießen. Ich mache mich in Gesprächen ein bisschen darüber lustig (es ist komisch für Entwickler, die an C # / Java / etc. Gewohnt sind), aber die Wahrheit ist, dass ich einen objektiv-C-förmigen Fleck in meinem Herzen habe, der mich glücklich macht.
Planen Sie Interface Builder zu verwenden? Denn selbst in dieser frühen Version mache ich viel weniger Arbeit, um meine Benutzeroberflächen mit IB zu erstellen und sie dann im Code zu verwenden. Es fühlt sich so an, als ob in der Objective-C / IB-Vorgehensweise ganze Schritte fehlen, und ich bin mir ziemlich sicher, dass ganze Schritte in der Objective-C / IB-Vorgehensweise fehlen. Bisher und ich glaube nicht, dass ich ausreichend getestet habe, aber bisher ist MonoTouch hier der Gewinner dafür, wie viel weniger Arbeit Sie erledigen müssen.
Denkst du, es macht Spaß, neue Sprachen und Plattformen zu lernen? Wenn ja, hat das iPhone viel zu bieten, und Apples Stack wird Sie wahrscheinlich aus Ihrer Komfortzone bringen - was für einige Entwickler Spaß macht (Hallo - ich bin einer dieser Entwickler - ich scherze darüber und gebe Apple hat es schwer, aber ich hatte viel Spaß beim Erlernen der iPhone-Entwicklung mit Apples Tools.
Es gibt so viele Dinge zu beachten. Wert ist so abstrakt. Wenn wir über die Kosten sprechen und ob es sich lohnt, kommt die Antwort auf meinen ersten Punkt: Wenn dies geschäftlich ist und Sie die Arbeit bekommen können, werden Sie Ihr Geld sofort zurückverdienen.
Also ... das ist ungefähr so objektiv wie ich sein kann. Dies ist eine kurze Liste dessen, was Sie sich fragen könnten, aber es ist ein Ausgangspunkt.
Persönlich (lassen Sie uns die Objektivität für einen Moment fallen), ich liebe und benutze beide. Und ich bin froh, dass ich zuerst den Apple-Stack gelernt habe. Es war für mich einfacher, mit MonoTouch zu arbeiten, als ich mich bereits in der Welt von Apple auskannte. Wie andere gesagt haben, werden Sie immer noch mit CocoaTouch arbeiten - es wird nur in einer .NET-Umgebung sein.
Aber es gibt noch mehr. Die Leute, die MonoTouch nicht benutzt haben, neigen dazu, hier anzuhalten - "Es ist ein Wrapper bla bla bla" - das ist nicht MonoTouch.
Mit MonoTouch haben Sie Zugriff auf das, was CocoaTouch zu bieten hat, und gleichzeitig auf das, was (eine Teilmenge von) .Net zu bieten hat. Eine IDE, mit der sich einige Leute wohler fühlen (ich bin einer von ihnen), und eine bessere Integration in Interface Builder und obwohl Sie die Speicherverwaltung nicht völlig vergessen, haben Sie ein gutes Maß an Spielraum.
Wenn Sie sich nicht sicher sind, greifen Sie zu Apples Stack (kostenlos) und zum MonoTouch-Evaluierungsstapel (kostenlos). Bis Sie sich Apples Entwicklungsprogramm anschließen, laufen beide nur gegen den Simulator. Dies reicht jedoch aus, um herauszufinden, ob Sie das eine dem anderen vorziehen und ob MonoTouch für Sie die 399 US-Dollar wert ist.
Und hör nicht auf die Eiferer - sie sind in der Regel diejenigen, die die Technologie, gegen die sie schimpfen, nicht benutzt haben :)