2. PROBLÉMATIQUE
Le développement d’applications pour
terminaux mobiles (iPhone, iPad, Android,
Blackberry, Windows Phone, Nokia Symbian,
Samsung Bada…) se heurte à la fragmentation
des technologies de développements:
iOS + Objective-C pour l’iPhone et l’iPad;
SDK Java spécifique pour Android;
J2ME pour Symbian;
C sharp/.Net pour Windows mobile
etc.
3. APPROCHES POSSIBLES
Deux approches possibles lorsque l’on débute
un projet d’application ciblant plusieurs de ces
plateformes sont :
-Développer une application pour chacune d’elle,
-Développer un site Web compatible.
Dans le premier cas, l’inconvénient concerne bien
évidemment le coût des développements.
Dans le deuxième, on sera limité en richesse de
l’application par les possibilités du Web.
4. SOLUTIONS
Entre ces deux approches se situe une offre assez fournie de
solutions de développement multiplateforme, proposées
par des éditeurs proposant leurs propres plateformes
d’exécution et leurs outils de développement.
Parmi celles-ci, nous nous nous concentrerons dans sur
PhoneGap et Titanium Mobile, qui sont aujourd’hui parmi
les plus abouties et sont représentatives des deux
principales approches de développement multiplateforme:
-L’utilisation des moteurs de rendus Web pour PhoneGap
-La translation de code source vers la plateforme cible pour
Titanium
6. PhoneGap
PhoneGap est un outil open-source, et devrait
d’ailleurs rejoindre la fondation Apache.
Le principe de PhoneGap est de fournir des API
JavaScript aux navigateurs Web standards,
permettant d’appeler des fonctionnalités natives
non disponibles autrement: accéder à l’appareil
photo, à l’accéléromètre, au système de fichiers…
Cela nécessite d’embarquer le code source
HTML/CSS/JS dans une application native, grâce au
composant permettant d’inclure une vue Web dans
une application, disponible dans chaque SDK.
8. Titanium Mobile
Développé par Appcelerator qui vend du support et
des formations sur Titanium, c’est également une
solution libre.
Le principe de Titanium est de fournir une machine
virtuelle JavaScript permettant d’accéder au
système natif, et ainsi de développer des
applications natives mais en JavaScript.
C’est la promesse d’applications plus réactives et à
l’expérience utilisateur plus proche du natif que
celles basées sur des pages Web, comme
PhoneGap.
9. Points communs
L’intérêt principal de l’utilisation d’une plateforme de
développement multiplateforme comme PhoneGap et
Titanium Mobile réside en 2 points:
• Pouvoir déployer l’application sur les magasins
(AppStore, Android Market…) afin de bénéficier de ce
canal de distribution et de communication. Cela est
réellement assuré par ces deux outils;
• Réduire les coûts de développements en mutualisant du
code. Cela est assuré par ces deux outils à condition de
bien les utiliser et de limiter la part des développements
spécifiques à chaque plateforme et donc de se limiter aux
fonctionnalités supportées « out of the box ». On rogne
donc sur l’expérience utilisateur et la richesse
fonctionnelle.
12. Analyse
En pratique, les développements PhoneGap nécessitent
des adaptations pour chaque plateforme, dont les
capacités et l’expérience utilisateurs diffèrent fortement.
Concernant Titanium, le support de Blackberry est encore
récent et disponible uniquement sous Windows;
Pour cibler tous les terminaux mobiles à moindre coût, le
meilleur moyen reste de réaliser un site Web simple, qui
permet de diffuser de l’information mais ne permet ni de
fournir des fonctionnalités avancées (appareil photo,
etc.), ni de proposer une expérience utilisateur riche, ni
d’être visible sur l’AppStore.
13. Richesse de la plateforme
PhoneGap Titanium
Possibilités des navigateurs Web Accès aux composants d’IHM natifs
API PhoneGap : API Titanium :
Appareil photo; Base de données;
Système de fichier; Géolocalisation;
Accéléromètre; Gestion des contacts;
Liste des contacts; Intégration Facebook;
Géolocalisation. Appareil photo;
Lecture et enregistrement audio/vidéo;
ect…
14. Analyse
Titanium est indéniablement plus riche fonctionnellement et
fournira une apparence plus proche du natif, ce qui est en
général l’objectif des concepteurs d’applications.
PhoneGap est dans l’absolu plus limité en terme de
fonctionnalités, et on doit concevoir les écrans comme des
pages Web et non des écrans natifs.
Les deux plateformes sont extensibles, Titanium plus
facilement que PhoneGap, mais on pourrait déconseiller
globalement d’aller dans cette direction car cela devient très
coûteux à maintenir (on estime en général à 20% la part
maximale de code spécifique tolérable), et nécessite en outre
encore plus de compétences que de faire des applications
natives spécifiques à chaque plateforme.
15. Plateforme de développement
PhoneGap Titanium
HTML/CSS/JavaScript standard. On JavaScript en utilisant des API spécifiques à
développe comme si c’était une application Titanium, que ce soit pour créer les IHM ou
Web normale. pour écrire des appels au système.
Les API PhoneGap sont bien documentées, Le site d’Appcelerator propose la
par-contre on devra chercher sur le Web la documentation des API ainsi qu’une
documentation pour les technologies application démo (KitchenSink) et des
HTML/CSS/JS et les éventuelles librairies vidéos.
JavaScript utilisées.
16. Analyse
On remarque l’utilisation de plus en plus large de
JavaScript, un langage décrié par ses côtés peu structuré et
trop tolérant.
Il est nécessaire, pour développer ce type d’applications,
de se former profondément à JavaScript et de connaître les
design patterns de structuration/modularisation du code
dans ce langage, qui existent mais sont souvent mal connus
des développeurs.
De manière globale, l’environnement de développement de
Titanium est mieux intégré et plus documenté.
17. Productivité des développement
PhoneGap Titanium
PhoneGap nécessite de développer pour Titanium fourni un IDE dédié, basé sur
chaque plateforme ciblée dans l’IDE Aptana, un des meilleurs IDE Web
correspondant, et ne fournit pas d’outils reposant lui-même sur Eclipse (acheté
supplémentaires. récemment par Appcelerator)
18. Analyse
Titanium fournit un environnement de
développement « clé en main » et performant, là
où PhoneGap nécessite d’installer et configurer
soi-même plusieurs environnements.
La productivité est clairement côté
Titanium aujourd’hui.
19. Gestion des déploiements
PhoneGap Titanium
PhoneGap propose depuis peu un Titanium ne fournit pas d’outil de
outil de build sur le cloud: PhoneGap packaging multiplateforme. Vous devrez
Build, qui compile un projet PhoneGap donc créer manuellement les packages
vers les différentes plateformes cibles, applicatifs.
que vous pourrez ensuite publier sur
l’AppStore, l’Android Market, etc.
20. Analyse
L’automatisation du packaging et de la livraison
des applications sur les différentes plateformes
(magasins publics type AppStore ou comptes privés
« in house ») est un véritable enjeu concernant la
productivité des développements et le coût global
d’un projet.
L’outil PhoneGap Build (compatible uniquement
avec les applications PhoneGap), qui vient d’être
ouvert en version finale, était une véritable
nécessité.
21. Synthèse
FONCTIONNALITÉ SYNTHÈSE
Plateformes supportées Avantage PhoneGap
Richesse (fonctionnalités + IHM) Avantage Titanium
Langage de développement Egalité
Productivité des développements Avantage Titanium
Gestion des déploiements Avantage PhoneGap
22. Synthèse sur PhoneGap
Les points forts de PhoneGap sont donc
aujourd’hui son support de plus de 6
plateformes, et le fait qu’il utilise au maximum
les technologies standards du Web.
Ses points faibles concernent ses limitations
fonctionnelles et sa moindre richesse d’IHM du
fait qu’il n’utilise pas les composants natifs, ainsi
que son manque d’outillage de développement.
23. Synthèse sur Titanium
Les points forts de Titanium sont sa richesse
fonctionnelle et graphique, ainsi que la
productivité de son environnement de
développement.
Son point faible concerne le peu de plateformes
supportées.
24. Conclusion
En conclusion, on a pu voir que Titanium est globalement
plus productif et fournit plus de fonctionnalités que
PhoneGap dans le but de développer des applications
mobiles multiplateformes. On le préfèrera en général, si l’on
ne doit pas supporter plus que iOS + Android + BlackBerry.
Au-delà du choix de l’outil, le conseil majeur restera
d’utiliser les outils pour ce qu’ils savent faire, et éviter de
« tordre » leur usage pour leur faire faire autre chose ou de
manière différente.
Cela s’approche des problématiques bien connues
d’utilisation trop personnalisée de progiciels, qui rend
rapidement très coûteuse la moindre évolution.
25. Un mot sur HTML5
D’ors et déjà, le choix de la technologie de
développement multiplateformes doit aussi se
faire par-rapport aux applications Web HTML5
qui apportent de plus en plus de fonctionnalités
et viennent sérieusement concurrencer les
approches natives et hybrides, et les solutions
Web existantes comme les moteurs de rendus
(BkRender, Wokup) et les nombreux Framework
Web pour mobiles (par exemple Sencha Touch).