Domanda

Sto pensando di utilizzare MonoTouch per lo sviluppo di alcuni iPhone, ma la dimensione del payload è un fattore importante.

Per un utente che non ha mai installato Mono sul proprio iPhone prima, quale sarebbe la dimensione di un Objective-C " Hello World " l'app può essere confrontata con un MonoTouch "Hello World" app?

Più specificamente, qual è il ca. numero di byte che devono essere scaricati e qual è il valore approssimativo. numero di byte utilizzati una volta installato?

È stato utile?

Soluzione

A " Hello world " programma in Objective-C occupa 50 & nbsp; KB (intera cartella .app). Con MonoTouch, un simile "Ciao mondo" l'app occupa 5 & nbsp; MB (intera cartella .app), il che non è affatto male considerando che ha un runtime con garbage collection al suo interno.

Altri suggerimenti

In 1.5 Monotouch

Una build di rilascio - che è un'applicazione creata con una licenza di distribuzione - e con nient'altro che le impostazioni di progetto predefinite, è di 5 & nbsp; MB. Di quel 4.3 & nbsp; MB è l'eseguibile binario.

Nella mia esperienza spesso aumentano fino a 10 & nbsp; MB e i forum dipingono la stessa immagine. L'appstore riporta la dimensione decompressa, tuttavia vengono scaricati zippati. L'ho compresso con circa 3 & nbsp; MB che, anche su un 3G, va bene.

A mio avviso, la maggior parte delle persone non guarderà la dimensione del file prima di scaricare un'app, né se ne preoccuperà particolarmente. Il limite dell'app store per i download 3G è ora di 20 & nbsp; MB , che rientra ampiamente nelle dimensioni di MonoTouch.

Per interpretare l'avvocato del diavolo, sì, è molti ordini più grande dell'equivalente Obiettivo-C e potrebbe spaventare alcune persone preoccupate di occupare 4-10 MB in più del loro spazio di 16 GB. Tuttavia, c'è anche il time to market e gli strumenti esistenti disponibili per .NET. Sviluppo e costruisco tutte le mie app MonoTouch in Visual Studio 2010, quindi le collaudo su Mac e non credo che nemmeno Apple sostenga che il loro IDE sia vicino al leader del settore.

Da questa domanda su MonoTouch e dimensione dei file eseguibili :

  

MonoTouch non si traduce in Obj-c. Si compila quindi in .NET IL   lo compila (come farebbe un compilatore JIT, ma prima che lo sia   corri - quindi "in anticipo" compilatore) nel codice ARM nativo.

     

così:

     

Obj-C - > GCC (o LLVM) - > Codice ARM

     

vrs MT:

     

C # - > IL - > (Compilatore AOT) - > Codice ARM

     

I binari di output in 3.x sono più grandi perché includi anche a   molto del .NET framework (beh, Mono Framework, ma lo stesso), quindi se   tu, ad esempio, usi System.Xml, devi includerlo nell'output -   lo stesso con System.dll ecc. Il linker è piuttosto intelligente, ma l'output   i binari saranno sempre più grandi .

     

Per me, l'unica cosa importante è il tempo di caricamento e la compressione   dimensione binaria. Binario zippato per un "ciao mondo" l'app è circa 2,5-3meg   ( più piccolo in 4.x Mi è stato detto ) vrs su 300k per obj-c. La differenza   diventa sempre meno tanto più aggiungi, in quanto include solo artisti del calibro di   system.dll una volta. Tempo di caricamento per MT vrs Obj-c, facendo le stesse cose a   allo stesso tempo, è abbastanza vicino allo stesso. O uno può essere fatto per   caricare lentamente (basta fare qualcosa di lungo nel tuo FinishedLaunching   senza metterlo su un altro thread).

Il rispondente continua dicendo di sentirsi più produttivo con MonoTouch di Objective-C. YMMV.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top