Ho visto questa domanda (e variazioni su di essa) molto ultimamente. Ciò che mi stupisce è la frequenza con cui le persone rispondono, ma quanto pochi rispondono .
Ho le mie preferenze (mi piacciono entrambe le pile), ma è qui che la maggior parte delle "risposte" iniziano a sbagliare. Non dovrebbe riguardare ciò che voglio (o ciò che qualcun altro vuole).
Ecco come farei per determinare il valore di MonoTouch: ovviamente non posso essere obiettivo, ma penso che sia abbastanza privo di zelo:
È per divertimento o per affari? Se volessi entrare in consulenza in questo settore, potresti recuperare i tuoi $ 399 molto rapidamente.
Vuoi imparare la piattaforma al rovescio o vuoi "solo" scrivere app per essa?
Ti piace abbastanza .Net che usare uno stack di sviluppo diverso ti farebbe divertire? Ancora una volta, mi piacciono entrambe le pile (Apple e Mono), ma per me MonoTouch rende l'esperienza molto più divertente. Non ho smesso di usare gli strumenti di Apple, ma principalmente perché mi piacciono davvero entrambi gli stack . Adoro l'iPhone e adoro .Net. In quel caso, per me, MonoTouch è stato un gioco da ragazzi.
Ti senti a tuo agio a lavorare con C? Non intendo Objective-C, ma C - è importante perché Objective-C è C. È una versione OO simpatica, elegante e amichevole, ma se i puntatori ti danno i heebie-jeebies, MonoTouch è tuo amico. E non ascoltare gli oppositori che pensano che tu sia un fan degli sviluppatori se succede che non ti piacciono i puntatori (o C, ecc.). Ero solito andare in giro con una copia di IBM ROM BIOS Pocket Reference, e quando stavo scrivendo assembly e costringendo il mio computer a divertenti modalità video e scrivendo i miei bit di rendering dei font per loro e, ammettendo, i sistemi di finestre, non lo facevo Penso che gli sviluppatori QuickBasic fossero dei wuss. Lo erouno sviluppatore QuickBasic (oltre al resto). Non cedere mai al nerd machismo. Se non ti piace C, e se non ti piacciono i puntatori, e se vuoi stare il più lontano possibile dalla gestione manuale della memoria (e, per essere onesti, non è affatto male in ObjC), allora. .. MonoTouch. E non prenderti in giro.
Desideri scegliere come target utenti o aziende? Non importa molto per me, ma ci sono ancora persone là fuori su Edge, e il fatto è: puoi creare un pacchetto di download molto più piccolo se usi lo stack di Apple. Ho giocato con MonoTouch e ho una piccola app decente che, una volta compressa, scende a circa 2,7 MB (quando si invia l'app per la distribuzione, la si comprime - quando le app vengono scaricate dallo store, esse ' re zippato - quindi quando capisci se la tua app arriverà sotto il limite OTA di 10 MB, chiudi prima la cerniera - rimarrai piacevolmente sorpreso da MonoTouch). Ma a parte la felicità di MT, mezzo mega contro quasi tre (per esempio) è qualcosa che potrebbe essere importante per te se stai prendendo di mira gli utenti finali. Se stai pensando al lavoro aziendale, pochi MB non contano affatto. E, solo per essere chiari - invierò presto un'app basata su MT allo store e non ho alcun problema con le dimensioni. Non mi disturba affatto. Ma se è qualcosa che potrebbe interessaretu , allora lo stack di Apple vince questo.
Funziona XML? MonoTouch. Periodo.
Manipolazione delle stringhe? Manipolazione della data? Un milione di altre piccole cose a cui ci siamo abituati con i framework .Net tutto-E-il-lavello della cucina? MonoTouch.
Servizi web? MonoTouch.
Sintatticamente, entrambi hanno i loro vantaggi. Objective-C tende ad essere più dettagliato dove devi scriverlo . Ti ritroverai a scrivere codice con C # che non dovresti scrivere con ObjC, ma va in entrambe le direzioni. Questo particolare argomento potrebbe riempire un libro. Preferisco la sintassi C #, ma dopo aver superato la mia reazione iniziale, questo ultraterreno, all'Obiettivo-C, ho imparato a divertirmi un po '. Mi diverto un po 'nei discorsi ( è strano per gli sviluppatori che sono abituati a C # / Java / ecc.), Ma la verità è che ho un punto a forma di Obiettivo-C nel mio cuore che mi rende felice.
Intendi utilizzare Interface Builder? Perché, anche in questa prima versione, mi ritrovo a fare molto meno lavoro per costruire le mie UI con IB e poi usarle nel codice. Sembra che nel modo Objective-C / IB manchino interi passi, e sono quasi sicuro che manchino interi passi nel modo Objective-C / IB. Finora, e non credo di aver provato a sufficienza, ma finora , MonoTouch è il vincitore qui per quanto meno lavoro devi fare.
Pensi che sia divertente imparare nuove lingue e piattaforme? In tal caso, l'iPhone ha molto da offrire e lo stack di Apple probabilmente ti farà uscire dalla tua zona di comfort - che, per alcuni sviluppatori, è divertente (Ciao - Sono uno di quegli sviluppatori - Ci scherzo e do Apple è un momento difficile, ma mi sono divertito molto a imparare lo sviluppo dell'iPhone attraverso gli strumenti di Apple).
Ci sono così tante cose da considerare. Il valore è così astratto. Se parliamo di costi e se ne vale la pena, la risposta arriva al mio primo punto elenco: se questo è per affari e se riesci a ottenere il lavoro, ti farai guadagnare i soldi.
Quindi ... questo è il più obiettivo possibile. Questa è una breve lista di ciò che potresti chiederti, ma è un punto di partenza.
Personalmente (lasciamo cadere l'oggettività per un momento), adoro e uso entrambi. E sono contento di aver imparato prima lo stack Apple. Per me è stato più semplice iniziare a utilizzare MonoTouch quando già conoscevo il mondo di Apple. Come altri hanno già detto, continuerai a lavorare con CocoaTouch - sarà solo in un ambiente .Net.
Ma c'è di più. Le persone che non hanno usato MonoTouch tendono a fermarsi qui - "È un wrapper blah blah blah" - non è MonoTouch.
MonoTouch ti dà accesso a ciò che CocoaTouch ha da offrire dandoti anche l'accesso a ciò che (un sottoinsieme di) .Net ha da offrire, un IDE con cui alcune persone si sentono più a proprio agio (io sono uno di loro), una migliore integrazione con Interface Builder e sebbene non ti dimentichi completamente della gestione della memoria, ottieni un buon margine di manovra.
Se non sei sicuro, prendi lo stack di Apple (è gratuito) e prendi lo stack di MonoTouch eval (è gratuito). Fino a quando non ti unirai al programma di sviluppo di Apple, entrambi funzioneranno solo contro il simulatore, ma è abbastanza per aiutarti a capire se preferisci enormemente l'uno all'altro e possibile se MonoTouch valga, per te, il valore di $ 399.
E non ascoltare gli zeloti: tendono ad essere quelli che non hanno usato la tecnologia contro cui stanno correndo :)