Objective-C iPhoneアプリとMonoTouchアプリの大きさはどれくらいですか?
-
22-07-2019 - |
質問
一部のiPhone開発にMonoTouchの使用を検討していますが、ペイロードサイズは重要な要素です。
以前にiPhoneにMonoをインストールしたことがないユーザーの場合、Objective-Cの「Hello World」のサイズはアプリをMonoTouchの「Hello World」と比較するアプリ?
より具体的には、約ダウンロードする必要があるバイト数、および約インストール後に使用されるバイト数
解決
「こんにちは世界」 Objective-Cのプログラムは50 KBを占有します(.appフォルダー全体)。 MonoTouchを使用すると、同様の「Hello World」がappは5  MB(.appフォルダー全体)を占有しますが、ガベージコレクションを含むランタイムが含まれていることを考えるとまったく悪くありません。
他のヒント
1.5モノタッチの場合
リリースビルド-これは配布ライセンスでビルドされたアプリケーションであり、デフォルトのプロジェクト設定以外は5  MBです。その4.3MBはバイナリ実行可能ファイルです。
私の経験では、多くの場合、最大10MBまで上昇し、フォーラムでも同じ絵が描かれています。アプリストアは解凍されたサイズを報告しますが、ダウンロードされたサイズは圧縮されます。圧縮すると約3MBで、3Gでも問題ありません。
私の意見では、ほとんどの人はアプリをダウンロードする前にファイルサイズを確認しませんし、特に気にしません。 3Gダウンロードのアプリストアの制限は20 MBになりました。これはMonoTouchサイズの範囲内です。
悪魔の擁護者を演じるには、はい、Objective-Cの同等のものよりも多くの注文があり、16 GBのスペースの4〜10 MBを占有することを心配する少数の人々を怖がらせることができます。ただし、市場投入までの時間と.NETで利用できる既存のツールもあります。私はすべてのMonoTouchアプリをVisual Studio 2010で開発し、Macでテストしてから 開発しますが、AppleでさえIDEが業界リーダーに近いと主張することはないと思います。
MonoTouchと実行可能ファイルのサイズに関するこの質問から:
MonoTouchはObj-cに変換されません。 .NET ILにコンパイルしてから、 それをコンパイルします(JITコンパイラと同じ方法で、ただし 実行-したがって、「時間より先」コンパイラ)をネイティブARMコードに追加します。
so:
Obj-C-> GCC(またはLLVM)-> ARMコード
vrs MT:
C#-> IL-> (AOTコンパイラ)-> ARMコード
3.xの出力バイナリも大きくなります。これは、 多くの .NETフレームワーク(モノフレームワークですが、同じ) たとえば、System.Xmlを使用する場合は、それを出力に含める必要があります- System.dllなどと同じです。リンカはかなりスマートですが、出力は バイナリは常により大きくになります。
私にとって重要なのは、ロード時間とzip形式のみです バイナリサイズ。 「hello world」のzipバイナリアプリは約2.5-3megです ( 4.xでは小さいと言われています)obj-cの 300k についてのvrs。違い 追加するものはどんどん少なくなります。 system.dllを1回。 MT vrs Obj-cのロード時間、で同じことを行う 同時に、同じに十分近いです。どちらかを作ることができます ゆっくりロードします(FinishedLaunchingで長時間実行します) 別のスレッドに配置することなく)。
回答者は、Objective-CよりもMonoTouchの方が生産性が高いと感じていると続けています。 YMMV。