Android, retour d'impressions

Android, retour d'impressions

Après quelques semaines d’utilisation, je commence à me faire une idée des capacités de la plateforme et de ses qualités et défauts ! Et il y a de quoi parler, à commencer par l’émulateur. Ce dernier m’a semblé de prime abord de très bonne facture, mais il s’impose ...

Android

Après quelques semaines d’utilisation, je commence à me faire une idée des capacités de la plateforme et de ses qualités et défauts ! Et il y a de quoi parler, à commencer par l’émulateur. Ce dernier m’a semblé de prime abord de très bonne facture, mais il s’impose vite la conclusion suivante: l’émulateur propose des performances catastrophiques! Le PC sur lequel je développe est un portable Athlon XP 3000+, ok il n’est pas tout neuf, mais cela reste honorable, étant donnée que l’ordinateur dispose de 1,5Go de RAM et d’un disque 5400 tpm, les performances restent donc correctes. Cependant, dès que l’émulateur est lancé, le pourcentage d’utilisation CPU monte à 95 % très facilement et le pc ne répond pas vraiment bien (C’est le moins qu’on puisse dire) . Ce qui me trouble le plus reste les performances des programmes exécutés sur l’émulateur. Je ne suis pas arrivé à des performances correctes sans faire des concessions importantes sur le design applicatif et encore avec difficulté.

Je comprend l’engouement autour de la plateforme, mais également pourquoi on voit si peu de programmes disponibles (Je ne pense pas que ce soit lié au concours Android de Google uniquement). La source du problème n’est pas tant dans la plateforme que dans les performances de l’émulateur qui ont de quoi dégouter du développement sur Android et pousser à explorer les progrès fait sur J2ME et les JVM MIDP de Sony et Nokia qui semblent d’ailleurs très intéressant.

Même si les constructeurs proposent des machines performantes, il va falloir que Google fasse un effort sur son émulateur pour proposer des performances acceptables sur son émulateur. Dans le cas contraire, il se pourrait que certains développeurs soient rebutés. Pour l’instant j’en fait parti.

Autre bémol et de taille: c’est l’obscurantisme des API de la plateforme et le peu d’explications qu’on peut trouver. On est bien trop amené à essayer de deviner comment utiliser les API.  Les API étant complètement nouvelles, elles obligent le développeur à un apprentissage nouveau. De plus les API sont complexes et acrobatiques à utiliser. Souvent élégantes dans le concept, il faut tout de même avoir de bonnes notions de développement pour les exploiter correctement.

j’appuie cette petite analyse sur un retour d’expérience réel, j’ai essayé d’exploiter des API REST simples et cela me pose trop de difficultés pour en rendre le développement sympathique: j’ai plus tendance à m’arracher les cheveux entre la complexité des API et les performances de l’émulateur.

Gageons que la plateforme est encore jeune, et des best practices Android simples et efficaces  apparaitrons, mais pour le moment ce n’est pas la panacée. Et un travail urgent est à faire sur les performances de l’émulateur. Pour am part, le constat est simple: j’arrête le développement Android ou bien j’achète un nouveau PC…

Un dernier mot: Je suis en 1280 et l’émulateur prend une grande partie de mon écran! C’est quand même assez embêtant. Google est capable de penser des API complexe, mais pas à un détail aussi simple.

A noter: les JVM de Sony et de Nokia embarquent aujourd’hui tout un ensemble d’extensions intéressantes, sur lesquelles je reviendrais un autre fois, mais qui permettent de développer facilement aujourd’hui des applications intéressantes sans vraiment de difficultés particulières. Les problématiques d’antan n’existent plus vraiment sur MIDP aujourd’hui.

Depuis quelques jours, j’ai un W910 de Sony, et il faut dire que je suis impressionné par les progrès effectués et la diversité des API MIDP proposées (Sensor API, Content handler API, MMAPI, Bluetooth API, …). De plus, les JVM sony, par exemple, en sont à leur 8ème génération, ce qui en fait un choix de plateforme proposant de nombreux avantages (performances, stabilité, support d’API étendues, …) et un choix pour le moment bien plus sûr qu’Android.

Ma conclusion, est donc la suivante: comme de nombreuses personnes, je suis rentré dans le jeu des Buzz (iPhone /Android), mais rien ne vaut les valeurs sûres telles que MIDP ou le DotNet CF ou bien la plateforme de dev Symbian ou Palm. Attendons donc quelques mois que la plateforme Android murisse et que les premiers modèles sortent avant de trop en dire sur Android. N’oublions pas, entre autre, pour le moment qu’Android repose sur une plateforme Linux qui n’est compatible ni Symbian, ni Windows Mobile, ni Palm. Le marché est de ce fait extrêmement restreint. De la même manière que l’iPhone, le marché Android risque de rester une niche un certain temps. L’arrivée de l’iPhone et d’Android ne font que segmenter le marché et rendre la tâche plus difficile pour les sociétés travaillant dans le domaine de la mobilité. Il existe au bas mot 6 plateformes importantes: MIDP, Windows Mobile, Symbian, Palm, l’iPhone et Android!

N’hésitez pas à faire part de vos impressions!