Quel outil pour le développement mobile iphone+android ?

Il faut savoir que chaque marque a son propre langage et ses propres outils de développement. Par exemple, si je veux faire une application Iphone, il faut connaitre le langage Objective-C et pour Android, c’est du java. Pour être disponible sur Blackberry et Windows Phone, c’est encore d’autres langages.

Pour éviter d’avoir à tout développer en plusieurs exemplaires, il existe des plateformes de portage qui vont faire la traduction. L’avantage est qu’à notre niveau, il « suffit » d’apprendre une seule techno. La contrainte est qu’il faut renoncer aux spécificités de chaque système (sur iphone par exemple, il peut y avoir des composants plus design que sur Android). Voici un petit billet sur le comparatif qui m’a fait pencher pour l’environnement de Titanium.

Le besoin

Mes besoins étaient assez simples :

  • le prix
  • la rapidité de prise en main
  • les notifications possibles nombreuses

Facteurs appréciés

  • open source
  • présence d’un IDE
  • exemples de code, clarté et abondance des tutoriaux
  • communauté
  • javascript (car c’est en langage aussi utile pour le web)

Les concurrents

Les outils en lice étaient Sencha Touch, Titanium, Phonegap et Corona SDK.

 

  Langage Plateformes Prix IDE Open source DragNDrop Notification Services inclus
Sencha Touch HTML5/CSS3 Toutes 0 lib graphique non non pas tout seul Pas mal d’exemple d’app, à la twitter. Plutot pour l’IHM. LocalStorage, Geolocalisation.
Titanium JS et pas Jquery Toutes 0 si – 5M notifications Eclipse intégré Oui non 5M max 100 K email, 20GO storage. Déploiement depuis Eclipse. Less code.
Phonegap HTML5,CSS3,JS Toutes 0 compatible eclipse Oui non Oui Doc détaillée. Plus bas niveau. Il faut configurer par plateforme ???
Corona SDK Starter Lua Ios, Android, Kindle 0 si – 100K, 50$ par mois non non Test unitaire possible. Rapidement opérationnel

 

Certains articles de spider21 et sur stackoverflow m’ont donné des indications sur les différences entre ces outils.

Connaissant au moins deux applications déjà développées en Corona SDK, je l’ai également installé pour voir s’il était si rapide que cela à prendre en main. Les vidéos de tutorial sont très alléchantes et la communauté est grande. Par contre, j’ai été déçue du fait qu’il n’y ait pas d’éditeur WYSIWYG. Par contre, l’émulateur se lance assez rapidement, il y a très peu de configuration et le développement semble extrêmement rapide.

Phonegap m’a semblé nécessiter trop de configuration spécifique. D’autre part, je n’avais pas envie de devoir ajuster au pixel près en HTML les éléments graphiques ou à devoir prendre en main un outil graphique à part pour compléter. Cette voie aurait pu trop mis en péril les délais en multipliant les apprentissages nécessaires. J’étais aussi gênée par le fait que Phonegap encapsule l’application dans un espèce de navigateur interne.

J’ai fini par choisir Titanium qui avait l’air assez utilisé, était open source et en Javascript. Des vidéos sont disponibles sur le site pour prendre en main l’outil. J’appréciais pouvoir l’utiliser avec Eclipse que je connaissais déjà. Enfin, contrairement à Phonegap, Titanium utilise des composants natifs selon les plateformes (le loop de l’application s’adapte selon le terminal).

Alors, Titanium ?

Je vais commencer par les déceptions. Très sincèrement, j’ai voulu plusieurs fois revenir en arrière. J’avais même installé PhoneGap en parallèle pour voir si ce ne serait pas mieux.

  1. L’installation est interminable. Vraiment. Même quand je pensais que c’était fini, j’avais une popup qui me disait qu’il fallait mettre à jour autre chose. Puis encore. Puis encore. Au total, l’opération d’installation a bien pris plusieurs jours.
  2. Ce n’était pas WYSIWYG
  3. Pire, l’éditeur Eclipse « normal » permet de renommer les noms de variables par exemple. Titanium semble avoir bridé cette fonctionnalité… Du coup, pour le refactoring, j’éditer le projet avec IntelliJ…
  4. Quand il y a une faute de frappe, Eclipse ne le signale pas. Dans l’émulateur (qui met un certain temps à démarrer), j’ai un message super parlant du genre « Erreur inconnue »…
  5. Beaucoup de frustration pour afficher ses derniers développement dans l’émulateur. Difficile dans ce cas là de savoir si le code est en cause ou l’émulateur. La suppression du cache ou un arrêt relance de Titanium n’y changeait rien…. Aujourd’hui, je sais que la version web (donc hors émulateur) est relativement fidèle donc je m’appuie sur elle avant de basculer à l’émulateur farceur. Quand j’ai vraiment besoin de ce dernier, revenir à la home dans l’émulateur ou vider le cache résout parfois le souci.
  6. Le fait de ne pas pouvoir développer sans connexion internet. Cela a été la mauvaise surprise pendant mes vacances. Un contournement est d’ajouter l’option « -Dtitanium.bypassAuthentication=true » dans le fichier « C:\Users\Pierre\AppData\Local\Titanium Studio\TitaniumStudio.ini« 
  7. Certains codes doivent malgré tout exister en deux versions pour Iphone et Android, pour les notifications par exemple.
  8. Je n’ai toujours pas réussi à déployer une appli sur mon mobile physique. Il faut visiblement activer sur le téléphone l’option « USB Debugging dans Paramètres > Options de développement » ainsi qu’autoriser les installations hors Google Play « Paramètres >Sécurité > Sources inconnues« . Cela ne suffit pas car sur Windows il faut un driver que je n’ai pas trouvé sur l’éditeur de mon téléphone portable.

C’est bien quand même parce que

  1. L’auto complétion fonctionne très bien
  2. La présence de vidéos en ligne est une excellente initiative et facilite le démarrage
  3. Le projet Kitchen Sink offre une démo des composants utiles (c’est une bonne piste pour commencer mais il vaut mieux regarder l’API après pour les derniers composants)
  4. La communauté est extrêmement réactive.
  5. La documentation de l’API est claire et exhaustive.
  6. Une fois que l’on comprend la bête et avec quelques bases, le développement peut enfin décoller
  7. Une newsletter nous conseille régulièrement des vidéos en fonction de l’état d’avancement de notre installation et de nos développements.

Au final, c’est quand même un bon produit. Il y a beaucoup de travail et de soin derrière. Peut-être trop : il serait pragmatique de proposer un tutorial express sans avoir à se taper 20h de vidéos + 1 livre + 1000 pages de docs.

Au final, j’ai dû plusieurs fois revoir à la baisse mes ambitions. L’application mobile sera minimale avant d’être enrichie plus tard. Il me restent les notifications locales à gérer et les dessins à refaire. Après cela, les risques techniques de développement seront levés pour la V1.

 

2 thoughts on “Quel outil pour le développement mobile iphone+android ?

  1. Pingback: Quel logiciel pour le développement mobi...

  2. Pingback: Problèmes récurrents avec Appcelerator (ex-Titanium) | Rééducation périnée - Blog

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *