Published by

Il y a 12 ans -

Temps de lecture 6 minutes

Adobe Air, le futur du développement Mobile ?

On dit souvent que le développement mobile ressemble au développement web d’il y a 10 ans. Jusqu’à présent, il fallait choisir entre développer une application native ou une application Web Mobile. Les applications natives sont souvent préférées pour le moment, car elles offrent souvent une meilleure expérience utilisateur.
Quant aux applications Web Mobile, elles ont l’avantage de faciliter la mise à jour et le déploiement d’application, et ont le mérite d’être accessibles quelle que soit votre plateforme, pour peu que vous disposiez d’une connexion internet. Et bien, il se pourrait bien qu’Adobe soit en train de changer la donne en introduisant sa solution Air qui vous promet le meilleur des 2 mondes !

Lors du dernier XKE, nous avons eu la visite de Michaël Chaize qui est venu nous présenter les nouvelles solutions Adobe. Fort d’une matinée plutôt réussie, j’arrive à ce slot un peu blasé et fatigué en me demandant un peu l’intérêt d’une telle présentation. Allez c’est reparti, je vais encore avoir le droit au discours technico-commercial que j’ai eu chez mon cher client quelques semaines auparavant.
Et bien que nenni ! Bien au contraire ! Je suis sorti de celui-ci avec une folle envie d’essayer de suite les technologies qu’il nous a présenté, en particulier celles qui touchaient à la mobilité.
Avant ce slot, j’avais bien entendu parler ici et de l’émergence d’une telle solution, mais rien ne m’avait donné l’envie de m’y essayer. C’est maintenant chose faite !

La plateforme Air propose donc :

Write once, run everywhere ?

Les applications Air s’exécutant sur une machine virtuelle, toute plateforme disposant de celle-ci est à même d’exécuter vos applications. Adobe vous propose ici, d’adopter un framework – Flex – et une base de code unique pour toutes les plateformes que vous ciblez. L’API Air vous permet d’interagir avec le hardware de votre téléphone. Vous pouvez contrôler programmatiquement la présence de tel ou tel composant.

Sur Android, seuls quelques téléphones disposent de la machine virtuelle pré-installée. Pour les autres elle est disponible sur l’Android Market pour peu que vous disposiez d’un firmware récent (>= 2.2). Lorsque vous installez une application Air, si vous ne disposez pas du moteur d’exécution, un message vous propose son téléchargement et vous renvoie sur le market, contrairement à la version iPhone où le moteur est embarqué dans les applications (il est donc forcément téléchargé).

Si Air peut s’exécuter sur toutes ces plateformes, l’outil Flash Builder 4.5 preview, connu aussi sous le nom de Burrito, ne permet pour le moment que le développement Android. Bien que certaines vidéos montrent une compatibilité Blackberry, l’option n’est pas encore disponible dans la version de Flash Builder que j’ai téléchargé.

La taille du runtime n’est pas négligeable, sur mon Nexus One il prend 16 Mo après installation. L’option d’installation sur la carte SD n’est pas activée, inutile de bidouiller votre téléphone pour déplacer le runtime, les performances de celui-ci n’en seraient que dégradées.

Sur le papier, cette technologie permet de ne plus avoir à faire le choix d’un développement iPhone, Android ou Blackberry. En pratique, du nous sommes en pleine guerre de chapelle pour savoir où et comment seront installés les runtimes. Par exemple, à ce jour, il manque un d’incontournable dans la liste des partenaires de l’Open Screen Alliance. Air sans Apple, c’est un peu comme une forêt sans écureuil comme disait Asterix dans l’un de ses albums.

Quoi qu’il en soit, la perspective du write once, run everywhere est alléchante :-) Wait & See…

Flex, un framework adapté à la mobilité !

Flex a été conçu dans l’optique de créer des composants riches. Il mêle description XML des composants graphiques (boutons, checkbox, listes …) – le MXML – à un langage de scripting – l’Actionscript 3 – permettant de donner vie à vos composants. Faisant moi même du Flex depuis 6 mois, je suis persuadé que ce langage est parfaitement adapté au développement d’applications mobiles.

À titre de comparaison, dans une application Android développée en Java l’écriture des écrans est relativement pénible :

  • en full java, la syntaxe est lourde à manier (setters complexes, listener volumineux …),
  • en XML, vous devez récupérer vos éléments graphiques par leur ID à partir du Java pour leur rajouter du comportement.

En résumé, le développent Android c’est faire du client lourd avec un langage peu flexible.

Flex est un langage pensé et conçu pour effectuer des actions asynchrones. Le langage permet l’ajout de comportements à des composants très simplement grâce à différents mécanismes dont :

  • le passage de fonctions en paramètre, pratique pour passer des handlers sur des événements.
  • le databinding, qui permet de notifier la mise à jour d’un model aux composants qui le désirent.

De plus, dernière bonne surprise, les composants graphiques utilisables dans une application mobile sont exactement les mêmes que ceux que vous utilisez dans une application Flex classique. L’apparence et le comportement ont simplement été adaptés pour les applications mobiles grâce à un nouveau Skin pour mobile dans la librairie Spark.

Pas encore production ready…

C’est bien joli tout cela, mais la peinture n’est pas complètement sèche.

Les outils ne sont disponibles qu’en version preview. Pourtant, l’intégration du développement mobile à Flash Builder est vraiment bien avancée :

  • une vue design permet l’élaboration rapide d’écrans,
  • un éditeur de composants bien pratique,
  • un gestionnaire d’appareils vous permet de lancer des simulateurs, il contient d’ailleurs bon nombre de périphériques pré-configurés,
  • l’installation sur un téléphone physique fonctionne tout aussi bien.

