Quels sont les frameworks indispensables pour développer une app mobile ?
Pour développer des applications mobiles, il est nécessaire de passer par un framework. Mais dans le monde du développement mobile, il y a une myriade de frameworks. ✨
Cela y va des affinités de chacun, des besoins du projet, des connaissances de l'équipe en charge du développement, des performances recherchées, etc. En général, lorsqu'un développeur adopte un framework, il se spécialise dans celui-ci, devenant au fil du temps un expert. Et ces experts sont très recherchés sur le marché.
Du web au mobile, la démocratisation du développement mobile
Avec l'avènement des langages de programmation comme le Javascript en développement mobile, l'on peut dire d'une certaine manière que le développement d'applications mobiles s'est démocratisé ces 10 dernières années. Il s'est ouvert à l'une des plus grandes communautés de développeurs dans le monde, celle des développeurs web !
Alors oui, il y a des particularités propres au développement mobile, of course. Mais ces particularités sont, pour certaines, une vraie force et apportent une valeur ajoutée pour votre business.
L'accès aux fonctionnalités natives d'un smartphone ouvre le champs des possibles et permet dans certains cas d'impacter davantage et durablement une certaine clientèle, la vôtre. Nous parlerons dans un autre article de ces fonctionnalités à ne pas manquer lorsqu'on développe une app mobile.
Le développement natif VS le développement cross-platform
Dans le développement mobile, il y a 2 écoles. La première, ce sont les développeurs mobiles natifs. La seconde, ce sont les développeurs cross-platform, la nouvelle école peut-on dire. 👨💻
La première se focalise uniquement sur le développement d'applications mobiles. La seconde permet à un projet de cibler plusieurs supports : web, tablette, mobile (Android et IOS), TV, montre connectée, etc.
La grande différence entre ces deux écoles, c'est que les développeurs natifs ne font pour ainsi dire jamais de web, ils se cantonnent à un seul langage à l'inverse des développeurs cross-platform qui font généralement du web en plus du développement mobile Android et IOS.
Les développeurs cross-platform vont pouvoir se concentrer sur un projet d'une plus grande ampleur, l'adapter à des supports différents et donc cibler plusieurs types d'utilisateurs, voir fidéliser davantage les mêmes utilisateurs à travers une utilisation élargie à plusieurs supports.
Mais sachez que l'un n'est pas forcément en concurrence avec l'autre. À vrai dire, chaque projet est différent. Et certains projets ne requièrent que d'être développés sur mobile et de façon native pour des raisons qui leurs sont propres.
Chez Bedev, nous sommes de la deuxième école. Nous développons des applications mobiles dites cross-platform avec le langage Javascript grâce au framework React Native. Ça c'est vraiment notre dada. 🐎
Les applications mobiles que nous avons développées ces dernières années ont ainsi été réalisées avec React Native et boostée avec Expo.
Les grands classiques indétrônables du développement natif
Du côté du développement mobile natif, on retrouve quelques frameworks qui ont fait leur preuve et qui sont largement employés au sein de la communauté de développeurs mobiles.
Swift et Objective-C pour IOS
Ces langages sont utilisés pour réaliser des applications mobiles IOS natives. Bien que Objective-C soit le langage traditionnel d'Apple pour OS X et IOS, Swift s'est imposé comme étant une solide option dans le développement mobile depuis son premier déploiement en 2014. C'est d'autant plus vrai que ce langage a été spécifiquement créé pour développer des applications Apple.
Kotlin et Java pour Android
On ne présente plus Java dans le monde du développement. Ce langage POO (programmation orienté objet) créé par James Gosling dans les années 90 s'est largement imposé au fil des années. Grâce à l'écosystème de Java, il a été rapidement possible de développer énormément d'applications cross-platform. Oui, Java tourne sur toutes les machines. Il est donc possible de créer une application bureau pour Windows, Mac et Linux avec Java.
Vous connaissez sûrement le célèbre jeu Minecraft ? Ce jeu, comme nombreux d'autres, a été développé en Java.
Et Kotlin ? Ce langage est né grâce à Jetbrains. Cette société développe des outils de développement (IDE) très professionels, peut-être même les plus professionnels du marché. Initialement, les outils de Jetbrains étaient développés en Java et Jetbrains a voulu développer un langage plus concis en y ajoutant de nouvelles fonctionnalités de langage. Kotlin a très vite été adopté par la communauté de développeurs d'applications mobiles Android et en 2019, Google annonçait que Kotlin était le langage préféré des développeurs Android. Si Google le dit ?!
L'émergence du développement cross-platform
Mais voilà, dans notre histoire, un autre monde vient à la rencontre du développement mobile. C'est celui du développement cross-platform.
Les entreprises rêvent de toucher toutes les audiences possibles et imaginables pour se développer. Si mon application peut à la fois fonctionner sur un smartphone, sur une tablette et dans un navigateur web, c'est mon activité qui est la première à en bénéficier.
D'autant que via certaines technologies, l'on peut étendre cela à des applications de type bureau (application windows par exemple), ou encore disponibles sur nos téléviseurs, dans nos voitures, etc. On peut clairement envahir tous les supports.
Si je suis partout, mes utilisateurs n'ont pas besoin d'aller voir ailleurs.
Je prends pour exemple Spotify. Cette application suédoise est partout, où que vous soyez, peu importe le support que vous utilisez. C'est ça la magie du cross-platform. C'est une manière de capturer les audiences. Une façon de fidéliser les utilisateurs, vos clients.
Personnellement, j'utilise Spotify (et promis, je ne possède aucune action chez eux). Je l'utilise à la maison, à la télé, au bureau, dans la voiture, partout où je peux. Elle est omniprésente. Et je vais vous dire, tant mieux !
Cela m'embêterait plus qu'autre chose de devoir prendre un abonnement à un autre service (comme Deezer pour ne citer que lui) juste parce que Spotify n'est pas accessible sur tel ou tel support. Et voilà comment on fidélise un client, cela fait 10 ans que je paye un abonnement chaque mois. 💰
Je suis sûr que vous connaissez plein d'autres exemples de ce genre. Je ne vais pas vous parler d'un célèbre fournisseur de films et séries que j'utilise à la fois dans mon salon et parfois sur le tapis roulant de ma salle de sport.
Quels sont les frameworks cross-platform ?
On y est ! Il est temps de vous présenter les frameworks tant appréciés par la communauté des développeurs web. 👇
React Native et son petit frère, Expo
C'est notre chouchoux. On ne jure que par React Native chez Bedev.
Ce framework a été développé par Facebook, peu de temps après avoir développé Sa Sainteté ReactJS. Chacun sa religion!
Rapidement beaucoup d'entreprises s'y sont intéressées, on pense à Airbnb, UberEats, Instagram et j'en passe.
Beaucoup se sont essayés à React Native. C'est facile à prendre en main pour n'importe quel développeur ayant déjà fait du React. C'est un framework qui permet de développer très rapidement des applications mobiles modernes et de grande qualité.
Quant à Expo, c'est une surcouche à React Native. C'est le must-have. Je crois que chez Bedev, il ne sera plus jamais possible de revenir à React Native sans Expo. On l'abordera plus largement dans un autre article, une raison supplémentaire de nous suivre !
Flutter
C'est la bécane de Google, ce framework est développé en Dart. Dart est syntaxiquement plus proche de langages comme Kotlin mais avec Flutter, conceptuellement, on ne s'éloigne pas trop de React Native sur le paradigme des composants (appelés Widgets pour Flutter). Flutter est encore assez récent puisqu'il a été déployé pour la première fois en Mai 2017.
Cependant pas mal de projets commencent à être développés en Flutter, ils grattent ainsi de plus en plus quelques parts de marché à React Native & cie. Il est dit que les performances fournies par Flutter sont similaires aux langages natifs comme Kotflin ou Swift. Ça se tente, non ?
Xamarin
La solution de Microsoft. Oui, vous commencez à vous rendre compte que tous les grands de la tech s'acharnent à développer leur propre framework, voire même leur propre langage. Celui-ci est encore plus récent puisqu'il a été déployé en 2020 (première release). Par contre, vous devrez coder en C# si vous optez pour cette solution. On aime ou on aime pas !
Ionic
Si vous êtes développeur web et que vous souhaitez rester dans votre zone de confort, ce framework est fait pour vous. À vrai dire, Ionic était initialement conçu pour le framework web Angular mais depuis quelques années il est désormais "framework-agnostic", cela veut dire qu'il n'est plus dépendant d'un framework en particulier. Vous pouvez très bien faire de l'Ionic en VueJS, en React ou quoi que ce soit d'autre, il n'y qu'à choisir !
Et bien d'autres...
Apache Cordova, Capacitor, NativeScripts et j'en passe. Vous l'aurez remarqué, lorsqu'il s'agit de framework, tous les goûts sont dans la nature.
Ils ont tous leurs avantages et inconvénients, soyez-en certain. Ce qui nous motive d'utiliser React Native, c'est à la fois son lien fraternel avec ReactJS, et en même temps sa capacité à être plus proche du natif que d'autres frameworks Javascript comme Ionic.
En effet, certains frameworks comme Ionic tournent dans une Webview. C'est comme si votre application mobile était un simple navigateur web dans lequel on ne pouvait visiter qu'un seul site web, celui de votre application. Et c'est au niveau des performances que cela peut se jouer.
Ce qui est important c'est de joindre les caractéristiques d'un framework aux pré-requis du projet à réaliser. Et pour toutes les applications mobiles que nous avons développées au sein de notre agence, React Native cochait toutes les cases.
Je veux développer une app mobile