React Native en production, ce que le développeur doit savoir montrer

Un développeur React Native écrit en TypeScript une application qui tourne sur iOS et Android, et descend dans le code natif quand une fonction du téléphone l'exige. Depuis la version 0.82, le framework ne fonctionne plus qu'avec sa nouvelle architecture, ce qui change une partie des questions à poser.

Recevoir la fiche complète

Mis à jour le Par l'équipe Delectus5 min de lecture

La fiche Développeur React Native : technologies, chaîne du poste, une question et la grille d'évaluation

React et TypeScript, Expo et ses services EAS pour construire et publier, React Navigation ou Expo Router, une bibliothèque de données serveur et des tests avec Jest reviennent dans les offres de développeur React Native. Beaucoup ajoutent des notions de Swift et de Kotlin, parce qu'il faut tôt ou tard écrire ou corriger un module natif : paiement, Bluetooth, SDK d'un partenaire. Le développeur publie aussi sur l'App Store et sur Google Play, qui ont chacun leurs règles.

Le profil le plus courant vient du web React. Il maîtrise les hooks et l'état, puis découvre en production ce que le web ne lui a pas appris : une liste qui saccade sur un Android d'entrée de gamme, une permission refusée, une application tuée en arrière-plan, une version bloquée par la revue d'Apple. Des CV citent encore le bridge ou CodePush. Le premier a laissé la place à la nouvelle architecture, le service CodePush hébergé a fermé avec App Center en mars 2025. Ces mots datent l'expérience sans l'invalider.

Faites décrire une application publiée : son nombre d'utilisateurs, son taux de crash, la dernière montée de version de React Native, le module natif le plus pénible. Le PDF contient 30 questions sur six axes, un cas de 20 minutes et une grille de 1 à 4.

Ce qu'il y a sous une application React Native

React Native et la nouvelle architecture

Le framework de Meta affiche de vrais composants natifs à partir de code React. La nouvelle architecture (JSI, Fabric pour le rendu, Turbo Modules pour les modules natifs, Codegen pour les interfaces typées) a remplacé l'ancien bridge asynchrone, et c'est la seule possible depuis la version 0.82. Demandez quelle version la personne a fait tourner en production et comment s'est passée la migration.

Hermes

Le moteur JavaScript conçu pour React Native. Il compile le code en bytecode pendant le build, ce qui accélère le démarrage et réduit la mémoire consommée. Hermes V1 est le moteur par défaut depuis la version 0.84. Les bonnes questions portent sur le démarrage à froid et la lecture d'un profil de performance.

Expo et EAS

Expo fournit des modules prêts à l'emploi (caméra, notifications, fichiers) et un outillage complet. EAS Build construit les binaires iOS et Android dans le cloud, EAS Submit les envoie aux stores, EAS Update pousse des mises à jour JavaScript sans nouvelle revue. Depuis le SDK 55, Expo n'accepte plus que la nouvelle architecture. Les development builds et les config plugins permettent d'ajouter du code natif à un projet Expo.

React Navigation et Expo Router

La navigation entre écrans : piles, onglets, modales. Expo Router organise les écrans par fichiers, comme les frameworks web, et gère les liens profonds. Vérifiez que la personne sait ouvrir un écran précis depuis une notification ou un lien universel.

Modules natifs en Swift et Kotlin

Quand aucune bibliothèque ne couvre le besoin, le développeur écrit un module natif : Turbo Module avec le Codegen, ou module Expo avec l'Expo Modules API. Il n'a pas besoin d'être développeur iOS ou Android, mais il doit savoir ouvrir Xcode et Android Studio, lire une erreur de compilation native et la pile d'un crash natif.

Listes, animations et gestes

FlatList et FlashList pour les longues listes, Reanimated et Gesture Handler pour des animations qui tournent sur le thread de l'interface sans attendre le JavaScript. La fluidité d'une liste sur un téléphone Android modeste reste un bon indicateur du niveau.

Stockage local et hors ligne

AsyncStorage pour de petites valeurs, MMKV pour un stockage rapide, SQLite (expo-sqlite, op-sqlite) ou WatermelonDB pour des données structurées, le trousseau iOS et le Keystore Android (expo-secure-store) pour les jetons. Une application qui doit marcher sans réseau demande une stratégie de synchronisation, à faire expliquer en entretien.

