Cet article est publié sous licence CC BY-NC-SA
Il n'y a jamais eu une telle fragmentation dans les appareils électroniques. Alors que Windows et les PC ont été dans une position de quasi-monopole pendant des années, les choses ne sont plus ce qu'elles étaient depuis l'arrivée des tablettes, smartphones, et la croissance du Mac.
Votre solution métier doit-elle être une web app ou une application native ?
Les deux apportent des avantages et inconvénients. Le choix devra se faire par rapport à votre projet. Voici quelques éléments pour vous aider à prendre une décision.
Le web a évolué rapidement et continue de changer fréquemment. De nouvelles fonctionnalités sont ajoutées à chaque nouvelle version des navigateurs, et ces nouvelles versions sortent bien plus régulièrement.
De nombreuses fonctionnalités ont permis aux applications web de pouvoir avoir un certain nombre de fonctionnalités qui étaient destinées aux applications natives auparavant.
Tous ces ajouts permettent désormais aux applications web de rivaliser avec les applications natives sur les ordinateurs de bureau, mais surtout sur les smartphones et les tablettes. Une application web incorporant ces fonctionnalités portent un nouveau nom : Progressive Web Applications ou PWA.
Sur mobile, les PWA peuvent être ajoutées à l'écran principal du smartphone ou de la tablette permettant aussi d'utiliser cette application web sans les contours du navigateur. De ce fait, l'expérience est très similaire à une application native.
Aucune installation n'est nécessaire, le processus est donc bien plus simple que l'installation d'une application native ou l'installation nécessite une authentification préalable ainsi que le téléchargement parfait conséquent des fichiers. En effet, les applications disponibles sur les app stores font bien souvent plusieurs centaines de mégaoctets alors que des applications web sont souvent à moins d'un mégaoctet.
Même si, en général, une application native est plus performante qu'une application web dans son utilisation, le chargement est une autre histoire. Il n'est pas rare de devoir attendre une dizaine de secondes quand on ouvre une application native alors que les PWA sont optimisées pour se lancer le plus rapidement possible.
De nombreuses entreprises ont adopté les PWA avec des résultats impressionnants.
Plus un utilisateur revient, plus il y a de chances qu'il trouve quelque chose d'intéressant. Et en effet, Trivago a vu une augmentation du nombre de clics sur leurs offres d'hôtels de 97%.
Au lieu de se battre avec la concurrence dans les app stores, Trivago a tiré avantage de son traffic web existant pour améliorer l'expérience utilisateur sur mobile avec une PWA. Une stratégie économique pour des résultats très encourageants !
Malgré le fait que les applications web peuvent avoir des notifications et rester toute la journée ouverte, Avoir des applications distinctes est toujours populaire.
Mais de plus en plus de ces applications ne sont que des applications web dans une fenêtre native. C'est le cas par exemple de Slack. L'application de communication collaborative numéro une dans le monde est une application web embarquée dans une application native.
Vous aurez la même expérience dans un navigateur qu'en utilisant leur application « native » et c'est le même code derrière. C'est devenu possible avec Electron qui permet d'embarquer des applications web dans une application native et est compatible avec Windows, Linux et macOS.
Plus besoin d'avoir des équipes web et natives séparées, plus besoin de développer du code spécifique pour chaque système d'exploitation. C'est un gain de temps et d'argent important et permet de garder les bénéfices d'une application web en les combinant avec les bénéfices d'une application native.
Il y a cependant un problème qui peut se révéler être important. Ces applications peuvent consommer beaucoup de RAM et en avoir plusieurs sur un ordinateur pas très puissant peut causer des lenteurs que vous n'auriez jamais eues avec de vraies applications natives.
C'est une technique utilisée depuis le début des smartphones mais qui a été très inférieur pendant des années aux applications natives.
Comme Electron, PhoneGap permet de mettre une application web dans une coquille d'application native. Mais les performances sur mobile sont assez mauvaises, ce n'est donc pas une solution qui est très répandue.
Cependant, plusieurs librairies permettent d'écrire des applications natives avec des technologies normalement web. C'est le cas par exemple de React Native. React est un framework pour créer le côté client d'une application web. Il est open-sourcé et développé à l'origine par Facebook. Ils l'ont ensuite adapté pour le mobile pour créer de véritables applications natives avec du JavaScript et React.
Cela permet d'avoir de meilleurs performances que PhoneGap tout en utilisant des outils familiers pour beaucoup de développeurs.
Pour une application native, il est courant de payer une licence pour utiliser chaque nouvelle version majeure. La tarification est souvent assez complexe et les clients n'ont pas une grande visibilité sur l'obsolescence de la version achetée. Ce modèle est obsolète.
En effet, avec une application web il est très facile de la distribuer en tant que SaaS, Software-as-a-Service. Les clients payent tous les mois et les mises à jour sont fréquentes.
C'est le modèle adopté par tous les acteurs des applications métier à l'heure actuelle.
La distribution des applications mobiles se font sur l'App Store d'Apple et le Play Store d'Android et il est impératif de suivre leurs règles. Elles sont parfois injustifiées et peuvent changer du jour au lendemain. Cela peut créer de nombreux problèmes pour la distribution initiale mais aussi dans le futur.
Pour des applications métier qui ne sont pas publiques, la distribution est légèrement différente. Pour iOS il faut utiliser le « Apple Developer Enterprise Program » permettant de distribuer une application mobile moyennant 299$ par an. Cependant l'hébergement n'est pas inclus et il faut auto-héberger toute la partie permettant de télécharger l'application et la mettre à jour. Des services proposent de le faire comme Appaloosa, cela rajoute bien sûr un coût supplémentaire.
Pour Android, la distribution des applications privées se fait dans le Play Store, le processus est donc plus simple qu'avec Apple.
Les questions à se poser pour prendre la bonne décision :
Dans un nombre de cas important, porter son choix sur le développement d'une application web est le choix le plus sûr.
Faire les bons choix de technologies permettra de faire des applications hybrides facilement avec Electron ou React Native si un besoin imprévu requiert une fonctionnalité que ne délivrent pas les navigateurs.
L'équipe Synbioz.
Libres d'être ensemble.
Nos conseils et ressources pour vos développements produit.