Il existe un grand nombre de cadres de développement mobile multiplateforme. Les principales plateformes, toutes mutuellement incompatibles, sont les suivantes :
- iOS (iPhone, iPad et iPod Touch)
- Android
- Blackberry
- Windows Mobile
- Windows Phone 7
- Symbian
- MeeGo (fusion de Maemo et Moblin)
- webOS
Il existe également de nombreux cadres de développement mobile différents qui prennent en charge diverses plates-formes de smartphones, y compris mais sans s'y limiter :
- Rhodes
- ELIPS
- RAMPE
- Titane
- PhoneGap
- MoSync
- airplay
- La roche-mère
- Qt
Qt est un excellent cadre pour le développement d'applications de bureau multiplateformes, et prend en charge plusieurs plateformes mobiles - Windows Mobile, Symbian, MeeGo. Il existe des ports communautaires pour iOS et Android (et webOS ?). Blackberry et WP7 font cavalier seul pour le moment.
MoSync est également très bien conçu, puisqu'il prend en charge un grand nombre de plateformes, y compris celles basées sur Java, à partir de C++. Cependant, il n'est pas très connu AFAIK et a ses propres problèmes.
Ma question est donc la suivante : existe-t-il un cadre de développement mobile multiplateforme qui vaille vraiment la peine d'être utilisé ? Tous ceux que j'ai trouvés présentent un inconvénient ou un autre qui les rend inutilisables.
Au moins, si Qt supportait iOS et Android, il faudrait au maximum trois versions d'une application pour supporter toutes les plateformes (Qt, Blackberry et WP7). Les ports communautaires qui existent ne sont pas bien supportés et sont loin d'être complets. De plus, même s'ils sont complets, Nokia les soutiendrait-il de toute façon ou cela serait-il considéré comme une mauvaise stratégie commerciale ?
Devrais-je simplement mordre la poussière et écrire des ports natifs pour chaque plateforme de smartphone ? Qt + iOS + Android + WP7 + Blackberry + webOS ? 5-6 versions d'une application, c'est beaucoup à maintenir, mais les solutions pour le développement multiplateforme sur les smartphones ne semblent pas très bonnes pour le moment.