Tests, CI et suivi des crashs

Jest et React Native Testing Library pour les composants, Maestro ou Detox pour les parcours sur simulateur, Fastlane ou EAS pour automatiser la signature et la publication. En production, Sentry ou Firebase Crashlytics remontent les crashs JavaScript et natifs, à condition de leur envoyer les source maps et les symboles.

Le développeur React Native travaille avec le design, qui dessine pour iOS et Android à la fois, avec l'équipe back qui fournit l'API, et parfois avec des développeurs iOS et Android qui tiennent une partie de l'application. Sur une application créée avec Expo, le gros du travail se fait en TypeScript. Sur une application plus ancienne lancée sans Expo, les montées de version, les fichiers Gradle et le Podfile prennent beaucoup de place. Certaines offres décrivent en fait une application native où React Native n'occupe que quelques écrans (brownfield). Précisez laquelle de ces situations correspond au poste avant de choisir les axes de l'entretien.

Ce qu'un développeur React Native doit maîtriser au-delà de React

  • Nouvelle architecture et modules natifs
  • Performance des listes et du démarrage
  • Navigation et liens profonds
  • Données, cache et mode hors ligne
  • Build, signature et publication sur les stores
  • Tests et suivi des crashs

Cinq questions React Native sur le natif, les listes et la publication

Chaque question vient avec ce qu'une bonne réponse contient et le signal qui doit vous alerter. Pas besoin d'être technique pour les poser : écoutez si le candidat raconte du vécu.

  1. Question 1 · confirmé

    Une liste de 2 000 produits avec images saccade au défilement sur un Android d'entrée de gamme. Que faites-vous ?

    Une bonne réponseIl mesure d'abord, en build de production, car le mode développement est bien plus lent, avec le profileur de React Native DevTools ou le moniteur de performance. Pistes : FlashList, ou une FlatList réglée (keyExtractor stable, getItemLayout si la hauteur des lignes est fixe, windowSize), des lignes mémorisées avec React.memo et des props stables, des images redimensionnées côté serveur et mises en cache (expo-image), aucun calcul lourd dans le rendu d'une ligne.

    Signal d'alerteUne ScrollView qui rend les 2 000 éléments, ou des conclusions tirées d'un essai en mode développement sur un iPhone récent.

  2. Question 2 · senior

    Le produit veut lire un badge NFC avec le SDK d'un fournisseur, livré seulement en Swift et en Kotlin. Comment l'intégrez-vous ?

    Une bonne réponseIl cherche d'abord une bibliothèque maintenue et compatible avec la nouvelle architecture. Sinon, un module natif : un module Expo écrit avec l'Expo Modules API si le projet utilise Expo, ou un Turbo Module décrit par une spécification TypeScript que le Codegen transforme en interfaces natives. Il expose une API JavaScript courte et asynchrone (promesses, événements), gère les permissions et le cycle de vie de chaque plateforme, et ajoute un config plugin pour que le build EAS configure les fichiers natifs.

    Signal d'alerte« On trouvera un package npm », sans plan s'il n'en existe pas, ou des modifications à la main dans les dossiers ios et android d'un projet Expo, perdues au prochain prebuild.

  3. Question 3 · confirmé

    Une correction urgente doit arriver chez les utilisateurs aujourd'hui. Pouvez-vous éviter la revue des stores ?

    Une bonne réponseOui si la correction ne touche que le JavaScript et les assets : une mise à jour over-the-air avec EAS Update, publiée sur un canal et liée à la version native compatible (runtime version). Non si elle modifie du code natif, une permission ou une dépendance native : il faut un nouveau binaire et une nouvelle revue. Il connaît les règles d'Apple, qui tolèrent ces mises à jour tant qu'elles ne changent pas l'objet de l'application, et prévoit un retour à la mise à jour précédente.

    Signal d'alerteProposer le CodePush d'App Center, service fermé en mars 2025, ou pousser un JavaScript qui appelle un module natif absent de la version installée.

  4. Question 4 · confirmé

    Un utilisateur touche la notification « Votre commande est expédiée » alors que l'application est fermée. Comment l'amenez-vous sur le bon écran ?

    Une bonne réponseLa notification porte un lien profond ou des données (l'identifiant de commande). Au démarrage, l'application lit la notification qui l'a ouverte (getLastNotificationResponseAsync avec expo-notifications, ou l'équivalent de la bibliothèque utilisée) et la navigation résout le lien vers l'écran, avec la configuration linking de React Navigation ou les routes d'Expo Router. Il traite le cas de l'utilisateur déconnecté (connexion, puis retour vers l'écran demandé) et celui de l'application déjà ouverte en arrière-plan.

    Signal d'alerteOuvrir l'accueil et laisser l'utilisateur chercher, ou un code qui ne fonctionne que si l'application tourne déjà.

  5. Question 5 · junior à confirmé

    Où stockez-vous le jeton d'authentification de l'utilisateur dans l'application ?

    Une bonne réponseDans le stockage sécurisé du système, le trousseau iOS et le Keystore Android, avec expo-secure-store ou react-native-keychain. AsyncStorage et MMKV sans chiffrement ne conviennent pas : leurs données se lisent sur un appareil compromis ou dans certaines sauvegardes. Il parle du jeton de rafraîchissement, d'une déconnexion qui efface le stockage, et refuse de placer un secret d'API dans le bundle JavaScript, qui se décompile.

    Signal d'alerteLe jeton dans AsyncStorage, ou une clé d'API privée dans une variable d'environnement embarquée dans l'application.

