Revenir aux actualités des développeurs

Rencontre avec des développeur·ses – React @ Meta Edition (Andrea Ferrando)

Cet article a été rédigé en collaboration avec Andrea Ferrando, ingénieur logiciel chez Meta, et Sean Keegan, représentant des équipes de développement chez Meta également.

Pour notre interview du jour, nous recevons Andrea Ferrando, ingénieur front end chez Meta. Son équipe travaille sur l’application Gestionnaire de publicités, qui permet de créer, de modifier et de contrôler des campagnes publicitaires.

Parlez-nous un peu de vous.

Je m’appelle Andrea Ferrando, ingénieur logiciel. Je suis passionné par la création de produits numériques et d’expériences d’utilisation exceptionnels. Je travaille actuellement sur l’application Gestionnaire de publicités (AMA), qui permet aux annonceurs de créer, de suivre et de gérer leurs campagnes sur toutes les plateformes Meta. Cette application offre aux annonceurs une solution complète pour toucher leur public cible. Elle est donc un outil essentiel pour tous ceux qui souhaitent faire de la publicité de manière efficace. Je travaille sur l’AMA depuis un peu plus d’un an, avec des avancées majeures en termes de développement.

Ce qui m’a incité à m’impliquer dans React Native, c’est la possibilité d’offrir une expérience d’utilisation transparente et efficace aux utilisateurs et utilisatrices de systèmes iOS et Android. Grâce à ses composants réutilisables et à sa capacité à gérer facilement l’état, React Native permet de créer rapidement et efficacement des applications de grande qualité. Le fait de pouvoir écrire un code une seule fois et de l’exécuter sur plusieurs plateformes est également un avantage considérable : cela nous permet en effet d’atteindre une base d’utilisateur·ices plus large et d’offrir une expérience cohérente sur tous les appareils.

Dans quelle mesure utilisez-vous React ?

J’utilise React au quotidien. C’est devenu une partie intégrante de mon travail. En tant que responsable technique d’un produit orienté clientèle chez Meta, j’ai des responsabilité importantes puisque je gère le développement du produit de bout en bout, je définis les orientations et que je travaille avec des équipes transversales. Dans le même temps, j’ai aussi la possibilité de contribuer activement à AMA en travaillant sur des fonctionnalités critiques et en apportant des contributions pratiques.

Parmi les projets sur lesquels vous avez travaillé chez Meta, lesquels font appel à React ?

Depuis que j’ai rejoint Meta, mon travail s’est concentré uniquement sur l’application Gestionnaire de publicités. Notre équipe est propriétaire du produit de bout en bout, ce qui implique également de contribuer au développement de la fonctionnalité backend. AMA est cependant la seule application React sur laquelle je travaille.

Pourquoi votre équipe a-t-elle choisi d’utiliser React et comment son utilisation vous aide-t-elle, vous et votre équipe, à atteindre vos objectifs de développement ?

C’est une fierté pour nous de savoir que l’application Gestionnaire de publicités a été l’une des premières applications React Native au monde. Chacun sait que React Native a vu le jour pendant un hackathon Facebook en 2013. Notre application a été l’une des premières à utiliser cette technologie. L’application fournit aux annonceurs des informations et des recommandations pour les aider à réussir leurs campagnes publicitaires. React Native est parfaitement adaptée à cet objectif. Grâce à ses capacités de développement rapide pour les plateformes iOS et Android et à sa capacité à offrir de grandes performances, React Native a joué un rôle déterminant dans le succès d’AMA.

Qu’est-ce qui vous a enthousiasmé ou dont vous êtes incroyablement fier ces derniers temps ?

Récemment, je me suis plus particulièrement consacré à notre infrastructure de notifications push, et plus précisément, à sa fiabilité.

Les notifications jouent un rôle crucial dans les applications mobiles. Dans le cas d’AMA, elles sont particulièrement importantes, car elles permettent aux utilisateur·ices d’obtenir des informations en temps voulu, ce qui peut faire toute la différence dans une campagne publicitaire réussie.

Il est toutefois essentiel de trouver le juste équilibre pour ne pas surcharger les utilisateur·ices avec un trop grand nombre de notifications. La manière dont les notifications sont traitées et gérées diffère également entre iOS et Android. Les règles de confidentialité de ces deux systèmes d’exploitation mobiles doivent donc être prises en compte. Malgré toutes ces difficultés, ce projet est passionnant : il nécessite des compétences techniques et de produit pour garantir la meilleure expérience d’utilisation et développer des flux différents pour iOS et Android, tout en gérant les notifications de manière appropriée pour chaque plateforme.

