Просто помещенный: Что самый эффективный путь состоит в том, чтобы совместно использовать / код повторного использования между сборками iPhone и Android?
Два наиболее распространенных сценария я думаю, были бы:
Да, конечно, в идеальном мире все приложения просто включили бы волшебное облако, и вся допускающая повторное использование логика возрастет в Google App Engine или некоторых веб-сервисах, но это не дух этого вопроса. После испытания порта iPhone к Android без повторного использования кода, вообще подержанного и наблюдение боли, которую должен был вынести человек, я хотел бы знать, как другие люди избегают его.
По моему опыту, вы можете использовать Android NDK для компиляции C и C ++, поэтому, если вы используете iPhone Obj-C ++ ( .mm) для движка C ++ / C в iPhone, а в Android вы используете привязки Java к тому же движку. Это должно быть вполне возможно.
Итак, движок C ++ / C (почти такая же кодовая база для Android и iPhone) + слой тонких привязок = переносимый код.
Вы также можете посмотреть Титан . С их помощью вы можете написать свое приложение в абстрактном веб-коде, и они помогут вам в интерфейсе веб-приложения со всеми этими GPS, датчиками акселерометра и т. Д.
Пишите как можно больше на старом добром C (или C++, если нужно) и просто включайте одни и те же файлы в Android и iPhone. Это работает и на Windows/Mac. "Кроссплатформенные" библиотеки обычно поглощают вас.
Я работал над созданием приложений и игр для iPhone с использованием Lua с моей собственной структурой. Таким образом, я мог бы в конечном итоге реализовать ту же платформу для Android с помощью Android NDK, но, надеюсь, фактический код приложения будет точно таким же для обеих платформ.
Я не думаю, что есть простой способ сделать это, потому что API-интерфейсы, очевидно, разные, а собственные языки программирования разные, но я бы предложил создание собственной инфраструктуры на любом языке, поддерживаемом обеими платформами. Может быть, уже есть фреймворк, который сделает все за вас? Если для этого нет хороших фреймворков, то это, безусловно, возможность реализовать их самостоятельно.
Как я уже говорил кому-то, кто задал аналогичный вопрос некоторое время назад, используйте MVC и реализуйте MC на C ++ и V в obj-c или Java.
Вы можете попробовать Marmalade SDK... Компиляция один раз в нативный ARM и развертывание на Android и iPhone с одним и тем же бинарником, стандартный C/C++, разработка на windows или mac, множество (необязательных) технологий промежуточного ПО.