Межплатформенная мобильная разработка

Существует множество межплатформенных мобильных платформ разработки. Основные платформы, все взаимоисключающие:

  • 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 будет добавлена ​​в ближайшее время.

Ответ 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 - это элегантная и хорошо структурированная библиотека пользовательских интерфейсов на платформе С++.