React Native nous permet de simplifier le processus de développement en faisant abstraction de la majeure partie de la logique qui diffère entre les délégués de notification iOS et Android. Cela nous permet ainsi de nous concentrer sur le processus de développement.

Quel aspect de votre travail est le plus excitant dans le fait d’être développeur React dans une entreprise comme Meta ?

Travailler en tant que développeur sur une application React Native chez Meta est une expérience tout à fait exceptionnelle. Je trouve très valorisant le fait de pouvoir toucher une base massive d’utilisateur·ices par le biais de son travail et de transformer à ce point l’expérience d’utilisation de tant de personnes. Le fait de travailler à une telle échelle s’accompagne aussi de défis uniques qui rendent le travail passionnant et en constante évolution.

L’un des principaux aspects du travail consiste à préserver la confidentialité et l’intégrité des données des utilisateur·ices. En tant que développeur·ses, nous devons savoir quelles données nous pouvons stocker et ne pas stocker. Nous travaillons en étroite collaboration avec les équipes confidentialité pour protéger la vie privée des utilisateur·ices. Cet aspect essentiel de notre travail peut être négligé dans des projets de moins grande envergure ou les start-ups. Chez Meta, en revanche, c’est une priorité majeure qui nous oblige à faire preuve de souplesse et d’adaptabilité dans notre approche.

La localisation constitue une autre complexité du travail, notamment dans le cas d’une application front end qui est utilisée dans le monde entier. S’il est relativement simple de concevoir et de développer une application en anglais, le fait de tout traduire dans plus de 20 langues peut mettre en évidence des défauts et des bugs qui n’étaient pas apparus auparavant. Le même mot peut être trois à quatre fois plus long dans une autre langue, ce qui nécessite une conception minutieuse et un développement précis pour s’assurer que toutes les contraintes sont gérées correctement. L’expérience que j’ai acquise en travaillant pour des banques et des compagnies aériennes m’a bien préparé à cet aspect du travail et j’apporte beaucoup de cette expérience dans mon rôle actuel chez Meta.

Qu’est-ce qui vous stimule dans le fait de travailler dans l’espace React aujourd’hui ?

Travailler en tant que développeur React chez Meta est une opportunité vraiment unique, car cela vous permet d’être proche de l’équipe React, et de pouvoir ainsi collaborer et communiquer directement avec elle. Cela vous place dans une position unique au sein de l’entreprise.

Pour réussir en tant qu’ingénieur·e sur un produit axé sur les consommateur·ices, il faut disposer d’un ensemble de compétences variées. Il est essentiel d’écrire un code propre et fiable qui donne la priorité aux performances, et de se concentrer sur des aspects tels que l’expérience d’utilisation et l’accessibilité. Sur ce point, le fait de travailler avec un langage dynamique comme React s’avère bénéfique, car il permet aux équipes de se concentrer sur le processus de développement sans surcharge excessive. Grâce à mon expérience dans le développement mobile natif, en particulier sur des applications à grande échelle, j’ai pu constater directement à quel point le temps lié au développement peut avoir un impact sur le travail quotidien et faire perdre un temps précieux. J’apprécie donc tout particulièrement l’utilisation d’un DOM virtuel dans React, qui permet des mises à jour efficaces et un rendu en temps réel des composants de l’UI. Malgré son adoption massive par les équipes de développement et les entreprises sur le web, React reste conviviale et accessible, en partie grâce aux langages JavaScript/TypeScript (JS/TS) qui sont largement utilisés par les développeur·ses. J’adore utiliser TypeScript avec React. TypeScript offre un typage statique, ce qui facilite la détection des bugs dès le début du processus de développement.

Personnellement, j’aime aussi beaucoup les composants fonctionnels de React, car ils sont très utiles. Ils peuvent être optimisés pour la performance avec la fonction de mémoïsation. Ils peuvent aussi améliorer de manière significative les performances d’une application en évitant les mises à jour de rendu inutiles. La simplicité de réutilisation des composants est particulièrement importante pour les applications à grande échelle, car elle facilite la maintenance, les tests et la gestion du code source.

Quelles idées fausses sur React ou sur le développement de logiciels open source avez-vous rencontrées au cours de votre carrière ?

