4 technologies incontournables pour votre app mobile

folder_openTechnologies
Lecture : ~ 7 min

Afin de ne pas me faire jeter des pierres après ce titre plutôt alléchant, clarifions tout de suite un point essentiel et cassons un mythe : il n’y a pas de technologie absolue répondant parfaitement à tous les besoins de toutes les applications mobiles. Sinon les ingénieurs ne se casseraient pas la tête à créer de nouveaux frameworks sur le sujet, et je ne serais pas en train de rédiger cet article.
Ce dernier m’a d’ailleurs été inspiré par une cliente soucieuse de savoir quelles options technologiques s’offraient à elle pour son projet d’application mobile. C’est un réflexe très sain, s’il en est, que certains n’ont pas toujours ; cela revient un peu à acheter une voiture sans se renseigner au préalable sur le modèle !

Les fondamentaux

De façon à ce que tout le monde parte sur les mêmes bases, définissons ensemble ce qu’est une « application mobile » :

  • application ou app désigne un ensemble logiciel, indépendant de la techno utilisée, visant à répondre à une problématique spécifique.
  • mobile signifie que l’app a été développée en tenant compte des caractéristiques particulières inhérentes aux smartphones/tablettes (taille d’écran, navigation…).

Vous l’aurez remarqué cette définition exclut de facto toutes les « apps » (avec des groooos guillemets) présentes sur les Stores, n’étant que des copies de site web vitrine ou autre contenu statique. Par la même occasion cela exclut les jeux mobiles, catégorie complètement à part et méritant son propre article.
Tant que nous en sommes au vocabulaire, et afin de lire la suite de l’article sans encombres :

  • les plateformes mobiles regroupent les systèmes d’exploitation présents sur les smartphones ; les deux concurrents principaux et invaincus sont Android et iOS.
  • les Stores regroupent le PlayStore pour Android et l’AppStore pour iOS ; il s’agit des canaux de distribution principaux pour les 2 plateformes.
  • une librairie est un ensemble de composants graphiques et/ou logiques pouvant être utilisé dans une application afin d’éviter de re-développer une fonctionnalité de zéro.
  • les guidelines d’une plateforme représentent l’ensemble de bonnes pratiques recommandées par la plateforme ; particulièrement valable pour iOS, plutôt sévère en termes en cas de non respect.

Faisons les présentations

Il est temps de vous présenter ce pourquoi vous avez continuer à lire jusqu’ici : les différentes technologies pour réaliser une application mobile ; celles-ci sont classées par ordre d’apparition sur le marché.
Afin d’être le plus synthétique et impartial possible, le mode de présentation se basera sur : les avantages et inconvénients inhérents à la technologie ainsi qu’une petite précision et/ou exemple d’application.

Applications natives /

Le moyen le plus commun et répandu de créer une app mobile est sans grande surprise le moyen historique :l’application native. On qualifie de « native » une application si elle a été développée aux moyens des outils et langages de programmation propres à la plateforme qu’elle cible. Ainsi Apple et Google offrent des kits de développements permettant de cibler leurs plateformes respectives.

Force(s)

  • Qui dit « moyen historique » dit « une tonne de ressources » pour le développement sur chaque plateforme ; la formation sur le sujet est plus simple et le recrutement s’en trouve relativement facilité.
  • Les applications natives sont disponibles sur les Stores et vous permettent de profiter de l’énorme trafic généré ainsi que des recommandations et autres atouts de visibilité inclus.
  • La personnalisation d’une application peut être absolue : tant que cela respecte les guidelines, aucun problème lors de la publication sur les Stores (modulo l’humeur des personnes faisant la review de l’app).
  • La liste des composants disponibles pour créer une application n’est pas limitée car elle suit celle que chaque plateforme mets à disposition : les dernières nouveautés sont disponibles dès leur annonce.
  • La qualité de rendue sur le smartphone est maximale, dans la limite des compétences du développeur associé.