Recevez la fiche d'entretien complète en PDF

La fiche pour mener l'entretien de bout en bout, prête à imprimer ou à partager avec le manager.

  • 30 questions sur 6 axes, avec la bonne réponse, le signal d'alerte et la relance
  • Le niveau visé pour chaque question
  • Une mise en situation de 20 minutes et ce qu'on attend du candidat
  • La grille d'évaluation de 1 à 4, axe par axe

Avant d'ouvrir un poste React Native

Faut-il exiger Expo pour un poste React Native ?

Non, mais vérifiez que la personne connaît l'Expo actuel. Expo n'est plus réservé aux prototypes : la documentation de React Native le recommande pour démarrer un projet, et ses development builds acceptent du code natif. Un profil qui n'a connu que des projets sans Expo s'y adapte vite. L'inverse demande plus d'efforts : un développeur qui n'a jamais ouvert Xcode ni un fichier Gradle aura du mal sur une application ancienne chargée en natif.

Un développeur React web peut-il passer sur React Native ?

Oui pour le code des écrans, qui reste du React et du TypeScript. L'écart se trouve ailleurs : ni DOM ni CSS complet, des listes à soigner, des permissions, le cycle de vie d'une application mobile, la signature des binaires et la revue des stores. Comptez quelques mois avant qu'il publie seul une version sans surprise. Si la personne sera le seul développeur mobile de l'équipe, cherchez quelqu'un qui a déjà publié une application.

Quel test technique pour un développeur React Native ?

Une petite application à compléter en direct ou en une heure : une liste paginée depuis une API, un écran de détail ouvert par lien profond, des états de chargement et d'erreur. Faites-la tourner sur un vrai téléphone Android si possible. Le débrief compte plus que le code : demandez ce qui changerait avec 10 000 éléments, sans réseau, ou avec une API qui répond en cinq secondes.

React Native ou Flutter, est-ce le même recrutement ?

Pas tout à fait. Les deux visent iOS et Android avec un seul code, mais React Native s'écrit en TypeScript et affiche des composants natifs, alors que Flutter s'écrit en Dart et dessine lui-même son interface. Les profils React Native viennent souvent du web, les profils Flutter plus souvent du mobile ou de Java. Un développeur confirmé passe de l'un à l'autre, avec un temps d'adaptation sur le langage et l'outillage.

Pour structurer vos autres entretiens, consultez aussi nos pages sur les questions d'entretien de recrutement, la méthode de l'entretien structuré et la grille d'évaluation d'entretien.

Les fiches voisines

Toutes les fiches →

Voyez Delectus sur vos propres offres.

Commencez gratuitement. Passez à l'échelle quand vous êtes prêt.

Demander une démo

Votre ATS, connecté à Delectus

  • Workable
  • Teamtailor
  • iCIMS
  • Lever
  • SmartRecruiters
  • Jobvite
  • Greenhouse
  • Pinpoint