Когда размер IPA и APK имеет значение

2015, Nov 28    

Build Size Comparison

Для текущего проекта размер билда имеет значение. Можно, конечно, писать нативно под каждую платформу, но мне этот вариант не подходит.

Итак, основные требования:

  1. Кроссплатформенность (ios, android и, крайне желательно, web в любом виде)
  2. Минимальный размер билда
  3. Желательно что-то с невысоким порогом входа или мне уже знакомое: 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 почти без ресурсов, это примерно даст понять какой будет конечный размер приложения в апсторе с некоторой погрешностью)

-->