Créer une app mobile : quelle techno choisir ?

-

Vous êtes freelance ?

Comme plus de 25 000 freelances, rejoignez FreelanceRepublik, et recevez des offres de missions tech à la mesure de votre talent. +50 nouvelles missions par semaine !

Le smartphone fait aujourd’hui partie intégrante de notre quotidien. Via des apps mobile, on l’utilise pour tellement de choses qu’on n’en s’en rend parfois même plus compte. Lire et répondre aux mails, accéder aux messageries pro, faire des virements bancaires, réserver un billet de train, un hôtel, et évidemment traîner sur les réseaux sociaux. Bref, le téléphone intelligent est aujourd’hui indispensable à notre vie moderne.

Et toutes ces utilisations attirent forcément les opportunités, pour les entreprises comme pour les développeurs indépendants. On voit régulièrement de nouvelles applications apparaître, répondant à des besoins, conscients ou non, et rencontrant parfois un succès inattendu.

En tant que développeur, vous êtes vous aussi intéressé par développer une application mobile, mais ne savez pas quelle techno choisir ? Suivez le guide !

Développer une app

Pourquoi développer une app mobile ?

En tant que développeur, il y a plusieurs raisons qui peuvent nous pousser à développer une application, par exemple pour :

  • Un side-project ;
  • Son entreprise, ou un client ;
  • S’auto-former ;
  • Répondre à ses propres besoins.

Le side-project est le parfait exemple. Bien que cela soit quand même rare, les success stories de développeurs indépendants ayant trouvé la bonne idée, l’ayant développée, commercialisée et ayant gagné de l’argent avec, existent. Flappy Bird en est l’exemple ; bien qu’extrême.

Être développeur simplifie le processus de création d’une app mobile ! Encore faut-il savoir choisir les bonnes technos.

Les deux plateformes : iOS et Android

app mobile développement

Je ne vais rien vous apprendre en vous disant qu’il y a deux principaux systèmes d’exploitation au niveau mobile : iOS et Android.

Le choix de la plateforme sur laquelle on veut créer une app a une influence sur les choix technologiques à faire ; car certaines technos ne permettent de développer que sur un système d’exploitation, quand d’autres n’utilisent qu’un seul code – ou presque – pour les deux : on parle alors d’apps cross-platform.

Pour information, au niveau des statistiques, en 2020 en France on comptait 75,4% de parts de marché pour Android, et 24,5% pour iOS.

Une grande diversité dans les technos

Comme on va le voir par la suite, il y a une diversité de choix technologique assez importante lorsqu’on veut créer une app mobile. Le développement prévu par les deux géants, dit natif, étant assez spécifique, divers frameworks et outils sont apparus pour simplifier la création d’applis.

Ces nouveaux frameworks sont venus simplifier le développement, mais peuvent rendre le choix de la technologie plus compliqué ; d’où l’intérêt de cet article.

Parmi les grandes familles de technos de développement mobile, on peut citer le développement natif, le développement cross-platform, et les PWA.

Le natif

Développement app native

Comme son nom l’indique, le développement d’app natif se base sur les technologies natives des différents systèmes d’exploitation. En clair, ce sont les technologies prévues normalement par Apple et Google. Ce type de développement ne permet donc de développer que sur une seule plateforme.

Pour le développement d’app sur iOS, on retrouve les langages Objective-C, et plus récemment Swift.

Pour Android, c’est historiquement Java qu’on utilise. Mais on peut aujourd’hui également coder des applis avec Kotlin, d’ailleurs officiellement recommandé par Google.

Avantages :

  • Les apps développées nativement sont plus rapides, performantes ;
  • Les apps sont plus faciles à maintenir, car les API sont fournies et maintenues par Apple et Google.

Inconvénients :

  • Elles demandent plus de compétences spécifiques, et coûtent donc plus cher ;
  • Le développement ne se fait que sur un système d’exploitation.

Le cross-platform

Les technos cross-platform permettent de développer des apps mobile pour les deux plateformes en même temps. Même s’il y a dans de rares cas besoin d’un peu de code spécifique à un OS, on peut résumer le développement cross-platform à un code unique pour les deux systèmes d’exploitation.

Le cross-platform, apparu aux débuts des années 2010, a aujourd’hui un succès qu’on ne peut pas nier. Non seulement car, comme on l’a dit, il permet un développement plus rapide, mais les frameworks de développement « hybride » sont parfois très proches d’autres qu’on retrouve dans le développement web. Ainsi, beaucoup de développeurs ont déjà les compétences pour passer à la création d’app mobile, sans devoir passer par la case nouveau langage.

Parmi ces frameworks, ou technologies, qui utilisent ces compétences transverses, on peut notamment citer React Native. React Native en est le parfait exemple car, comme son nom l’indique, cette librairie est basée sur React, le très populaire framework de développement front pour le web.

React native mobile app

Si vous êtes déjà développeur JavaScript, et notamment React, il est donc recommandé de s’essayer à React Native. React Native est également intéressant si vous avez déjà ou prévoyez une version web de votre application mobile. Ainsi, la transposition des composants sera plus facile pour passer d’un format à l’autre.

