Насколько велико приложение Objective-C для iPhone по сравнению с приложением MonoTouch? - PullRequest
21 голосов
/ 18 сентября 2009

Я планирую использовать MonoTouch для некоторых разработок для iPhone, но размер полезной нагрузки является важным фактором.

Для пользователя, который никогда ранее не устанавливал Mono на свой iPhone, какой размер приложения Objective-C "Hello World" можно сравнить с размером приложения MonoTouch "Hello World"?

Более конкретно, что такое ок. количество байтов, которые нужно загрузить, и что ок. количество использованных байтов после установки?

Ответы [ 3 ]

17 голосов
/ 18 сентября 2009

Программа "Hello world" в Objective-C занимает 50 КБ (вся папка .app). С MonoTouch аналогичное приложение «Hello World» занимает 5 МБ (вся папка .app), что совсем неплохо, учитывая, что в нем есть среда выполнения со сборкой мусора.

11 голосов
/ 30 марта 2010

В 1,5 Monotouch

Сборка выпуска - это приложение, созданное с лицензией на распространение - и с только настройками проекта по умолчанию, составляет 5 МБ. Из этих 4,3 МБ - двоичный исполняемый файл.

По моему опыту, они часто увеличиваются до 10 МБ, и форумы рисуют ту же картину. Магазин приложений сообщает о разархивированном размере, однако они загружаются в архиве. В сжатом виде это составляет около 3 МБ, что даже на 3G, хорошо.

http://i40.tinypic.com/2jadrpd.png

На мой взгляд, большинство людей не будут смотреть на размер файла перед загрузкой приложения, и особенно не заботятся. Ограничение на скачивание 3G в магазине приложений теперь составляет 20 МБ , что вполне соответствует размеру MonoTouch.

Чтобы сыграть в адвокат дьявола, да, это на много порядков больше, чем в эквиваленте Objective-C, и может отпугнуть нескольких человек, которые беспокоятся о том, чтобы занять на 4-10 МБ больше своих 16 ГБ места. Однако есть также время для выхода на рынок и существующих инструментов, доступных для .NET. Я разрабатываю и , собираю все свои приложения MonoTouch в Visual Studio 2010, затем тестирую их на Mac, и я не думаю, что даже Apple будет утверждать, что их IDE близка к лидеру отрасли.

8 голосов
/ 13 июля 2011

Из этого вопроса MonoTouch и размер исполняемых файлов :

MonoTouch не переводится в Obj-c. Компилируется в .NET IL, затем компилирует это (так же, как и JIT-компилятор, но до запустить - отсюда и компилятор с опережением времени) в собственный код ARM.

так:

Obj-C -> GCC (или LLVM) -> код ARM

vs MT:

C # -> IL -> (AOT-компилятор) -> код ARM

Выходные двоичные файлы в 3.x больше, потому что вы также включаете много .NET Framework (ну, Mono Framework, но то же самое), так что если Вы, например, используете System.Xml, он должен включить это в вывод - то же самое с System.dll и т. д. Компоновщик довольно умный, но вывод двоичные файлы всегда будут больше .

Для меня важен только размер, время загрузки и молнии двоичный размер. Двоичный архив для приложения "hello world" составляет около 2,5-3 мг ( меньше в 4.x Мне сказали ) vrs о 300k для obj-c. Различия становится все меньше и меньше, чем больше вы добавляете, так как оно включает в себя только system.dll один раз. Время загрузки для MT vrs Obj-c, делая то же самое в в то же время, достаточно близко к тому же. Любой из них может быть сделан для загружайте медленно (просто сделайте что-нибудь долгое не помещая его в другую ветку).

Отвечающий продолжает говорить, что он чувствует, что он более продуктивен с MonoTouch, чем с Objective-C. YMMV.

...