Chapitre 2.2
Front-end
Le front-end, c'est tout le code qui est exécuté par l'appareil de l'utilisateur : navigateur web, application mobile, TV connectée, montre... C'est lui qui assure la navigation de l'utilisateur dans ton produit.
C'est la partie graphique quoi !
Pas seulement. D'ailleurs le monde du front est divisé en plusieurs métiers.
Les intégrateurs web
Ils traduisent en code les maquettes des équipes design / produit. Ils s'assurent que le rendu graphique est
cohérent sur tous les types d'appareils, toutes les résolutions d'écran et tous les navigateurs.
Crois-moi, c'est loin d'être une partie de plaisir !
Le W3C (World Wide Web Consortium) est un organisme qui met en place les standards du web. Tous les acteurs, dont
les navigateurs web, doivent les respecter... en théorie.
En pratique, Chrome, Firefox, Safari… ont tous des subtilités : règles d'affichage différentes, fonctionnalités pas
encore implémentées...
Les intégrateurs sont historiquement armés d'HTML pour structurer le contenu et de CSS pour le mettre en forme. HTML
et CSS ne sont pas des langages de programmation, ce sont des syntaxes statiques de description du contenu ne
permettant pas de logique complexe.
Ça ressemble à ça :
<h1>Un titre (header) de premier niveau</h1>
<p>
Un paragraphe.
</p>
h1 {
color: red; // Mets les titres de premier niveau en rouge.
}
Aujourd'hui, rares sont les intégrateurs qui produisent directement du CSS brut. Ils utilisent des surcouches, comme
SASS, introduisant des concepts de programmation : conditions, boucles, variables… Elles permettent une meilleure
organisation des composants graphiques, une meilleure maintenabilité et un gain de temps.
Mode sombre, affichage compatible avec toutes les langues, lecture de droite à gauche, accessibilité pour tous,
optimisation de contenu pour les moteurs de recherche… le monde de l'intégration est plein de défis. Les
intégrateurs sont en contact permanent avec les équipes produit et marketing.
L'intégration, bien qu'étant un domaine d'expertise en lui-même, est bien souvent sous-estimée et confiée à des
développeurs.
Les développeurs front-end
Dans le front-end, il faut distinguer les mondes du navigateur et du natif.
Le "natif" désigne les applications développées spécifiquement pour une plateforme : smartphone, TV, voiture...
Elles utilisent directement les fonctionnalités offertes par le constructeur de l'appareil et le
système d'exploitation. Apple, Google et tous les autres mettent à disposition des développeurs tous les outils
pour manipuler la caméra, le GPS, l'app store...
Chaque plateforme a son langage privilégié. Les projets web utilisent majoritairement le langage JavaScript, Windows le Java / C# / C++, iOS le
Swift, Android le Kotlin...
Quelle que soit la plateforme, les développeurs frontend ont globalement les mêmes
responsabilités. Les techniques et les contraintes sont par contre très différentes.
Par exemple, dans un navigateur, une simple mise en production suffit à mettre à jour le logiciel chez tout le monde.
Dans le monde du mobile, il faut passer par de longues étapes de validation par Apple / Google et gérer la
rétrocompatibilité pour les clients qui n'appliquent pas les mises à jour. Ça change complètement l'organisation du
déploiement en production d'une fonctionnalité.
Ces différences expliquent pourquoi on trouve des développeurs spécialisés pour iOS, pour Android et pour le navigateur.
Tous ces développeurs donnent vie au produit. Ils dynamisent l'expérience utilisateur : interprétation d'évènements
(clic, soumission de formulaire…), communication en temps réel avec le back-end, navigation sans recharger la page, tracking des utilisateurs…
Le front-end web est un domaine en perpétuel changement. Le temps de cligner des yeux et trois nouvelles technologies ont vu le jour. Ça fait partie
des domaines informatiques qui ont le plus évolué ces dernières années.
React, Vue, Angular, leurs composantes et leurs surcouches… il ne se passe pas un jour sans qu'on parle d'une
nouveauté dans l'écosystème JavaScript.
Toutes ces évolutions permettent aujourd'hui d'avoir des projets front-end solides, maintenables sur le long terme
et découplés du back-end.