Il y a également d’autres frameworks de développement qui se basent sur JavaScript. On peut citer notamment Ionic, basé sur Cordova, et pouvant utilisant React, Angular et Vue ; ou NativeScript, là aussi permettant un développement hybride, avec l’utilisation d’Angular et de Vue, cette fois.

Parmi les autres technos de développement cross-platform mais hors JavaScript, il y a Xamarin, permettant de créer des apps en utilisant .NET et C#, très utile si vous venez du monde Microsoft. Il y a aussi Flutter, SDK créé par Google, apparu en 2017 et permettant la création d’apps cross-platform. Cette dernière techno prend de plus en plus d’importance, notamment pour ses très bonnes performances ; il est cependant nécessaire de maîtriser le langage Dart, utilisé pour le développement Flutter.

Avantages

  • Permet de développer sur les deux plateformes avec un seul code ;
  • Moins besoin de montée en compétences, notamment pour les frameworks utilisant JavaScript.

Désavantages

  • Les plugins de développement ne sont pas forcément tous bien maintenus, car open-source et parfois développés par la communauté ;
  • Suivant l’utilisation, les performances peuvent être diminuées.

PWA

progressive web app

La dernière techno que je vais citer ici, ce sont les PWA (progressive web apps). En vérité, elles pourraient être considérées comme des apps cross-platform, car accessibles sur tous les OS. Mais je préfère ici séparer ces deux technos, car les PWA ne sont pas compilées, contrairement aux autres technos.

Elles ne représentent pour le moment qu’une infime partie des apps utilisées sur un smartphone, car, comme on le verra, elles présentent des désavantages qui peuvent se révéler bloquants. Néanmoins, elles sont intéressantes à connaître, et peuvent éventuellement répondre à vos besoins.

Alors qu’est ce qu’une PWA ? Une applications web progressive est littéralement un site web (et donc basé sur du HTML, CSS et JavaScript – avec ou sans framework), auquel on donne des capacités supplémentaires via notamment ce qu’on appelle des services workers, comme accéder à l’appareil photo du mobile, etc.

Le principal inconvénient de ces apps est qu’Apple leur impose beaucoup de limitations. Le géant aime en effet contrôler ce qu’il y a sur ses appareils, et les PWA sont compliquées à surveiller. Typiquement, aucune PWA ne sera acceptée sur l’App Store, même wrappée dans un framework de type Cordova, alors que c’est autorisé sur le Play Store. La solution à cette problématique est d’ouvrir le site PWA avec Safari et l’enregistrer en raccourci sur l’écran d’accueil. Pas très pratique !

Avantages

  • Simples à développer : il s’agit d’un simple site ;
  • Possède un mode hors-ligne ; l’appareil peut donc accéder au site web bien qu’il soit hors ligne, via un téléchargement en local des pages et données ;
  • Pas besoin de mises à jour : le code source est simplement localement mis à jour à chaque ouverture de l’app lorsqu’on a une connexion.

Inconvénients

  • Apple impose trop de limitations aux PWA : pas d’accès au Store pour commencer, mais la firme empêche aussi l’accès aux PWA au bluetooth des appareils, par exemple ;
  • La PWA reste un site web augmenté, il ne s’agit pas d’une vraie app, les features et performances s’en trouvent donc forcément limitées.

Conclusion

Comme on l’a vu dans cet article, les technos permettant de développer des apps mobile sont nombreuses. Chacune de ces technos a ses propres avantages et inconvénients, ce qui rend la comparaison difficile.

En fait, le choix d’une techno pour développer une application est plus subjectif qu’autre chose ; cela dépend de vos capacités et besoins.

Un développeur front-end React se dirigera plus naturellement vers React Native, alors qu’un développeur qui veut se spécialiser uniquement dans la création d’app iOS se dirigera vers Swift.

De même, si le besoin en performance est gros (jeux 3D, beaucoup de flux à gérer, etc.), on se dirigera plutôt vers un développement natif. Pour une app plus classique, on se dirigera vers Flutter ou un des frameworks utilisant JavaScript, voire même vers une Progressive Web App.

Il n’y a donc pas qu’une seule réponse à cette question ! Et vous, quelle est votre techno de développement mobile préférée ? Dites-le en commentaire !

Alexandre Grisey
Alexandre Griseyhttps://nomadlife.fr/
Content Writer et Digital Nomad, j'écris des articles et du contenu autour des thématiques de la tech, du voyage et du monde du freelance.

Partager cet article

Newsletter

Missions FreelanceRepublik

Les derniers articles

Le podcast

Le podcast la voix du freelance donne la parole aux freelances.

Missions Freelance !

Comme plus de 25 000 freelances, recevez des offres de mission tech à la mesure de votre talent sur FreelanceRepublik.

Freelances, gagnez du temps !

Ne perdez plus de temps à prospecter en vain. Inscrivez-vous gratuitement sur FreelanceRepublik, et recevez de belles offres de missions tech. FreelanceRepublik est gratuit pour les freelances.

Vous devriez lire également ces articles

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici