Когда размер IPA и APK имеет значение
Для текущего проекта размер билда имеет значение. Можно, конечно, писать нативно под каждую платформу, но мне этот вариант не подходит.
Итак, основные требования:
- Кроссплатформенность (ios, android и, крайне желательно, web в любом виде)
- Минимальный размер билда
- Желательно что-то с невысоким порогом входа или мне уже знакомое: Unity, as3, haxe. (хотя если вы соберете что-то другое, буду рад)
Исходные данные:
- Unity 5.2.3f1
- Adobe Air SDK 19 (build 241)
- Haxe 3.2.1
- OpenFl 3.4.0
- nme 5.5.7
Все проекты есть на github. Вся суть проекта сводится к выведению на экран одной строки «Hello world!».
В итоге я получил следующие результаты:
- Unity
- apk 9.8 Mb
- ipa 10.4 Mb (размер бинаря 19.5 mb)
- Adobe Air
- apk 12.6 Mb
- ipa 6.8 Mb (размер бинаря 15.9 mb)
- Haxe openfl
- apk 3.2Mb
- ipa 4.2 Mb (размер бинаря 10.2 mb)
- Haxe nme
- apk 2.6 Mb
- ipa 3.4 Mb (размер бинаря 9 mb)
Объективное ли это сравнение? Нет. Юнити большой и толстый. В нем сразу все (и много-много бла-бла-бла). А haxe может вырезать все не нужное, он маленький и open source. Но в том то и суть, что иногда нужен крайне маленький билд (все же знают, что пользователь куда охотнее скачает 4 мб чем 40мб)
Посоветуйте на чем еще можно собрать простое приложение, удовлетворяющее основным требованиям (3-й пункт не обязательно). А лучше соберите сами и расскажите в комментариях.
upd: Спасибо @andrew, для сборки openfl добавил флаг
upd2: Спасибо, Sergey Batishchev указал на мою оплошность. Я пересобрал билд unity для android только armv7 и установил максимальный Stripping level. А по совету Кирилла Федорчука указал размер распакованных бинарей (т.к. hello world почти без ресурсов, это примерно даст понять какой будет конечный размер приложения в апсторе с некоторой погрешностью)