2 - Nos métiers

Chapitre 2.2
Front-end

L'interface graphique, mais pas que.
Temps de lecture : 2 minutes


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 :

HTML
<h1>Un titre (header) de premier niveau</h1>
<p>
    Un paragraphe.
</p>
CSS
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.