Audit de performance React Native
Listes qui saccadent, onglet qui gèle, batterie qui fond : la performance React Native se mesure, se comprend et se corrige. Avant d'optimiser, je mesure. Chez Odisei Music, résultat : 120 fps constants, CPU en baisse de 40 %, mémoire de 20 %.
La méthode : mesurer d'abord
Un audit commence par des mesures sur vos écrans réels, appareils bas de gamme compris : profiling des re-renders, du thread JS et du natif, mémoire, temps de démarrage. Chaque problème identifié est chiffré et reproduit avant d'être corrigé. Pas d'optimisation au feeling, pas de refactor cosmétique.
Odisei Music : le cas de référence
Sur Android, certains écrans perdaient 40 à 50 % de leur frame rate, le passage entre deux onglets gelait l'interface et les listes ralentissaient l'ouverture des écrans. Après mesure et correction : 120 fps constants sans décrochage, freeze éliminé, listes refondues avec Legend List, consommation CPU en baisse de 40 % et mémoire de 20 %, par un redécoupage atomique des composants. Chaque chiffre vient d'une mesure avant/après sur appareil réel.
Les causes que je retrouve le plus souvent
Un thread JS bloqué par un calcul synchrone, des re-renders en cascade faute de découpage, une liste non virtualisée ou une ScrollView géante, une image de 4 000 px dans une vignette de 80, des requêtes en cascade qu'on pouvait lancer en parallèle, des animations qui tournent sur le thread JS. Le réseau est rarement coupable : le profiler tranche avant qu'on accuse la 4G.
Ce que vous recevez
Un rapport priorisé : les causes racines, leur coût mesuré, et le plan de correction dans l'ordre du meilleur rendement. Je peux ensuite appliquer les correctifs moi-même ou accompagner votre équipe pour le faire, mesures avant/après à l'appui.
Comment se déroule l'audit
Un premier échange pour cadrer les symptômes et les écrans qui comptent. Puis les mesures, sur vos builds et vos appareils, bas de gamme compris. Le rapport arrive avec les chiffres et l'ordre de correction. Ensuite, au choix : je corrige, ou votre équipe corrige avec mon appui, et on remesure pour vérifier que chaque gain est réel.
Ce que je fais
- Profiling complet : re-renders, thread JS, natif, mémoire, démarrage.
- Listes et scroll : virtualisation, Legend List, images.
- Animations : Reanimated, worklets, budget frame à 60 et 120 Hz.
- Bundle et démarrage : lazy loading, Hermes, taille du JS.
- Rapport priorisé et chiffré, puis correction, avant/après mesuré.
Missions qui le prouvent
Questions fréquentes
Quels outils utilisez-vous pour mesurer ?
Le profiler React pour les re-renders, le sampling profiler Hermes pour le thread JS, Xcode Instruments et le profiler Android Studio pour le natif et la mémoire, Perfetto pour les traces système. Le bon outil dépend du symptôme ; le principe ne change pas : reproduire, mesurer, corriger, remesurer.
Quels symptômes justifient un audit ?
Un scroll qui saccade, des écrans lents à ouvrir, une app qui chauffe ou vide la batterie, des crashs mémoire, un démarrage au-delà de deux secondes. Si vos utilisateurs le sentent, ça se mesure, et si ça se mesure, ça se corrige.
Combien de temps dure un audit ?
Le diagnostic initial tient en général dans une semaine. La correction dépend de ce qu'on trouve : parfois deux jours suffisent pour traiter l'essentiel du problème, parfois c'est un chantier qu'on planifie ensemble, par ordre de rendement.
Sur quelles apps intervenez-vous ?
Toute app React Native ou Expo en production ou en préproduction, y compris les codebases héritées ou générées par IA. Le point d'entrée est le même : reproduire, mesurer, corriger.
Un projet en tête ?
Réponse garantie en moins d'une heure, et trente minutes d'audit offertes en visio.