Bonjour à tous! Aujourd’hui nous allons voir quel est le meilleur langage pour créer une application mobile en 2020.
Bien sûr il existe des dizaines de langages, de plus en plus de framework différent et le choix dépendra aussi de votre situation.
Je m’adresse au particulier aux entrepreneurs et développeurs indépendants qui souhaitent développer des applications pour leur projet personnel ou professionnel.
Puisque dans le cas des salariés, le choix du langage et du framework ne leur revient pas forcément.
Dernier point avant de commencer, il n’y as pas de bon ou de mauvais choix, simplement des choix plus ou moins stratégique.
Chaque langage et framework que je vais vous proposer est aussi rapide et efficace que les autres à peu de choses près.
Si vous avez déjà fait votre choix, et que vous codez vos applications avec Ionic, je vous invite à consulter cet article qui parle des langages web: https://drissas.com/langages-creer-application-ionic-4/
Pourquoi y a-t-il plusieurs langages de développement ?
Commençons par la question que vous vous posez peut-être, mais pourquoi y a-t-il plusieurs langages au fait ?
Il paraît logique qu’il y ait un langage pour Android et un autre pour iOS, puisqu’il s’agit de deux systèmes d’exploitation mobiles différents.
Mais quand est-il des autres langages dont je vais vous parler aujourd’hui ?
En fait depuis le lancement d’iOS et d’Android il y a maintenant un peu plus de 10 ans, le monde informatique s’est organisé pour palier aux contraintes établies par Google et Apple.
Le monde informatique s’est organisé pour palier aux contraintes établies par Google et Apple
Par exemple, pour développer des applications sur iOS, il vous faut normalement les développer en Swift avec le logiciel Xcode.
Pour Android, il faut développer les application en Java avec le logiciel Android Studio.
Pourtant aujourd’hui, il existe aujourd’hui des frameworks et d’autres logiciels pour développer des applications pour iOS et Android sans connaître le Swift ou le Java.
Ces frameworks ont été mis en place pour éviter de devoir créer deux applications séparées, avec deux codes différents pour chaque plateforme.
À la base, ces outils ont été développés par des entreprises comme Facebook ou Alibaba, mais aujourd’hui elles servent encore plus les développeurs et entrepreneurs indépendants.
Car quel meilleur choix que de développer pour iOS et Android en une seule fois, plutôt que de passer deux fois plus de temps avec les deux langages et logiciels.
Dès maintenant, voyons les spécificités de chaque langage, ses forces et ses faiblesses, ainsi que le meilleur choix pour les développeurs indépendants.
Swift et Java: les langages natifs pour les applications iOS et Android
Lorsqu’on parle d’iOS et d’Android, nous parlons des systèmes d’exploitation mobile créés par Apple et Google il y a plus d’une dizaine d’années.
Chaque entreprise a choisi ou créé un langage pour permettre aux développeurs du monde entier de créer des applications pour leur plateforme.
Je veux également vous rappelez que dans le cadre du développement mobile, le langage seul ne compte pas, il faut toujours le remettre dans son contexte.
Dans le cadre du développement mobile, le langage seul ne compte pas
Par exemple Java est un langage développé par Oracle il y a des dizaines d’années, Google n’est donc pas l’auteur de ce langage.
En revanche pour créer des applications Android avec le Java il vous fait également maîtriser le logiciel Android Studio, le logiciel de développement de Google.
Idem pour iOS et le Swift, il vous faudra aussi maîtriser et comprendre le logiciel Xcode pour créer vos applications avec l’environnement Apple.
Tout ça pour vous dire que s’il paraît plus simple au premier abord de coder avec Swift ou Java, n’oubliez que cela demande également un travail de prise en main des logiciels respectifs.
Nous allons le voir par la suite avec les autres langages, mais la logique est la même car pour le JavaScript et le Dart, la maîtrise du framework en lui même est quasiment plus importante que celle du langage.
Je vous propose maintenant une petite démonstration du code Swift et du Java.
Le Swift pour commencer est très inspiré du langage Objective-C, qui est un langage à la base pour créer des logiciels de bureau.
Son objectif est d’être le plus simple possible, et on peut le remarquer à la syntaxe de quelques lignes de code:
{ print("Vous êtes un adulte") } else if age >= 11 { print("Vous êtes un adolescent") } else { print("Vous êtes un enfant") }
Pour plus d’information, je vous invite à consulter le site officiel de Swift: https://swift.org/
Passons maintenant au Java, un langage créé par Sun Microsystems mais géré aujourd’hui par l’entreprise Oracle.
C’est un langage très populaire car il fait tourner littéralement des milliards de machines (notamment via Android vous l’avez compris) mais qui est moins séduisant pour les développeurs débutants.
C’est un langage plus ancien que le Swift qui permet de faire énormément de chose, des logiciels, du web, des applications coté serveur, etc.
Si on regarde quelque lignes de code de Java, il paraît tout de suite moins simple à comprendre que le Swift:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } }
Mais c’est une comparaison très futile, car chaque langage a ces particularités, et tous demande un certain temps d’adaptation.
Enfin bref, je vous invite à en savoir plus sur le Java sur son site officiel: https://www.java.com/fr/about/
Le JavaScript (iOS & Android): le langage pour application le plus polyvalent
Parlons maintenant du langage qui nous concerne le plus, nous développeur indépendant et entrepreneur: le JavaScript.
Il y a quelques années je me suis lancé dans la création de ma première application mobile avec le framework Ionic: https://drissas.com/creer-des-applications-avec-ionic-4/
À ce moment là je ne savais pas que je développerez tous mes futurs projets avec Ionic et surtout le JavaScript.
Le JavaScript est à la base un langage dédié aux sites web, pour permettre de faire tourner des scripts justement le plus efficacement possible.
Depuis que le monde du web a explosé ces 20 dernières années, le JavaScript s’est démocratisé et il est devenu l’un des plus populaires.
Dans le développement web, il est même devenu incontournable pour créer des sites web modernes et dynamiques.
Je vous invite à en savoir plus sur le JavaScript sur Wikipedia: https://fr.wikipedia.org/wiki/JavaScript
C’est après la sortie de l’iPhone, que certains développeurs très expérimentés ont commencé à réfléchir à une manière de faire tourner le JavaScript sur mobile.
Il apparaît notamment un framework appelé aujourd’hui Cordova, qui va permettre pour la première fois de développer des applications mobiles en langages web.
Ce framework Cordova est le fondement des applications hybrides comme celle codés avec Angular et Ionic par exemple, c’est pour ça que nous retrouvons ce termes régulièrement.
Découvrez Cordova sur le site officiel d’Apache (fondation qui a créé Cordova): https://cordova.apache.org/
Plus tard de nouveaux acteurs sont apparut dans le développement d’application JavaScript, notamment Google avec Angular.
Angular est basé en partie sur Cordova et développe notamment la partie client, et il utilise le TypeScript qui est une variante du JavaScript développée par Microsoft.
Pour en savoir plus sur le framework Angular de Google, consultez son site officiel: https://angular.io/
Et puis quelques années après le lancement d’Angular est apparu un nouveau framework, basé en partie sur Angular et Cordava: Ionic.
La différence d’Ionic fut notamment de proposer une interface adaptative en fonction des plateformes iOS et Android.
Ionic ajoutait également de nombreuses fonctionnalités complémentaires d’Angular pour développer nos applications mobiles.
C’est donc avec ce framework et donc toujours le langage JavaScript que je développe mes applications. Pour en savoir plus consultez le site officiel d’Ionic: https://ionicframework.com/
Vous avez bien remarqué également qu’Ionic n’est pas indépendant, il est basé sur Angular la plupart du temps. Car vous pouvez choisir le framework JavaScript sur lequel vous voulez construire votre application.
Notamment le deuxième framework JavaScript très connu est React Native, développé par Facebook. Il permet comme Angular de d’utiliser des composants HTML pour construire une application mobile.
React Native est utilisé bien évidemment par Facebook pour développer ses applications les plus populaires, comme Facebook et Instagram. Mais d’autres grandes startups utilisent aussi de framework, pour en savoir plus: https://facebook.github.io/react-native/
N’oubliez pas que vous pouvez utiliser également Ionic et React Native, plutôt qu’Ionic et Angular. Personnellement je maintiens mon choix initiale sur Angular et Ionic, car je n’ai aucune réelle raison de changer.
À l’avenir, je développerais aussi mes applications avec React Native directement, le jour où j’aurais une équipe de développeur avec moi.
Dart (iOS & Android): le dernier-né de la bande
Il y quelques mois maintenant, Google a dévoilé son nouveau framework multi-plateforme: Flutter.
Ce lancement s’aligne avec la stratégie de tous les grands groupes numériques pour posséder chacun ses propres frameworks et plateforme de développement.
Facebook a créé React Native, Apple Swift, Microsoft le TypeScript, mais Google n’a pas créé et ne possède pas le Java qui a été créé par Oracle.
Google souhaite donc devenir 100% indépendant d’Oracle en termes de technologie et a investi massivement dans ce nouveau framework Flutter.
Google souhaite devenir 100% indépendant d’Oracle et investi massivement dans Flutter.
Pourtant, ce framework Flutter est codé avec un langage peu connu chez les développeur: le Dart.
À titre personnel je n’avais jamais entendu parler de ce langage avant ma découverte de Flutter.
Peu importe, le choix de Google est le meilleur indicateur de qualité et de performance, qui sont effectivement les promesses du framework.
Depuis son lancement, Google multiplie les éloges concernant son framework, et il paraît effectivement prometteur puisque très rapide à coder et à s’exécuter.
J’ai oublié de préciser que ce framework été multiplateforme, à destination d’iOS et d’Android donc.
On ne peut donc que se réjouir de l’entré de ce nouvel acteur dans la bataille des framework et langage pour créer des applications mobiles.
En revanche, et vous devez commencer à connaître mon opinion à ce sujet, je ne recommande pas ce langage ni ce framework au développeur indépendant.
Tout simplement parce qu’il ne présente pas d’intérêt majeur face au JavaScript et à Ionic par exemple, qui est plus connu et tout aussi simple à apprendre.
La communauté JavaScript est l’une des plus prolifique au monde, les plugins se comptent par milliers et font tout ce dont un développeur peut rêver.
Le Dart et Flutter pour une entreprise oui, pour un développeur indépendant je dirais non, mais cela aussi de votre degrés d’expérience en développement.
Renseignez-vous sur la langage Dart: https://dart.dev/
Et sur le framework Flutter de Google pour en découvrir plus: https://flutter.dev/
Le bilan: quel langage vous convient pour créer vos applications ?
Je vous ai listé et détaillé les principaux langage pour créer des applications mobiles, mais vous êtes toujours indécis, alors cette partie est faite pour vous.
Comme je vous l’ai dit au début de l’article, ce choix dépend énormément de votre situation, développeur salarié, étudiant, ou développeur indépendant.
Par exemple pour être employé chez Google, il peut être utile de se former au Dart et de commencer à créer des applications avec Flutter.
Pour travailler chez Snapchat, il peut être intéressant de se spécialiser dans Swift ou le Java pour devenir développeur mobile iOS ou Android.
Pour travailler chez Facebook, vous l’aurez compris, mieux être un bon développeur JavaScript pour prendre en main React Native et le développement d’application.
En revanche si vous êtes développeur indépendant ou un entrepreneur tout simplement; mon choix se porte évidemment sur le JavaScript.
Pourquoi ? Parce qu’il permet de tout développer avec un seul langage: les sites web, des apps iOS et Android et même des logiciels de bureaux.
Grâce à tous les frameworks JavaScript dont je vous ai parlé, en maîtrisant un seul langage vous pouvez créer tous les logiciels et site pour vos projets, entreprise et startup.
C’est personnellement le choix que j’ai fait pour ma propre entreprise
Applications Ionic: https://ionicframework.com/enterprise/customers
Applications React: https://facebook.github.io/react-native/showcase.html