Nous poursuivons notre tour d’horizon des technologies aujourd’hui disponibles pour réaliser des applications mobiles iOS et Android. Après nous être intéressés aux PWA puis à Cordova, nous allons aborder la seconde tentative d’Adobe pour s’imposer comme un acteur majeur du développement mobile. Il s’agit du framework multiplateforme Adobe AIR.

Adobe AIR : un moteur d’exécution pour Adobe Flash

C’est en 2007 que le projet Apollo prend la dénomination AIR pour Adobe Integrated Runtime (un clin d’œil à peine dissimulé à l’acronyme RIA ou Rich Internet Application). À l’instar de JAVA par exemple, et selon la définition qu’en fait Adobe, AIR est avant tout un moteur d’exécution. Jusqu’alors, la lecture des très populaires applications Flash exigeait l’installation de la machine virtuelle Flash (plus connue sous le nom Flash Player). En se substituant au navigateur, AIR va permettre aux animations Flash d’être directement interprétées par le système d’exploitation.

Ce parti-pris technologique offre trois avantages notables. Il permet, tout d’abord, de créer des applications de bureau sans passer par le cadre jusqu’alors jugé limité du navigateur. Ce moteur d’exécution offre ensuite l’opportunité de créer des applications agnostiques. Une même application Flash est donc exécutable quelle que soit la plateforme dès lors que celle-ci est compatible AIR. Via l’emploi du moteur de rendu Webkit, il va enfin autoriser la prise en charge d’une large palette d’autres langages qu’ActionScript et Flash. Adobe AIR peut en effet interpréter un autre produit maison, Adobe Flex (futur Apache Flex). Mais il va surtout étendre le potentiel de développement au web avec HTML, CSS, et JavaScript.

Le virage mobile d’Adobe AIR

Comme nous avons pu le voir juste avant, en étant d’une part théoriquement compatible avec plusieurs plateformes (en substance Windows, macOS ; AIR sera également disponible sur Linux entre 2008 et 2011) et en s’appuyant d’autres part, sur les langages phares du web (HTML, CSS, et JavaScript) l’ADN d’Adobe AIR présente deux caractéristiques qui lui confère une dimension cross-plateforme. De ce point de vue, il n’est pas si éloigné que ça, par exemple, d’un Cordova à la nuance prêt qu’il n’a pas été conçu dès son origine dans une optique ouvertement mobile.

AIR profite dès ses débuts de la popularité de Flash. Rappelons qu’au début des années 2010, en matière d’interactivité et d’animation sur Internet, la solution phare d’Adobe est encore l’une des seules, sinon l’unique proposition technologique alternative au balbutiant JavaScript. C’est la principale raison pour laquelle AIR va rencontrer un succès certain auprès d’une large communauté de développeurs de jeux et lui permettre de laisser libre cours à sa créativité en 2D comme en 3D.

À compter de 2010, le framework d’Adobe s’attaque à la possibilité de créer des applications mobiles natives pour iOS et Android. La philosophie du moteur d’exécution ne change pas. Il offre la possibilité de créer une application *.ipa pour iOS et une application *.apk pour Android à partir d’un seul et même code source. De ce point de vue, la proposition d’Adobe est pleine de promesse :

  • un seul développeur peut mettre au point deux applications (iOS et Android ; voire davantage…) ;
  • un seul code source suffit pour créer deux applications ;
  • la maintenance de l’application est réduite d’autant ;
  • les compétences nécessaires sont globalement maîtrisées par un développeur web.

Pour poursuivre son virage mobile, Adobe AIR proposera également d’inclure la base de données SQLite.

Créer une application mobile avec Adobe AIR

Le SDK fourni par Adobe AIR permet d’exploiter plusieurs API qui vont, par exemple permettre de manipuler la camera du smartphone, son microphone, donner accès aux fichiers stockés sur celui-ci, utiliser l’accéléromètre etc. Un bon point pour le framework d’Adobe.

Conçu pour proposer une expérience strictement agnostique quelque soit le système d’exploitation ciblé, AIR ne tient donc pas compte des guidelines et spécificités UX intrinsèques de chaque système d’exploitation (iOS et Android). Une app conçue avec le framework Adobe AIR est donc strictement similaire sur iOS et Android. C’est naturellement un critère important à prendre en compte dès lors qu’on souhaite proposer une expérience utilisateur sans couture.

Via l’API Stage3D, Adobe AIR offre des possibilités de paramétrage assez fines en matière de rendu graphique. Pour autant, les performances des applications produites demeurent toujours inférieures à celles d’app mises au point avec Swift et Kotlin. Il faut reconnaître que cet écart de performance s’avérera à peine perceptible dans de nombreux cas.

En conclusion, faut-il encore choisir Adobe Air pour développer une application mobile ?

Adobe AIR est un framework propriétaire qui offre d’intéressantes possibilités en matière de développement multiplateforme. Apparu voilà maintenant plus de 10 ans, il permettait notamment aux développeurs web maîtrisant Flash d’étendre leur savoir-faire aux applications de bureau puis aux apps. Mais à l’heure où Adobe tourne définitivement la page de Flash Player et où de nombreux frameworks cross-plateforme open-source brillent par leurs popularités et/ou leurs facilités de prise en main (React Native, Xamarin, Flutter…) il n’est pas certain que la solution d’Adobe soit encore en mesure de les concurrencer. En mai 2019, Adobe a d’ailleurs annoncé la cession de l’activité AIR à son partenaire Harman. Si la filiale du groupe Samsung electronics s’est engagée à poursuivre les mises-à-jour du SDK et des environnements d’exécution, on peut tout de même s’interroger sur la prise en charge des futures évolutions de MacOS et in fine douter de la pérennité du framework à plus long terme.

Cet article vous a plu ? Profitez d’encore plus de contenus sur les technologies mobiles en vous abonnant à Ikonnect, la newsletter mensuelle d’Ikomobi