Faiblesse(s)

  • Chaque application utilisant le kit de développement fourni par la plateforme qu’elle cible, il est nécessaire de développer 2 fois l’application : une fois sur Android et une fois sur iOS. Il faut alors envisager de confier le développement à une personne maîtrisant les deux plateformes (plutôt rare) ou à 2 personnes distinctes.

Fun fact

Une légende urbaine circule sur l’une des premières équipes de développement mobile pluridisciplinaire : la société aurait d’abord sorti son application sur Android puis aurait tenté de faire de même sur iOS. Problème : ils auraient oublié la flèche « back » de navigation sur iOS (sachant qu’Android propose un bouton physique en bas de l’écran) et se seraient fait jeter de l’AppStore… Morale : il est important de comprendre qu’il existe bel et bien des différences entre les plateformes, particulièrement sur les usages.

Applications hybrides

Les équipes techniques se sont vite rendues compte que développer 2 fois la même fonctionnalité n’était pas franchement une manière optimisée de procéder, cela a donné naissance aux applications dîtes « hybrides ». À ne pas confondre avec les applications « cross-platform », présentées dans la suite de cet article.
Ce type d’app est réalisé (grossièrement) selon le procédé suivant : création d’une application web (HTML/JavaScript/CSS…), puis encapsulation dans un exécutable natif pour fonctionner sur la plateforme visée.

Force(s)

  • C’est le début de la mutualisation du code pour les plateformes Android et iOS. Cela permet de réduire les temps de développements initiaux et donc les coûts avant la mise sur le marché des applications.
  • Perçue comme l’Eldorado lors de sa sortie, de nombreuses entités sont venues proposées des frameworks tels que Cordova, PhoneGap ou encore Framework7 ; ces frameworks permettent de structurer à minima le code de l’application et proposent des composants facilitant/accélérant le développement.

Faiblesse(s)

  • Le rendu final ainsi que la qualité des interactions sur ce type d’application laisse souvent à désirer, vis à vis d’une application native. En effet les composants web utilisés pour créer l’interface ne sont pas aussi réactifs que leur équivalent natif, ce qui rend la différence perceptible à l’usage.
  • La technologie web et son encaspulation ne permettent pas d’exploiter toutes les ressources du téléphone, bien que des progrès continuent d’être réalisés pour l’appropriation des capteurs (gyroscope, accéléromètre, appareil photo…) des smartphones.
  • Les composants utilisés pour réaliser l’app sont très dépendants du framework choisi initialement : si celui-ci est à jour tant mieux, sinon il faut attendre qu’il intègre les dernières nouveautés proposées par les plateformes.

Fun fact

Apple a déclaré début Janvier que les apps « n’étant qu’une coquille vide embarquant un site web » ne seront plus les bienvenues sur l’AppStore dans quelques temps et encourage « vivement » les producteurs de ces apps à remédier à la situation. Le tout est de savoir jusqu’où ils décideront de tracer la ligne ; pour plus d’informations, vous pouvez vous référer à la news en question.

Applications cross-platform

Dans le prolongement des apps hybrides sont venues se glisser les applications dîtes « cross-platform » ; la différence principale entre ces 2 types d’apps tient à un détail technique non négligeable : ici pas d’encapsulation d’une technologie dans une autre, mais transformation du code commun (aussi appelée transpilation) vers le code des plateformes cibles. Le langage de programmation de l’application est donc à la discrétion du framework utilisé, par exemple ReactNative utilise du JavaScript et Flutter utilise du Dart pour l’écriture d’une app.

Force(s)

  • Le code est ici aussi mis en commun, dans sa grande majorité, entre les 2 plateformes. Cela accélère donc le temps de développement initial (non, on ne va pas 2 fois plus vite quand même..) et ne requière pas nécessairement d’avoir une équipe pour chaque plateforme : tout dépend du degré de personnalisation souhaité.
  • La qualité du rendu et des animations est relativement élevée, parfois identique aux applications natives, grâce à l’utilisation de la couche graphique native des plateformes.
  • Les applications sont disponibles sur les Stores et peuvent donc profiter du trafic d’utilisateurs associé.
  • Les communautés de développeurs sont très engagées, particulièrement autour de Flutter et ReactNative, ce qui pousse les éditeurs de ces frameworks (Google et Facebook) à continuer de proposer des outils pertinents pour le développement.

