Я видел код самоизменения, используемый для:
оптимизация скорости, при наличии программы пишут больше кода для себя на лету
obsfucation, для создания инженерного анализа намного тяжелее
Программа "Hello world" в Objective-C занимает 50 КБ (вся папка .app). С MonoTouch аналогичное приложение «Hello World» занимает 5 МБ (вся папка .app), что совсем неплохо, учитывая, что у него есть среда выполнения со сборкой мусора.
В 1.5 Monotouch
Релизная сборка - это приложение, созданное с лицензией на распространение - и не имеющая ничего, кроме настроек проекта по умолчанию, равна 5 МБ. Из них 4,3 МБ - это двоичный исполняемый файл.
По моему опыту, они часто увеличиваются до 10 МБ, и форумы рисуют ту же картину. Магазин приложений сообщает размер разархивированного файла, однако они загружаются в архиве. В архиве он составляет около 3 МБ, что даже в сети 3G вполне нормально.
На мой взгляд, большинство людей не будут смотреть на размер файла перед загрузкой приложения и не особо заботятся об этом. Ограничение для скачивания в магазине приложений 3G теперь составляет 20 МБ , что вполне соответствует размеру MonoTouch.
Чтобы сыграть защитника дьявола, да, он на много порядков больше, чем эквивалент Objective-C, и может отпугнуть некоторых людей, обеспокоенных тем, что они занимают на 4-10 МБ больше своего 16 ГБ пространства. Однако есть время для выхода на рынок и существующих инструментов, доступных для .NET. Я разрабатываю и все свои приложения MonoTouch в Visual Studio 2010, а затем тестирую их на Mac, и я не думаю, что даже Apple будет утверждать, что их IDE близка к лидеру отрасли.