PhoneGap VS Appcelerator

26
Titanium Mobile http://www.linkedin.com/in/tiyab

description

 

Transcript of PhoneGap VS Appcelerator

Page 1: PhoneGap VS Appcelerator

Titanium Mobile http://www.linkedin.com/in/tiyab

Page 2: PhoneGap VS Appcelerator

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.

Page 3: PhoneGap VS Appcelerator

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.

Page 4: PhoneGap VS Appcelerator

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

Page 5: PhoneGap VS Appcelerator
Page 6: PhoneGap VS Appcelerator

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.

Page 7: PhoneGap VS Appcelerator

Titanium Mobile

Page 8: PhoneGap VS Appcelerator

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.

Page 9: PhoneGap VS Appcelerator

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.

Page 10: PhoneGap VS Appcelerator

COMPARAISON

VS

Page 11: PhoneGap VS Appcelerator

Plateformes supportées

OS PhoneGap Titanium

iOS

Android

BlackBerry

Bada

WindowsPhone;

Page 12: PhoneGap VS Appcelerator

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.

Page 13: PhoneGap VS Appcelerator

Richesse de la plateforme

PhoneGap Titanium

Possibilités des navigateurs Web

API PhoneGap :

Appareil photo; Système de fichier; Accéléromètre; Liste des contacts; Géolocalisation.

Accès aux composants d’IHM natifs API Titanium : Base de données; Géolocalisation; Gestion des contacts; Intégration Facebook; Appareil photo; Lecture et enregistrement audio/vidéo; ect…

Page 14: PhoneGap VS Appcelerator

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.

Page 15: PhoneGap VS Appcelerator

Plateforme de développement

PhoneGap Titanium

HTML/CSS/JavaScript standard. On développe comme si c’était une application Web normale. Les API PhoneGap sont bien documentées, par-contre on devra chercher sur le Web la documentation pour les technologies HTML/CSS/JS et les éventuelles librairies JavaScript utilisées.

JavaScript en utilisant des API spécifiques à Titanium, que ce soit pour créer les IHM ou pour écrire des appels au système. Le site d’Appcelerator propose la documentation des API ainsi qu’une application démo (KitchenSink) et des vidéos.

Page 16: PhoneGap VS Appcelerator

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é.

Page 17: PhoneGap VS Appcelerator

Productivité des développement

PhoneGap Titanium

PhoneGap nécessite de développer pour chaque plateforme ciblée dans l’IDE correspondant, et ne fournit pas d’outils supplémentaires.

Titanium fourni un IDE dédié, basé sur Aptana, un des meilleurs IDE Web reposant lui-même sur Eclipse (acheté récemment par Appcelerator)

Page 18: PhoneGap VS 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.

Page 19: PhoneGap VS Appcelerator

Gestion des déploiements

PhoneGap Titanium

PhoneGap propose depuis peu un outil de build sur le cloud: PhoneGap Build, qui compile un projet PhoneGap vers les différentes plateformes cibles, que vous pourrez ensuite publier sur l’AppStore, l’Android Market, etc.

Titanium ne fournit pas d’outil de packaging multiplateforme. Vous devrez donc créer manuellement les packages applicatifs.

Page 20: PhoneGap VS Appcelerator

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é.

Page 21: PhoneGap VS Appcelerator

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

Page 22: PhoneGap VS Appcelerator

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.

Page 23: PhoneGap VS Appcelerator

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.

Page 24: PhoneGap VS Appcelerator

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.

Page 25: PhoneGap VS Appcelerator

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).

Page 26: PhoneGap VS Appcelerator

Sources http://blog.octo.com

http://www.appcelerator.com/

http://phonegap.com/