Frage

Ich erwäge mit Monotouch für einige iPhone-Entwicklung, aber Nutzlastgröße ist ein wichtiger Faktor.

Für einen Benutzer, der noch nie zuvor installiert Mono auf ihrem iPhone hat, was würde die Größe eines Objective-C „Hallo Welt“ App zu einem Monotouch „Hallo Welt“ app verglichen werden?

Genauer gesagt, was ist die ca.. Anzahl von Bytes, die heruntergeladen werden müssen, und was ist die ca.. Anzahl der Bytes einmal installiert verwendet?

War es hilfreich?

Lösung

Ein "Hallo Welt" Programm in Objective-C belegt 50 KB (ganzer .app-Ordner). Mit Monotouch, ein ähnliches „Hallo Welt“ App belegt 5 MB (insgesamt .app Ordner), die bei nicht schlecht ist alles bedenkt, dass es eine Laufzeit mit Garbage Collection in ihm hat.

Andere Tipps

In 1,5 Monotouch

Ein Release-Build - das ist eine eine Anwendung mit einer Vertriebslizenz gebaut - und mit nichts als die Standardprojekteinstellungen, beträgt 5 MB. Von diesem 4.3 MB ist die binäre ausführbare Datei.

Sie erheben sich oft auf bis zu 10 MB in meiner Erfahrung und die Foren malen das gleiche Bild. Die Appstor berichten die entpackte Größe, aber sie gezippt heruntergeladen werden. die auch auf einem 3G-Reißverschluss es rund 3 MB ist, ist in Ordnung.

Meiner Meinung nach werden die meisten Menschen auf der Dateigröße sehen nicht vor dem Download einer App, noch besonders interessieren. Die Appstor Limit für 3G-Downloads sind jetzt 20 MB , die innerhalb der Monotouch Größe gut ist.

Um den Advocatus Diaboli zu spielen, ja, ist es viele Aufträge größer als die Objective-C-Äquivalent und konnte ein paar Leute Sorgen um besetzen 4-10 MB mehr ihrer 16 GB Platz abzuschrecken. Allerdings gibt es auch die Markteinführungszeit und die vorhandenen Tools für .NET. Ich entwickle und bauen alle meine apps Monotouch in Visual Studio 2010 dann sie auf dem Mac testen, und ich glaube nicht einmal, Apple würde argumentieren, ihre IDE zum Branchenführer der Nähe ist.

Aus dieser Frage auf Monotouch und Größe der Executables :

  

Monotouch übersetzt nicht auf Obj-c. Es kompiliert zu .NET IL, dann   kompiliert, dass (in der gleichen Art und Weise ein JIT-Compiler würde, aber bevor es   laufen -. also "vor der Zeit" Compiler) in native ARM-Code

     

so:

     

Obj-C -> GCC (oder LLVM) -> ARM-Code

     

vrs MT:

     

C # -> IL -> (AOT-Compiler) -> ARM-Code

     

Die Ausgangs Binärdateien in 3.x sind größer, weil Sie auch sind, einschließlich   Viele der .NET Framework (na ja, Mono-Framework, aber gleich gleich), so dass, wenn   Sie, zum Beispiel verwenden System.XML es, dass in der Ausgabe enthalten ist -   gleiche mit System.dll usw. Der Linker ist ziemlich smart, aber der Ausgang   Binärdateien sein werden immer größer .

     

Für mich ist die einzige Größe, was zählt, ist die Ladezeit und Reißverschluss   binäre Größe. Zip binär für eine "Hallo Welt" App ist über 2.5-3meg   ( kleiner in 4.x mir gesagt: ) vrs über 300k für obj-c. Der Unterschied   wird immer weniger, je mehr Sie hinzufügen möchten, wie es enthält nur die Gleichen von   System.dll einmal. Ladezeit für MT vrs Obj-c, die gleichen Dinge tun bei   Gleichzeitig ist nahe genug, um das gleiche. Entweder man kann gemacht werden   Last langsam (nur etwas langen Lauf in Ihrem FinishedLaunching tut   ohne dass es auf einem anderen Thread zu setzen).

Der Antworter geht weiter zu sagen, dass er fühlt, dass er mit Monotouch als Objective-C produktiver ist. YMMV.

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