On doit l’avènement des applications mobiles au tout premier iPhone sorti en 2007. Depuis, elles ont chamboulé notre quotidien.
QR code, mobilité accrue et télétravail : dans le contexte actuel, les applications mobiles sont plus que jamais utilisées, dans le cadre privé mais aussi professionnel.
De la frénésie où toutes les entreprises voulaient leur app à tout prix, sans forcément d’utilité, jusqu'à aujourd'hui : où en sommes-nous côté développement d’applications mobiles ?
Il existe deux manières de programmer une application mobile, on vous explique les avantages et inconvénients de chacune et on vous donne les nouveautés, ainsi que nos convictions !
Bonne lecture
Historiquement, le développement natif était la seule manière de concevoir une application mobile. Cette solution est encore très utilisée aujourd’hui, faisons le point sur les technologies.
Au départ, le développement iOSSystème d'exploitation des appareils Apple. était réalisé avec Objectif C basé sur le C, un langage assez lourd. Celui-ci a laissé place à Swift en 2013. Après une fièvre de sorties de versions majeures tous les 6 mois, la volonté d’Apple est de stabiliser le langage depuis quelques années. Conséquence : peu d’évolutions !
Aujourd’hui, on est en SwiftLangage de programmation créé par Apple, pour le développement sur leur différents périphériques. 5.4. La version majeure date de 2019.
Les dernières évolutions sont facultatives mais notons quand même Swift UIL'UI signifie "user interface", et se compose de tous les éléments graphique d'une interface utilisateur. qui a pour volonté d’unifier toutes les interfaces au sein de l’écosystème Apple : Iphone, Ipad, mac.
Initialement, le développement d’applications mobiles sur AndroidAndroid est un système d'exploitation mobile basé sur Linux. était sur du Java natif, puis on est passé progressivement sur du Kotlin, né en 2016, poussé par Google et développé par JetBrain, qui sont aussi derrière Android Studio.
KotlinLangage de programmation permettant de développement des applications mobiles Android natives. est plus une surcouche de JavaLangage de développement très populaire ! qu’un langage en tant que tel, mais elle simplifie grandement les choses pour les néophytes. De plus, les erreurs sont mieux gérées, ce n’est pas rien ! La syntaxe de Kotlin, qui ressemble un peu à celle de Swift, empêche de faire des nulls.
Le développement d’applications mobiles sur Java est encore très utilisé, grâce à la communauté de développeurs et aux projets open source disponibles.
Pour contourner l’onéreux multi-développement sur iOS et Android en parallèle, avec plusieurs périphériques et systèmes ciblés, le cross-platform a vu le jour. L’idée est simple : une application unique qui se déploie sur plusieurs périphériques.
Plusieurs types de cross-platform existent :
Les principaux frameworks de développement cross-platform sont les suivants :
React NativeFramework basé sur React pour le développement d'applications cross-platform. est un framework 100% JavaScript basé sur React.
Ce framework est né à l'origine chez Facebook en 2012. ReactReact est un framework de développement JavaScript populaire. Native avait pour objectif premier de moderniser et de simplifier le développement des applications Facebook Android et iOS qui se faisaient vieillissantes. Depuis, l’application Facebook a fait marche arrière mais le framework marche toujours ! Depuis 2015, il est passé open source.
Les avantages de React Native :
Les inconvénients de React Native :
IonicFramework de développement d'applications cross-platform. repose sur les langages de développement Angular et TypeScript, deux technologies qui, associées, forment un combo très productif !
Les avantages d’Ionic :
Les inconvénients d’Ionic :
Le langage dont on parle régulièrement dans nos podcasts prend de plus en plus de parts de marché. Seul hic : il faut réapprendre un nouveau langage pour s’en servir !
Les avantages de Flutter :
Les inconvénients de Flutter :
Le petit dernier concocté par JetBrains, encore en alpha mais prometteur pour le développement mobile et desktop. Il utilise du natif, et non un conteneur web utilisé dans une application mobile, à surveiller de près ! On en parle par ici.
L’idée est d’avoir une application web installable sur un téléphone sans passer par les stores. C’est un peu l’équivalent d’un favori sur un navigateur.
Gros problème : Google et Apple n’aiment pas le fait qu’on ne passe pas par leur store et qu’on les prive de leurs commissions sur les installations et achats.
La technologie fonctionne, mais on reste bloqués par les fournisseurs avec une très forte limitation de l’accès au device : pas d’achat in-app, pas de notification… On se prive d’une bonne partie de l’intérêt d’une application mobile.
Pour une application professionnelle, c’est possible ! Si vous vous posez la question d’une PWA, on vous en dit plus en vidéo par ici.
Disons-le directement : on peut presque tout faire avec du cross-platform, mais ça sera toujours un peu moins performant que le natif à cause de la couche d’abstraction. Ce n’est pas toujours l’objectif, mais il faut le prendre en compte !
Sur ce point, Flutter et React se calent sur les packages de base d’iOS et d’Android. Les logiques UXL'UX signifie "user experience" et définit l'ensemble des éléments permettant l'utilisation du site web de façon optimale. et graphismes sont respectées, un point partout. Avec Ionic moins, car cela reste du web.
80 % du coût d’une application mobile, c’est sa maintenance.
Vous vous en doutez, développer deux fois, c’est plus cher. On n’ira pas jusqu’à doubler le prix de l’application mobile car il y a tout de même des éléments qui se recoupent.
Avec du cross-platform, il y aura moins de coûts d’entrée. En revanche, le coût de la maintenance sera plus élevé car il faudra maintenir presque trois stacks applicatives : cycle de vie de l’application iOS et Android et du langage intermédiaire.
Pour l’équipe de développement, c’est pareil, des spécialistes seront toujours les bienvenus pour préciser des points ou corriger des bugs.
Enfin, le cross-platform est un choix définitif. Le code ne pourra pas être transformé en natif. L’inverse est vrai mais la rétrocompatibilité est plus forte avec le même système.
À long terme, une application cross-platform peut donc se révéler plus chère. Cela va dépendre du degré de complexité de l’app !
Pour une application complexe et des fonctionnalités poussées, si vous avez les moyens, nous vous conseillons le développement natif pour garantir une stabilité sur le long terme.
Pour une application standard et des fonctionnalités classiques, le cross-platform fait sens pour éviter d’avoir deux applications.
Nos convictions chez AXOPEN :
Vous l’avez compris : avec toutes les options disponibles, faire une application mobile, ça ne s’improvise pas ! Si vous souhaitez en discuter, on sera ravis d’échanger avec vous en tant qu’agence développement mobile, pour nous contacter, c’est par ici !
Android, iOS, agilité, UX... On vous donne nos grandes convictions concernant le développement mobile
Comment gérer la dette technique ? On vous donne 4 conseils pratiques pour ne pas se laisser déborder !
Les tests E2E, c’est quoi ? Définition, implémentation et retour d’expériences des librairies de tests E2E !