http://www.linkedin.com/in/tiyab
                                   Titanium Mobile
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.
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.
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
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.
Titanium Mobile
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.
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.
COMPARAISON



  VS
Plateformes supportées

OS                     PhoneGap       Titanium

 iOS                            

 Android                        

 BlackBerry                     

 Bada             

 WindowsPhone     
  ;
                   

                   
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.
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…
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.
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.
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é.
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)
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.
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.
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é.
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
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.
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.
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.
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).
Sources
http://blog.octo.com

http://www.appcelerator.com/

http://phonegap.com/

PhoneGap VS Appcelerator

  • 1.
  • 2.
    PROBLÉMATIQUE Le développement d’applicationspour 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 deuxapproches 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 unoutil 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.
  • 7.
  • 8.
    Titanium Mobile Développé parAppcelerator 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 principalde 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.
  • 10.
  • 11.
    Plateformes supportées OS PhoneGap Titanium  iOS    Android    BlackBerry    Bada   WindowsPhone  ;  
  • 12.
    Analyse En pratique, lesdé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 laplateforme 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éniablementplus 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’utilisationde 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 unenvironnement 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 packaginget 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 Lespoints 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 Lespoints 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, ona 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 surHTML5 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).
  • 26.