Межплатформенная мобильная разработка
Существует множество межплатформенных мобильных платформ разработки. Основные платформы, все взаимоисключающие:
- iOS (iPhone, iPad и iPod Touch)
- Android
- Blackberry
- Windows Mobile
- Windows Phone 7
- Symbian
- MeeGo (слияние Maemo и Moblin)
- WebOS
Также существует множество различных инфраструктур для мобильных приложений, которые поддерживают различные массивы платформ смартфонов, включая, но не ограничиваясь:
- Rhodes
- ELIPS
- RAMP
- Titanium
- PhoneGap
- MoSync
- ротация
- Бедрок
- Qt
Qt - отличная платформа для разработки кросс-платформенных настольных приложений, а также заботится о нескольких мобильных платформах - Windows Mobile, Symbian, MeeGo. Есть порты сообщества для iOS и Android (и webOS?). Blackberry и WP7 теперь на свой страх и риск.
MoSync также выглядит неплохо, поддерживая большое количество платформ, включая Java-based, из С++. Однако это не очень хорошо известно AFAIK и имеет свои проблемы.
Итак, мой вопрос: действительно ли стоит использовать кросс-платформенную платформу для мобильной разработки? Каждый, кого я нашел, имеет один недостаток или другой, который делает его непригодным для использования.
По крайней мере, если Qt поддерживает iOS и Android, вам понадобится не более трех версий приложения для поддержки всех платформ (Qt, Blackberry и WP7). Порты сообщества, которые находятся вокруг, не очень хорошо поддерживаются, хотя и далеки от завершения. Кроме того, даже если они будут завершены, будет ли когда-либо поддерживать их в любом случае или это будет считаться плохой бизнес-стратегией?
Должен ли я просто укусить пулю и написать родные порты для каждой платформы смартфонов? Qt + iOS + Android + WP7 + Blackberry + webOS? 5-6 версий приложения довольно много для поддержки, но решения для кросс-платформенной разработки на смартфонах сейчас не выглядят великолепно.
Ответы
Ответ 1
ОБНОВЛЕНИЕ. По популярному запросу ссылка на выпуск Qt 5.2 страница поддержки Android, так как теперь она официально интегрированный и "готовый к производству".
Ну, Qt может поддерживать Android, через недавно интегрированный внутренний проект Lighthouse и работы отдельного разработчика, который, вероятно, будет занят интеграцией своего кода в Qt-код:
Ожидайте увидеть Qt 4.8 с поддержкой Android через Lighthouse.
iOS имеет аналогичный движок, но проекты только начинаются:
http://forums.internettablettalk.com/showthread.php?p=865264#post865264
Маяк предоставляет крошечный слой абстракции для операций с gui/core Qt, обеспечивая очень простой способ портирования рамки.
Ответ 2
Другая межплатная платформа open-source Kivy
Ответ 3
V-Play (v-play.net). Это кросс-платформенный игровой движок, основанный на Qt/QML. (ссылка API)
Он уже поддерживает iOS, Android, Symbian и MeeGo. Поддержка BlackBerry и Windows Phone будет добавлена в ближайшее время.
Ответ 4
Здесь вы можете найти почти все инструменты для кросс-платформенной разработки - http://www.riaxe.com/blog/top-cross-platform-mobile-development-tools/
Ответ 5
Blackberry теперь поддерживает QT, поэтому вам нужно будет только написать две версии. См. http://press.rim.com/release.jsp?id=5230
Ответ 6
Похоже, что мобильная веб-разработка сходится на чистом html5/javascript, за исключением случаев, когда встроенный код даст существенное повышение производительности.
Вчера вечером я присутствовал на презентации команды Hyves Dev в своем кросс-платформенном мобильном приложении. Некоторые графически интенсивные функции (анимированные смайлики, это социальный веб-сайт) отключены на более медленных платформах. Они используют Phonegap для заполнения пробелов.
Ответ 7
Это, очевидно, субъективный вопрос - вы просите нас угадать бизнес-стратегию Nokia'а.
Однако моя собственная догадка заключается в том, что Nokia не будет переносить Qt на iOS, но сообщество (на самом деле, работа уже началась). Я подозреваю, что порт для android намного проще, чем порт для iOS, и скоро это произойдет.
Но опять же, это просто предположение.
Почему бы не включить вашу энергию в помощь порту Qt на этих новых платформах?
Qt для проекта Android
Qt для проекта iPhone
Ответ 8
Есть некоторые, которые отсутствуют в вашем списке, которые, возможно, заслуживают упоминания... JUCE, Corona и Moai. Все они поддерживают iOS и Android. Корона в основном предназначена для игр, но также подталкивает к общей области приложения - и у нее очень активное сообщество. Moai в основном предназначен для игр и интерактивной графики. Moai и Corona предназначены для сценариев Lua. JUCE - это элегантная и хорошо структурированная библиотека пользовательских интерфейсов на платформе С++.