Mais il reste des progrès à faire au niveau des performances. Si l’exécution d’applications mobiles Air est bluffante sur l’émulateur, j’avoue rester un peu sur ma faim lors de l’exécution d’une même application sur mon Nexus One. (il en était de même lors de la démonstration sur tablette Android lors du XKE). Le scrolling des listes, par exemple, n’est pas aussi performant que sur une application native, la solution Flex rame encore un peu. Et plus généralement, une application Air Mobile consomme plus de CPU et de mémoire qu’une application native classique.

Mais surtout, les accords de distribution des moteurs d’exécution Air n’étant pas encore terminés, rien ne vous garantit que vous puissiez réellement profiter de votre application mobile Air sur toutes les grandes plateformes mobiles du moment.

Ne soyez pas timide, lancez-vous !

Que vous soyez développeur mobile ou non, que vous soyez flexeur ou non, n’hésitez pas à vous lancer pour vous faire un avis. Pour cela rien de plus simple, tout est disponible gratuitement sur les Labs Adobe : Adobe Flash Builder en version 4.5 preview (Burrito) (pendant 60 jours) et Adobe AIR Launchpad.

Si vous désirez essayer votre projet sur votre mobile Android (disposant d’Android 2.2 a minima), installez sur celui-ci le Runtime Air. Une fois cela fait, vous devriez mettre moins de 15 minutes pour exécuter votre première application Air sur votre mobile.

En guise de conclusion, je vous ai préparé une petite vidéo qui présente :

  • la génération d’un projet Air mobile avec AIR Launchpad.
  • l’utilisation de Flash Builder pour lancer votre application Air sur une plateforme Android.
Image de prévisualisation YouTube

Published by

Publié par Erwan Alliaume

Passionné par les technologies Java/JEE depuis sa sortie de l'EPITA, Erwan Alliaume est aujourd'hui consultant chez Xebia. Il intervient depuis 2 ans sur des missions de développement et d'architecture pour l’un des leaders mondiaux de la production et de la distribution de contenus multimédia. Expert technique polyvalent, Erwan a été amené très tôt à prendre des responsabilités sur des projets de taille significative. Il a notamment développé des compétences clé dans la mise en place de socle de développement, la métrologie et les audits de performance et de qualité. Erwan participe également activement au blog Xebia ou il traite aussi bien de sujets d’actualités que de problématiques techniques.

Commentaire

6 réponses pour " Adobe Air, le futur du développement Mobile ? "

  1. Published by , Il y a 12 ans

    « Bien que certaines vidéos montrent une compatibilité Blackberry, l’option n’est pas encore disponible dans la version de Flash Builder que j’ai téléchargé. »

    Il faut télécharger le dernier SDK du Playbook Blackberry pour pouvoir bénéficier de son intégration à l’IDE Flash Builder ;)

  2. Published by , Il y a 12 ans

    Il faut noter que les installeurs fournis par Blackberry (SDK et simulateur pour le playbook) peuvent ne pas fonctionner correctement pour certaines environnements (Vista+Java6 dans mon cas): « Install Anywhere » peut rencontrer certaines difficultés à lancer la JVM lors de l’installation ce qui cause un crash silencieux (Même avec une installation en bonne et due forme de Java) .

    Dans ce cas, il est donc nécessaire de bidouiller en ligne de commande pour installer avec succès les 2 logiciels Blackberry. Pour cela, il faut appuyer sur la touche ‘Ctrl’ lors de la décompression de l’installeur pour obtenir la ligne de commande à corriger (Il suffit de changer le path vers l’executable Java) avant de relancer l’installation.

  3. Published by , Il y a 12 ans

    Si j’ai bien compris dans ce mode de fonctionnement le rendu est fait avec la technologie flash, qu’en est il de la conso cpu et de la batterie sur un téléphone?

    En version Desktop, Air propose un moteur de rendu webkit pour les applications html/css/javascript. Cela existe-il sur la version mobile?

  4. Published by , Il y a 12 ans

    A ma connaissance, Air intégre un moteur WebKit pour le HTML, CSS et je javascipt. Il utilise également son player flash pour executer les SWF.

    Il en est probablement de même pour les version mobiles.

    Erwan (Xebia)

  5. Published by , Il y a 12 ans

    Salut Erwan. Je suis content de voir que la présentation t’a donné envie de tester AIR sur mobile. Je viens de publier les slides de la présentation du coup: http://www.slideshare.net/mchaize/xebia-adobe-flash-mobile-applications

    @Loic: AIR 2.5 embarque le Flash Player 10.1 qui est une version optimisée en termes de conso CPU et mémoire. Tu peux aussi optimiser ton code pour profiter du GPU (j’ai écrit un article sur le sujet dans le Programmez de ce mois-ci)

  6. Published by , Il y a 12 ans

    Bonjour,

    merci pour l’article intéressant mais combien coute la solution une fois les 60 jours passés ?

    Au vu de l’avancée en termes de connectivité (3G+ et bientot 4G+, plus les réseaux wifi ou wimax), des solutions complètement connectées au réseau av html5/hs et un serveur php (ou autre) ne sont elles pas tout aussi intéressantes ?

    j’ai aussi lu qu’on pouvait faire tourner des serveurs apache en local sur android, notamment pour des tablettes qui pourraient ainsi travailler en déconnecté, puis se synchoniser pour sauvegarder ou récupérer des données. et ca reste complètement ouvert et gratuit.

Laisser un commentaire

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

Nous recrutons

Être un Sapient, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.