Makina Blog
Comment choisir sa technologie mobile ?
Une multitude de solutions pour développer une application mobile existent. Il est donc important de comprendre laquelle est la plus adaptée selon son besoin. Ces solutions peuvent être classées en trois catégories : Natif, Web cross-platform et Natif cross-platform.
Quelques définitions
- Une application native est une application développée pour se conformer entièrement aux exigences et aux directives d’un système d’exploitation particulier.
- Une application web est accessible via un navigateur web et hébergée par un serveur.
- Une application hybride combine l'application native et web.
- Le terme de cross-platform est utilisé pour une application qui peut être utilisée sur plusieurs plateformes.
Natif
Une application native est une application développée pour se conformer entièrement aux exigences et aux directives d’un système d’exploitation particulier.
Avantages
- Performance
- Accès aux fonctionnalités natives
- Possibilité de créer des applications pour d'autres périphériques comme les montres ou tvOS / Android TV
Inconvénients
- Deux bases de code à développer et maintenir
- Version web indisponible
Technologies
- Kotlin pour Android
- Swift pour iOS
C'est la solution à privilégier lorsque l'on dispose d'un budget conséquent. Encore plus si une version web est nécessaire car dans ce cas là, il faudra développer une version spécifique. Donc le développement est couteux ainsi que la maintenance.
Web cross-platform
L'application web cross-platform permet de créer une application mobile avec un code unique, et de la déployer sur toutes les plateformes : iOS, Android et web.
Avantages
- Une seule base de code
- Facilité de développement
- Choix du framework JavaScript
- Version web disponible
Inconvénients
- Impossibilité de créer des applications pour d'autres périphériques comme les montres ou tvOS / Android TV
- Performance
Technologies
- Cordova
- Capacitor
L'avantage est que l'on peut choisir le framework JavaScript souhaité. De plus, Capacitor permet d'utiliser les fonctionnalités natives de l'appareil depuis Android, iOS ou même un navigateur Web avec une seule base de code. Capacitor étant plus récent que Cordova, il a l'avantage d'avoir des plugins plus à jour et donc plus stables que celui-ci mais l'inconvénient d'en avoir moins de disponibles.
À noter qu'il est possible d'avoir une pwa pour la version web.
Natif cross-platform
Les applications natives cross-platform sont proches des applications hybrides. Elles utilisent une même base de code pour une application iOS et Android.
Avantages
- Performance
- Une seule base de code
- Accès aux fonctionnalités natives
- Version web disponible mais avec des contraintes
Inconvénients
- Impossibilité de créer des applications pour d'autres périphériques comme les montres ou tvOS / Android TV
Technologies
- Flutter
- React Native
- NativeScript
React Native a l'avantage d'utiliser React et donc d'être facilement compréhensible pour un développeur React, par contre Flutter utilise Dart qui est plus spécifique. NativeScript propose un large choix de framework JavaScript.
Autre alternative : PWA
Les Progressive Web Applications sont une autre alternative aux applications. Avec la PWA il est possible de travailler hors-connexion. L'objectif de ces applications est de faciliter la fidélisation des utilisateurs.
Elles sont accessibles directement à partir d'un navigateur web. Elles peuvent utiliser les fonctionnalités du smartphone (apparail photo, géolocalisation, etc.), tout comme le ferait une application mobile classique. Des développements spécifiques peuvent être réalisés afin d'avoir une version web cross-platform et ainsi de pouvoir la déployer sur les stores.
En quelque sorte, ce type d'application est un mélange entre l'application mobile et le site web.
Faire son choix
Chaque solution peut être viable selon les besoins de votre projet.
Si pour vous les performances et animations sont importantes, il faudra choisir une des solutions natives.
Si vous avez besoin de déployer votre application à la fois sur Android et iOS, le natif cross-platform semble approprié pour économiser sur les coûts de développement et de maintenance.
Si votre budget est illimité ou que vous avez besoin que d'une version Android ou iOS alors le natif est la solution idéale. De plus, si vous avez besoin d'étendre l'accès à votre application sur un appareil supplémentaire comme une montre, cette solution est obligatoire.
Si vous avez besoin d'une version Web, il faudra choisir la solution web cross-platform ou prendre un risque avec le natif cross-platform et avoir une application peu compatible avec le SEO et des problèmes compliqués à résoudre car ils ne seront pas standards.
À noter que Flutter a pour ambition d'être compatible avec la plupart des systèmes d'exploitation et navigateur web. Donc son rendu web est en constante évolution. De même pour son fonctionnement en tant qu'application sur des systèmes comme windows et linux.
Actualités en lien
PWA : Atteindre un score élevé dans Google Lighthouse avec Ionic 2
Quelques astuces pour créer une Progressive Web App de qualité avec Ionic 2.
Authentification OAuth 2.0 avec Ionic 2
Souvent, pour pouvoir utiliser des API de services tiers, on s'authentifie avec le protocole OAuth.
Tout savoir avant de créer son application mobile
Entre app native, précompilée, hybride et PWA, le choix est large.