En fait, je n’ai pas entendu beaucoup d’idées fausses au cours de ma carrière sur React ou sur les logiciels open source. La plupart des plus grandes entreprises au monde exploitent et développent ce type de logiciels au quotidien et une grande communauté de développeur·ses travaille sur des projets open source.

J’ai entendu certaines critiques concernant React Native, notamment sa lenteur et le fait qu’elle ne soit adaptée qu’à de petits projets, avec des capacités limitées. Certaines personnes pensent que l’utilisation de JavaScript par React Native pour interagir avec les composants natifs se traduit par une plus grande lenteur par rapport aux applications écrites nativement. Dans certains cas, comme le streaming, les applications natives peuvent être plus performantes, mais pour la plupart des applications quotidiennes, qui affichent principalement des images et du texte, et qui favorisent l’interaction avec l’utilisateur·ice, React Native est tout aussi performante.

Qu’attendez-vous avec impatience dans le développement à venir de React ?

React Native possède une architecture robuste et est équipée pour gérer des applications à grande échelle grâce à ses mises à jour efficaces et au rendu en temps réel de l’UI. Elle facilite également la gestion du code, ce qui la rend idéale pour les grands projets. En outre, React Native donne aux équipes de développement la possibilité d’accéder à des modules natifs, donnant accès à des fonctionnalités natives, et permettant ainsi le développement d’applications complètes.

Quelles ressources sont utiles pour commencer à utiliser React ? Comment apporter sa contribution ?

Lorsque j’ai démarré avec React au début de ma carrière, j’ai eu la chance de travailler pour une entreprise qui offrait un accès gratuit à un grand portail d’apprentissage en ligne avec des leçons vidéo dispensées par des spécialistes. Pour moi, la meilleure façon d’apprendre a été de regarder ces tutoriels vidéo : ils m’ont en effet permis de découvrir étape par étape tout ce que j’avais besoin de savoir. Après avoir compris les bases, j’ai découvert que la pratique, avec projets réels, était inestimable pour approfondir ma compréhension de React. Si vous n’avez pas la possibilité de le faire au travail, je vous suggère de trouver un sujet qui vous passionne et de développer une application dans ce sens. J’ai commencé à créer mon site web personnel avec mon portfolio. J’ai également trouvé que la documentation officielle de React Native était bien écrite et très utile lorsque j’avais besoin de rechercher des informations spécifiques.

Où peut-on vous retrouver et suivre votre travail ?

J’ai un compte Github, mais la plupart de mes expériences professionnelles sont soit propriétaires en raison de la confidentialité liée au travail, soit des projets personnels qui ne sont pas en open source. J’aime être sur les réseaux sociaux et je suis très présent sur Instagram, mais je ne l’utilise pas comme une plateforme sur laquelle je discute de développement. Il me sert plutôt à m’évader du travail.


Nous tenons à remercier Andrea d’avoir pris le temps de nous accorder cette interview. Il a été très intéressant de découvrir comment React permet d’améliorer des applications majeures, à quel point il est possible d’apprendre de tout ce que nous développons ici et la manière dont nous contribuons en retour à la communauté React. Nous espérons que cette interview vous a été utile et qu’elle vous a donné un aperçu de la manière dont React est utilisée chez Meta.

À propos de notre série Rencontre avec des développeur·ses – React @ Meta Edition (Andrea Ferrando)

React est l’un des projets open source les plus populaires et a toujours été classé parmi les cadres web les plus appréciés au cours des dernières années. Chez Meta, nous pensons que React est une bibliothèque exceptionnelle qui aide les équipes à développer facilement et à grande échelle des interfaces d’utilisation. Utilisée par des millions de développeur·ses dans le monde entier, dans tous les domaines, des simples sites web aux applications d’entreprise, React est une bibliothèque open source qui a sa place auprès de chacun.

Ce blog fait partie de notre série Rencontre avec des développeur·ses, au cours de laquelle nous invitons régulièrement les ingénieur·es et les développeur·ses qui utilisent React à partager leurs expériences et à nous parler des produits étonnants qu’ils développent ici, chez Meta, grâce à React. Lisez les prochaines interviews de notre blog, dans lesquels nous rencontrerons d’autres ingénieur·es et écouterons leurs réflexions sur le sujet.

Pour en savoir plus sur Meta Open Source, consultez notre site open source, abonnez-vous à notre chaîne YouTube ou suivez-nous sur Twitter, Facebook et LinkedIn.