Actualités


Des nouvelles fraîches

Quelle est la meilleure technologie pour développer une application mobile ?


Contrairement aux sites internet (web et web app) disponibles sur tous les navigateurs, une application mobile doit être téléchargée sur des plateformes spécifiques (App Store, Google Play, AppGallery…) en fonction de son téléphone. Chaque plateforme a ses propres codes.  Pour développer une application, il faut pouvoir maîtriser les spécificités de chacun des systèmes d’exploitation.

 

Le développement en natif, c’est-à-dire l’utilisation des langages de programmation spécifiques à chaque système d’exploitation, implique de coder le projet sur autant de plateformes souhaitées (iOS et Android dans la majorité des cas). Il faut alors trouver les compétences et le budget pour ces développements. Pour notamment pallier le manque de ressources humaines et financières, les frameworks hybrides se sont développés. Pour y voir plus clair sur les possibilités, voici une synthèse des langages de programmation les plus utilisés pour développer une application mobile :

Les langages natifs pour iOS

  • Objective-C

Longtemps à la base du développement de logiciels pour les plates-formes Apple, Objective-C est le successeur du C dont la syntaxe est similaire. Le langage orienté objet a été créé en 1983 par Brad Cox et Tom Love. Largement utilisé depuis plus de 30 ans, la communauté s’essouffle au profit de Swift. Un des avantages d’Objective-C est d’utiliser des versions antérieures d’iOS et macOS, ce qui facilite la création de projet universel.

  • Swift

Swift est un langage plus lisible et plus simple à appréhender qu’ Objective-C. Créé en 2014, Swift est devenu le langage de programmation de référence pour le développement mobile iOS en raison de ses performances.  En 2021,76% des développements ont été réalisés avec Swift contre 13% avec Objective-C*. C’est aussi le langage de Mac OS, watch OS, tv OS, Linux et z/OS. A l’inverse d’Objective C, c’est un langage open source avec, entre autres, une syntaxe plus simple et une gestion de la mémoire optimisée.

(*Source  JETBRAIN).

Les langages natifs pour Android

  • Java

Java est le langage historique (+ de 25 ans)  d’Android et le plus populaire. Orienté objet, il reprend en grande partie la syntaxe du langage C++. Il permet le développement de sites web ou d’applications mobiles avec l’avantage de s’exécuter sur plusieurs plateformes sans avoir à créer de nouveaux programmes.

Il est supporté par l’environnement de développement Android Studio. Ses atouts, par rapport aux langages antérieurs, sont le multithreading, l’extensibilité, la gestion de la mémoire (grâce au “garbage collector”), la haute sécurité, le support communautaire…

  • Kotlin

Depuis la conférence Google I/O de 2019, Kotlin est officiellement le langage de référence pour développer des applis sur Android après Java. C’est une version optimisée de Java avec une syntaxe plus légère et explicite. Pour une même fonctionnalité à développer qu’en Java, le code est allégé pour gagner sur les temps de développement, de test et de maintenance. Kotlin peut être combiné à du Java qui utilise le même système d’encodage.

Kotlin n’est pas un langage propriétaire. Le langage, mais également ses bibliothèques et tous les outils, sont entièrement gratuits et accessibles à tous sur GitHub. Il présente donc tous les avantages de l’open-source : accessibilité, adaptabilité aux besoins, prix, évolutivité, outils…

codage

Frameworks hybrides :

Comme indiqué plus haut, il existe une alternative aux langages natifs pour développer à moindre coût en faisant quelques compromis : les Frameworks hybrides tels ReactNative, Flutter ou Xamarin. Les applications hybrides sont développées dans un seul langage, puis le framework s’occupe de le traduire dans un autre langage. Ces frameworks sont relativement efficaces puisqu’ils permettent de gagner un temps précieux sur les développements, de l’ordre de 30% en moyenne.

  • React Native

React Native est un framework cross-plateforme, créé par Facebook en 2013. Ce framework Open Source utilise Javascript pour le développement d’applications mobiles sur iOS, Android et Windows. Les performances obtenues sont quasi natives ; l’expérience utilisateur est de très bonne qualité. Il est possible de mixer du code natif et du code React Native en fonction des performances souhaitées pour certaines fonctionnalités. Cette solution comporte également quelques inconvénients. Vous pouvez les revoir dans cet article : https://www.snapp.fr/react-native-quels-enseignements-apres-3-ans-dexperience/

  • Xamarin

Xamarin est également un framework Open Source disponible pour iOS, Android et Windows. Racheté par Microsoft en 2016, il permet aux développeurs de partager en moyenne 90 % de leur application entre les plateformes. Contrairement à React Native, Xamarin utilise des composants web. Le langage n’a pas rencontré le succès escompté et est progressivement remplacé par .Net Maui depuis novembre 2021.Il sera définitivement mis à la retraite en novembre 2022.

  • Flutter

Flutter est un framework développé par Google en 2017. Il est utilisé pour développer des applications pour Android, iOS, Linux, Mac, Windows, Google Fuchsia et le web à partir d’une seule base de code. Le Flutter SDK utilise Dart (également développé par Google) en tant que langage de programmation. Ce framework est basé sur un système de Widgets qui permet d’ajouter des fonctionnalités facilement. Tout comme React Native, il peut être couplé au code natif existant. Les performances sont similaires à celles du natif.

Flutter offre un environnement de dev déjà mature et permet une prise en main rapide approuvée par les développeurs. 

Conclusion :

Pour développer une application mobile, il existe donc pléthore de langages ! Les fonctionnalités et les objectifs du projet pourront orienter les choix. Quelques questions à se poser avant de démarrer :

  • Que pourront faire les utilisateurs sur l’application : jouer, visionner des vidéos, communiquer, se géolocaliser, etc. ? Quelles sont les fonctionnalités prioritaires et optionnelles ?
  • Quel budget allouer au développement en incluant la maintenance ?
  • Quelles ressources (internes) sont à disposition ?

La réponse à ces questions pourra aider dans le choix des technologies. D’une année sur l’autre, les langages peuvent grandement évoluer. Le rôle des agences et des développeurs est d’accompagner les entreprises sur la définition de leurs projets et de les orienter sur les choix techniques. Voici un classement des langages les plus appréciés en 2022  juste ici.. Si vous souhaitez avoir une idée du coût d’une application mobile, Snapp’ vous propose cet article qui vous donnera quelques indications. 

 

Crédits image : Pixabay