Каковы недостатки?
Вот несколько соображений:
Производительность является одним из соображений.Маловероятно, что Flash / AIR когда-либо будет работать так же эффективно, как оптимизированное приложение Native.Эта последняя часть не уникальна для мобильных устройств.Чем ниже уровень, тем выше производительность, которую вы можете получить.C будет работать лучше, чем ActionScript.Ассемблерный код будет работать лучше, чем C. Машинный код будет работать лучше, чем Assembly.
Нет доступа к собственным API-интерфейсам.Биллинг и контакты в приложении - это два общих запроса, которые я вижу.AIR 3 представила Native Extensions как способ борьбы с этим.Однако, чтобы создать собственное расширение, вам нужно написать собственный код и скомпилировать его особым образом, чтобы представить его среде выполнения AIR.Со временем возможно, что группа людей создаст Native Extensions, которые вы сможете использовать, чтобы вам не приходилось выполнять грязную работу самостоятельно.
Зависимость от внешней среды выполнения является еще одним ограничивающим фактором для некоторых.Что если у пользователя установлена старая версия AIR, и у него возникли проблемы с установкой приложения?В AIR 3 Adobe представила нечто вроде Captive Runtime для борьбы с этим.Он связывает среду выполнения как часть приложения.Это добавляет около 8 МБ к размеру приложения, но удаляет внешнюю зависимость.Captive Runtime - единственный способ развертывания на iOS.
Это основные ограничения, которые я вижу.Я думаю, что построение с Flex / Flash приносит много преимуществ, но самое большое из них - возможность легко развертываться на нескольких платформах.Если вы уже знакомы с Flash / AS3;создание мобильных приложений с этим кажется логичным выбором.