Développement Web et mobile : Technos et tendances phares
Que ce soit des méthodes ou des outils récents ou déjà bien connus et maîtrisés par la communauté Tech, nous vous présentons une liste non exhaustive des technologies et tendances phares du moment en développement Web et mobile.
Cette liste s’appuie sur l’observation de l’évolution de notre secteur d’activité ainsi que sur des échanges techniques internes (dont les souhaits de nos collaborateurs en termes de formation et de participation à des conférences et événements).
Il est important de souligner que le monde de l’IT évolue constamment et que de nombreuses nouveautés prometteuses sont régulièrement mises en avant.
Il est donc primordial à la fois :
- De réaliser une veille technologique régulière pour favoriser l’innovation à travers la détection de nouvelles opportunités et pour avoir une meilleure connaissance des solutions techniques existantes afin d’appliquer celle qui correspond le plus à mon besoin.
- De privilégier l’écoute et la compréhension du besoin métier et une vision à long terme, au simple attrait d’une technologie attirante. Il convient en effet de s’orienter vers la technologie la plus adaptée au besoin et au contexte, et pas nécessairement la plus utilisée ou la plus récente.
Afin de proposer les choix techniques les plus pertinents, il est effectivement nécessaire de placer au centre de sa stratégie les besoins métiers et utilisateurs. Puis il faut également prendre en compte les contraintes liées au projet : budget et délais alloués,(en prenant en compte un éventuel coût et temps de formation et de montée en compétences), compatibilité avec l’existant, ressources et facilité de maintenance, solution d’hébergement, stabilité et évolutivité à terme, sécurité, etc.
Ce sont l’ensemble de ces éléments qui doivent motiver vos décisions. Dans certains cas, vous aurez intérêt à vous tourner vers une nouvelle technologie, dans d’autres vers des solutions parfois moins couramment utilisées, ou encore sur des alternatives hybrides intermédiaires qui permettent d’adapter l’existant sans tout révolutionner.
Par exemple, plutôt que de choisir entre architecture en micro-services et architecture monolithique, il est aussi possible de faire le choix d’une architecture en monolithe modulaire.
Il faut d’ailleurs garder à l’esprit que pour optimiser l’apport en valeur ajoutée, le mieux reste toujours de faire au plus simple. Il vaut mieux éviter de se lancer directement dans un chantier complexe avec de nombreux remaniements et fonctionnalités, et commencer par produire un POC simple et fonctionnel, à partir duquel itérer pour une optimisation progressive.
En résumé, il ne s’agit pas de se faire plaisir, de rester uniquement dans ce qu’on maîtrise le plus ou de copier ce que font d’autres entreprises, mais de prendre en compte le contexte du projet et d’opter pour l’option la plus adaptée à celui-ci.
1. Tendances dans le développement Web
Bien que le développement Front-end et Back-end soient complémentaires et doivent être alignés entre eux et en cohérence avec la globalité du projet, ils interviennent à différentes étapes du développement et s’appuient sur des ressources différentes.
Développement Front
Sur les recommandations d’un UX/UI designer, un développeur Front end est chargé du développement de l’interface utilisateur (interactions, animations, responsive, …).
Pour cela il pourra s’appuyer sur différents langages (HTML, CSS, JavaScript, …) et différents frameworks et librairies.
Parmi les tendances d’utilisation actuelles, se démarquent :
JavaScript (JS)
Créé en 1995, ce langage informatique n’a rien de nouveau, mais est utilisé dans la majorité des développements web.
Il s’agit d’un langage dynamique et permissif qui permet de sortir des sentiers battus et offre un large panel de fonctionnalités grâce aux combinaisons possibles avec de multiples APIs
> ReactJS
Idéale pour les projets de grandes envergures, cette librairie JavaScript propose la structuration d’interface à travers des composants autonomes et réutilisables, compatible avec le principe de l’atomic design.
Aisé à lire et à écrire, basé sur des composants faciles à manipuler et très performant en termes de vitesse, React a déjà été adopté dans de nombreux projets et par de nombreuses entreprises. Développé par Facebook à partir de 2013, React est aujourd’hui utilisé par des acteurs internationaux tels que Airbnb, Twitter, Paypal et de nombreux autres.
- Redux
En complément de React, la librairie Redux permet une gestion de store et une mise à disposition de l’information optimisée grâce à la gestion d’un état global de l’application (‘Global State’).
Les hooks sont une fonctionnalité de React qui permet la liaison entre React et Redux et rend l’intégration des deux plus simple. - Next.js
Next.js est un framework React qui facilite l’écriture d’applications React universelles, en favorisant une prise en compte du SEO et la vitesse de chargement pour de meilleures performances globales.
Il se base sur un fonctionnement de rendu côté serveur plutôt que côté client. C’est-à-dire que le contenu de l’interface est généré par le serveur et non par le navigateur, ce qui permet un affichage immédiat du contenu statique de la page.
Cette technique de développement server side rendering est également possible avec d’autres frameworks et librairies. Elle est de plus en plus adoptée de manière hybride afin de faciliter le référencement et d’optimiser les temps de chargement et donc l’expérience utilisateur.
> VueJS
Tout comme React JS, VueJS est un framework open source populaire de JavaScript qui intègre une structuration par composants. Il est facilement accessible aux développeurs back-end qui s’intéressent aux problématiques Front, grâce à sa syntaxe basée sur du HTML.
De plus, il permet une migration progressive en s’intégrant facilement avec du HTML et du JS natif.
- VueX
Tout comme Redux pour React, VueJs a son pendant pour la gestion d’état de l’application.
VueX, installé sous forme de plug-in, est une librairie qui permet de centraliser le stockage et le paramétrage de données applicatives. - Nuxt.js
Tout comme Next.js, il s’agit d’un framework permettant la création d’applications universelles côté serveur. Reprenant les meilleures pratiques de Vue.js et Node.js, il repose sur une architecture modulaire afin de proposer simplicité et rapidité.
Au même titre que les autres solutions reposant sur du développement server side rendering, l’utilisation de Nuxt.js favorise le référencement et offre des temps de chargement intéressants pour l’utilisateur.
> Svelte
Svelte est également un framework JavaScript, mais pour lequel l’intérêt semble plus récent. Il a l’avantage de comporter un compilateur JavaScript optimisé, qui permet de réduire considérablement le poids du code des applications et donc de réduire le temps de chargement de celles-ci.
> Librairies CSS in JS
Ces librairies permettent une intégration CSS directement dans React ou Vue pour définir le style des composants avec des valeurs dynamiques. On peut ainsi utiliser du JS pour modifier directement du CSS.
- Styled component
La librairie a été créée pour fonctionner avec React uniquement et permet de faire des composants stylisés et réutilisables dans l’ensemble de l’application. - Emotion
La librairie peut être utilisée dans toute application Javascript.
TypeScript
Il s’agit d’un langage de programmation open source développé par Microsoft, qui fonctionne comme une surcouche et génère du langage JavaScript afin d’être plus facilement interprété par les navigateurs web.
Apprécié par les développeurs Java ou C++ et fortement typé, TypeScript a vocation à être utilisé pour des applications complexes. Il permet de limiter fortement les erreurs et de développer plus rapidement grâce aux intégrations dans les IDE.
ReasonML
Également développé par Facebook, ReasonML est un langage de programmation fonctionnelle mêlant les écosystèmes Javascript et OCaml.
Il s’agit d’un langage fortement typé qui apporte une grande stabilité, et dont la syntaxe simple permet de faciliter son appropriation par de nouveaux adeptes.
Il s’agit d’un langage multi-plateforme et interopérable avec JavaScript.
Tailwind CSS
Apparu en 2017, Tailwind CSS est un framework CSS prometteur. Son principal avantage réside dans ses grandes capacités de personnalisation, grâce à une configuration très flexible. Par ailleurs, il se base sur des classes utilitaires plutôt que des classes sémantiques, qui intègrent directement des variantes responsive.
Développement Back
Un développeur back quant à lui est chargé du développement des éléments non visibles à l’écran. Ce qui inclut notamment l’applicatif et la gestion métier, la configuration de serveur et la gestion de bases de données.
Il lie alors les pages web avec les services associés permettant de gérer les données : API, back-office, liaison mails, hébergement, etc.
Pour cela, il peut s’appuyer sur différents langages (PHP, Python, SQL, …) et différents frameworks et librairies.
Parmi les tendances d’utilisation actuelles, se démarquent :
PHP
PHP est un langage de programmation open source conçu pour le développement d’applications web et dont l’exécution du code se fait côté serveur. Il a vu le jour en 1994 et atteint aujourd’hui la version 8.0.0.
Proche de la syntaxe du langage C à l’origine, il permet une prise en main plus simple, bien que proposant un haut niveau de fonctionnalités. À noter que le langage PHP tend à devenir plus strict sur l’aspect qualité, bien qu’il reste encore permissif et accessible aux débutants.
PHP est un langage utilisé depuis de nombreuses années et qui reste très utilisé actuellement. Il a fait ses preuves dans de petites comme de grandes structures. La communauté a donc développé au fur et à mesure plusieurs librairies permettant de s’interfacer avec de nombreuses bases de données.
> Symfony
Symfony est un framework PHP mis au point par l’agence web SensioLabs. Il regroupe un ensemble de composants permettant de faciliter leur développement.
Flexible grâce à des fonctionnalités modulables et adaptables, il est utilisé dans de nombreux scripts et projets de développement, tels que Drupal, Blablacar ou encore Spotify.
> Laravel
Laravel est un autre framework PHP créé en 2011. Afin de proposer le meilleur de chaque élément, il reprend certains composants du framework Symfony et d’autres bibliothèques, couplés à des composants originaux. Complet et simple d’utilisation, il permet rapidement de produire des applications structurées et sécurisées.
Bien que moins utilisé que Symfony en France, il reste le framework PHP le plus utilisé à l’international.
Node.js
Node.js est un environnement d’exécution JavaScript côté serveur, basé sur une syntaxe Javascript. Asynchrone et orienté événement, il prend en compte les problématiques de temps réel et est souvent utilisé dans la mise en place de serveurs web, mais également d’applications telles que Amazon ou Paypal.
Basé sur Javascript, qui est un langage incontournable, il permet donc de lier front-end et back-end via un langage commun.
GraphQL
Créé par Facebook en 2012, GraphQL se définit comme un langage et un environnement d’exécution de requêtes pour API côté serveur. Il permet de limiter le nombre d’appels au serveur et de créer ainsi des API rapides et flexibles. Il autorise également la création des requêtes puisant parmi plusieurs sources de données à travers une seule API.
Scala
Scala est un langage de programmation qui a émergé depuis l’École polytechnique fédérale de Lausanne (EPFL). Il s’agit d’un langage multi-paradigme, qui prend en compte les paradigmes de programmation orientée objet et de programmation fonctionnelle. Proche du langage Java, il apporte des simplifications qui permettent de produire un code concis et simple.
Il facilite aussi l’évolution progressive des programmes grâce à son concept de programmation par paliers.
Java
Aujourd’hui détenu par Oracle, Java est un langage de programmation orientée objet créé en 1995. Avec une syntaxe proche de C et C++, il reste plus simple et plus lisible, et permet de limiter les erreurs de par son fort typage.
Il a également l’avantage de pouvoir s’exécuter sur différentes plateformes.
> Spring
Spring est un framework Java modulaire qui facilite le développement et les tests d’applications en Java. Il permet notamment de gérer la création et la relation d’objets via un fichier de configuration unique.
Python
Python est un langage de programmation interprété, multi-paradigmes et multiplateformes. Utilisé pour le développement d’applications web, on le retrouve également couramment dans les domaines de la robotique et de la data, notamment sur la partie machine learning et analyse de données.
Ruby on Rails (RoR)
Ruby on Rails est un framework Ruby basé sur un langage de script et sur les principes Don’t repeat yourself et Convention over configuration.
Simple d’utilisation, il apporte une lisibilité appréciable sur les projets complexes et met à disposition des générateurs de code qui automatise les lignes de codes qui peuvent être réutilisées.
Go (aussi appelé Golang)
Go est un langage de programmation multi-fonctionnel mis au point par Google en 2009. Également proche de la syntaxe du langage C, il a pour objectif d’en faciliter la prise en main et l’écriture. Il combine en effet une utilisation facile, à rapidité de compilation et d’exécution.
Langage attrayant et aussi apprécié par les Ops, il reste néanmoins encore peu utilisé sur le marché des entreprises.
Rustlang
Rust est un langage de programmation multi-paradigme open source créé par Mozilla. Il permet de créer des systèmes d’exploitations, mais également des applications Web.
À la recherche de toujours plus de simplicité, de rapidité et de sécurité, il est effectivement réputé pour ces qualités, notamment en gestion des erreurs et de mémoire.
Il reste pourtant encore peu utilisé, bien qu’il soit très apprécié et gagne en popularité.
Web Assembly (Wasm)
WebAssembly est un type de code récent qui, comme JavaScript, s’exécute côté navigateur. Il a été développé grâce au travail commun de Mozilla, Google, Microsoft et Apple et permet alors d’avoir un rendu front tout en utilisant un langage back. De plus, il cumule rapidité, lisibilité et portabilité.
Promue par le World Wide Web Consortium (W3C), son utilisation n’est pas encore exponentielle, mais reste sans aucun doute prometteuse.
2. Tendances dans le développement mobile
Le développement mobile comprend le développement d’applications et de programmes à destination des smartphones et tablettes, que ce soit en iOS, Android ou les deux.
Il comporte de nombreuses spécificités telles que les tailles d’écrans, les interactivités, la vitesse de chargement, la portabilité, la présence erratique de connectivité (qualité du réseau), etc.
Les développeurs mobiles peuvent s’appuyer sur différents langages (Objective-C, Swift, Java, Kotlin, Dart, JS / TypeScript, …) et différentes API.
Parmi les tendances d’utilisation actuelles, se démarquent :
React Native
Proposé depuis 2015, React Native est la déclinaison mobile du framework React. Modulable et évolutif, il permet l’exploitation d’un même code pour compiler à la fois sur IOS et sur Android et ainsi développer des applications natives. Ce qui permet de gagner un temps considérable, d’autant plus qu’il n’est pas nécessaire de recompiler systématiquement lors de nouvelles modifications.
De plus, en se basant sur les possibilités d’UX et d’UI de React, il est possible de développer des applications comprenant une interface utilisateur de qualité.
Outre Facebook, de nombreuses entreprises mondialement connues l’ont déjà adopté, telles que Skype ou Discord.
Flutter
Développé par Google, tout comme React Native, Flutter est un framework qui aide à concevoir des applications à la fois pour Android et iOS, évitant ainsi le développement de deux applications distinctes. Il propose également un grand nombre de widgets facilitant ainsi la conception d’UI des applications.
Malgré leurs nombreux avantages, il est important de souligner que ces deux outils en permettant un déploiement à la fois sur iOS et Android, prennent pour le moment moins en compte les spécificités de chacun. Ce qui peut mener à des applications au développement moins précis et moins rapide d’usage qu’un développement en natif. Mais elles restent une excellente alternative au coût et au temps nécessités par le développement d’applications natives sur chaque plateforme.
Android
ViewModel
Il est intéressant de noter la présence de plus en plus systématique du ViewModel dans les projets développés sur Android. Il s’agit d’un outil d’architecture (MVVM), qui permet d’extraire la logique ‘métier’ de la View et de la mettre dans le ViewModel, afin de faciliter les tests unitaires. Il donne aussi l’avantage de mieux séparer les responsabilités entre les différentes parties du programme et pallie l’obligation de refaire des requêtes serveur / calculs lors de la rotation de l’écran.
Coroutines
Introduites depuis la version 1.1 de Kotlin, les coroutines correspondent à une fonction qui permet d’exécuter du code de manière non bloquante et asynchrone. Cela facilite la gestion d’actions complexes grâce à la possibilité de réaliser plusieurs longs traitements de façon séquentielle. Elles sont donc une bonne alternative pour les traitements d’arrière-plan.
De plus, depuis la version 1.3, les Flow permettent d’associer des flux complexes de coroutines grâce à des opérateurs, comme en Rx.
Jetpack Compose
Tout juste sorti par Google en version alpha en août 2020, Jetpack Compose correspond à une boîte à outils pour la conception d’interfaces sur Android.
Elle offre un ensemble de composants qui permettent de développer l’UI d’applications mobiles en langage Kotlin et de façon déclarative.
Cette nouvelle façon de construire les interfaces utilisateurs change radicalement de ce qui était appliqué jusqu’à présent.
Bien que bien plus simple, il faudra encore patienter pour que l’ensemble des outils soient complets et fonctionnels et donc pour l’utiliser en production.
iOS
Cette année a été marquée par la sortie de la version iOS 14, qui a apporté son lot de nouvelles fonctionnalités, dont les widgets et les app clips.
L’expérience utilisateur a ainsi été revisitée, et il est par exemple possible d’intégrer et de personnaliser différents widgets issus de différentes applications sur son écran d’accueil.
Concernant la fonction App Clip, elle rend possible le lancement d’une application en version réduite à la volée, sans avoir besoin d’installer l’application complète. Il est possible de déclencher l’apparition via le scan d’un QR Code conçu par Apple, qui peut se retrouver en magasins ou sur divers produits par exemple.
SwiftUI
Il s’agit d’un framework Swift lancé par Apple en 2019 afin de créer des interfaces des applications iOS, et d’opérer une transition avec l’utilisation d’UIKit. Compatible avec les différentes plateformes de l’environnement Apple (iOS, iPadOS, tvOS et macOS) et basé sur une syntaxe déclarative, SwiftUI propose des composants adaptables et réutilisables selon les besoins des développeurs et aussi selon les plateformes de navigation.
Combine
Lancé en même temps que SwiftUI, ce nouveau framework d’Apple permet de faire de la programmation réactive, de manière native en Swift.
Il a vocation à remplacer RxSwift qui a l’inconvénient d’être un framework tiers et donc moins performant.
Combine et SwiftUI sont tous deux compatibles avec l’existant, mais à partir d’iOS 13 uniquement. Cela peut donc être un frein pour les développeurs qui souhaitent conserver des applications compatibles avec les versions antérieures.
Cependant il ne fait aucun doute que ces technologies vont se populariser de plus en plus au fil des prochaines années !
Pour aller plus loin
Encore une fois, il ne s’agit pas d’une liste exhaustive, d’autant plus que nous abordons quasiment exclusivement les tendances d’un point de vue des technologies. Mais il y a par ailleurs certains mouvements et concepts qui prennent une ampleur grandissante sur la scène de la Tech, dont par exemple :
- le GreenIT et la réduction des impacts environnementaux du numérique,
- le low code et no code.
Vous pouvez également poursuivre avec la lecture de notre article sur les technologies et tendances phares en architecture de projet, Ops et Data.
Et vous pouvez aussi retrouver les différentes conférences organisées par les communautés de ces différents langages et frameworks dans notre article : Les conférences professionnelles phares de la tech et du monde du travail en 2021 en France et en Europe.
Enfin, il est important de préciser que dans cet article, le terme de ‘développeur’ est employé dans un souci de lisibilité. Mais bien entendu cet article s’adresse à toutes et tous et par développeur vous pourrez comprendre développeur.se.
Bien que les femmes soient aujourd’hui encore sous-représentées dans ce secteur, ce métier est accessible à tous. Les associations Girlz in Web et Duchess France s’attellent d’ailleurs à le rappeler, en mettant en avant les femmes de ce milieu.
Nous publions régulièrement des articles sur des sujets de développement produit web et mobile, data et analytics, sécurité, cloud, hyperautomatisation et digital workplace.
Suivez-nous pour être notifié des prochains articles et réaliser votre veille professionnelle.
Retrouvez aussi nos publications et notre actualité via notre newsletter, ainsi que nos différents réseaux sociaux : LinkedIn, Twitter, Youtube, Twitch et Instagram
Vous souhaitez en savoir plus ? Consultez notre site web et nos offres d’emploi.
L’auteur
Content Producer @Linkvalue
Learning addict with strong curiosity
#Protectourplanet 🌱🌍
Je remercie vivement pour leur temps et pour leur implication Belinda, Talent Manager @Linkvalue, ainsi que l’ensemble des Partners qui ont participé à la relecture, la complétion et la validation de cet article.