Faiblesse(s)

  • La personnalisation de l’app par plateforme est relativement difficile à maintenir dans le temps ; en effet l’évolution des guidelines est propre à chaque plateforme et il est important de les respecter pour offrir la meilleure expérience possible aux utilisateurs habitués à la plateforme.
  • Mettre à jour ce type d’application peut s’avérer douloureux pour le développeur, à cause des changements dans la technologie du framework de version en version ; particulièrement vrai avec ReactNative.

Fun fact

Microsoft a été pionnier de ce type d’application avec Xamarin mais la solution n’a pas été particulièrement plébiscitée par la communauté de développement, particulièrement avec l’absence de décollage pour Windows 10 sur mobile. Pourquoi se former sur une plateforme s’il n’y a quasiment aucun utilisateur à la clé ? Entre collègues nous appelons ça le « Microsoft effect »…

Progressive Web Apps : PWA

Dernière technologie arrivée sur le marché de l’application, les PWA sont essentiellement des applications web adaptées à l’expérience sur mobile. L’accès à une PWA se fait donc depuis le navigateur du smartphone et il est possible de créer un raccourci sur le smartphone afin d’imiter le comportement d’une application installée via le Store.

Force(s)

  • La mutualisation du code pointe encore une fois le bout de son nez : tout est en effet développé avec la partie web, car il ne s’agit que de la version mobile du site.
  • Il est possible d’utiliser des options disponibles pour les applications des Stores telles que les notifications push, l’ouverture de l’appareil photo, un mode « hors ligne »… Attention tout de même, cela est laaaaaaargement perfectible comme nous allons le voir dans la prochaine partie.

Faiblesse(s)

  • Comme expliqué dans l’introduction cette techno est très récente, aussi les standards de celle-ci ne sont pas encore très bien établi et leur capacité de fonctionnement dépend avant tout de la version du navigateur que vous utilisé.
  • Les fonctionnalités « natives » précédemment citées ne sont pas accessibles sur toutes les plateformes ni tous les navigateurs, prudence donc.
  • Le rendu se fait clairement sentir comme un site web, ce qui en soit n’est pas bien surprenant.
  • L’app est accessible uniquement via le navigateur, impossible de profiter du flux d’utilisateurs des Stores.

Fun fact

Les PWA ne remplaceront probablement jamais les technologies citées précédemment (sauf l’hybride peut être !), mais il est intéressant de les voir comme un complément plutôt qu’une alternative aux apps traditionnelles. Certains géants, notamment Uber, proposent une PWA pour toucher les derniers utilisateurs ne pouvant utiliser leur service via leurs applications natives faute de compatibilité avec les smartphones.

En définitive

Cet article n’aura pas fait de vous un professionnel rompu au développement mobile, mais vous aura probablement permis de prendre un peu de recul sur les différentes possibilités pour vos projets à venir. Cela ne remplacera jamais l’avis d’un expert sur la question, mais vous permettra d’aiguiller vos demandes ou votre recherche du bon profil.
Fuyez ceux qui vous recommande systématiquement la même solution à différents problèmes, c’est gens là sont des « marteaux » : pour un marteau, tout ce qui dépasse ressemble à un clou !

Pour celles et ceux qui auraient besoin de plus de conseils sur la bonne technologie pour leur projet, n’hésitez pas à me contactez directement !

Si ce type d’articles de vulgarisation vous a plu, n’hésitez pas à le partager sur vos réseaux sociaux et à liker l’article !

Dans la même catégorie

Il n'y a pas encore d'autres articles dans cette catégorie !