Это правда, что вы не можете создать приложение для iPhone непосредственно из Air SDK, но Air, Mobile Safari и Android все построены на браузере WebKit.Это означает, что существует лишь небольшое количество очень существенных различий между платформами, поэтому, если вы пишете свой код, чтобы минимизировать различия и изолировать различия в отдельных классах, на самом деле довольно легко сохранить базу кода практически одинаковой для всех систем.
Например, в Air и Android у вас есть возможность доступа к локальной базе данных SQLite с помощью синхронных или асинхронных методов, с транзакциями или без них.Если вы не привыкли к асинхронному программированию, вы, вероятно, захотите пойти по более простому, более линейному синхронному маршруту;и, возможно, транзакции покажутся вам излишними.Но поскольку Webkit на iPhone не поддерживает синхронные вызовы из базы данных, и все делается с помощью транзакций, вы действительно застрянете, когда дело доходит до переноса вашего приложения на iPhone.Но если вы напишите свой собственный класс Database, чтобы он был асинхронным и основанным на транзакциях, все, что вам нужно сделать, это написать интерфейс или мост, чтобы ваш класс работал на всех трех платформах.
У Air есть небольшая горафункций, от которых вам, вероятно, следует держаться подальше, если вы хотите быстро перенести свои приложения на все платформы.Например, вам разрешено записывать файлы в локальную файловую систему пользователя.Подобные вещи просто не разрешены на iPhone, поэтому не ожидайте, что они будут портироваться.
Чтобы ваш код работал на iPhone и в магазине приложений, есть несколько фреймворков для webkit-оболочек.Два, которые я знаю лучше всего, это PhoneGap и Titanium.Титаниум имеет дополнительное преимущество публикации напрямую на Android и iPhone, хотя я никогда не пробовал сам.У меня большой опыт работы с PhoneGap, и хотя он все еще довольно глючный, он позволяет довольно просто доставлять ваши приложения в магазин.