Développement React Native : deux applications, une seule base de code
Gjethe développe des applications iOS et Android avec React Native et TypeScript, en utilisant Expo pour la rapidité et des modules natifs Swift ou Kotlin lorsqu'une application a besoin d'un accès plus poussé à l'appareil. Nous reprenons aussi des applications React Native existantes : mise à niveau des versions, correction de plantages et de problèmes de performances, et poursuite du développement.
- Première consultation gratuite
- Devis écrit pour votre projet
- Paiements échelonnés par étapes, avec souplesse
En un coup d'œil
- Language
- TypeScript
- Workflow
- Expo ou React Native bare
- Code natif
- Modules Swift et Kotlin si nécessaire
- Aussi
- Mises à niveau et sauvetage d'applications
Definition
Qu'est-ce que le développement React Native?
React Native est un framework open source de Meta pour créer des applications iOS et Android avec JavaScript ou TypeScript et React. Il affiche de véritables composants d'interface natifs, si bien qu'une seule base de code produit deux applications réellement natives.
React Native permet à une seule équipe de développer les deux applications, de livrer des fonctionnalités aux deux plateformes en même temps et de partager de la logique avec une application web React. Il est utilisé en production par des entreprises comme Meta, Microsoft, Shopify et Discord. Cette page s'adresse aux équipes qui savent déjà qu'elles veulent React Native, ou qui ont une application React Native existante à entretenir. Si vous hésitez encore sur l'approche, commencez par le développement d'applications mobiles.
À qui s'adresse-t-elle ?
Équipes qui lancent sur les deux plateformes
Vous avez besoin d'iOS et d'Android en même temps sans financer deux équipes distinctes.
Entreprises avec des équipes web React
Vos développeurs web connaissent React ; React Native leur permet de partager connaissances, outils et une partie de la logique avec l'application mobile.
Propriétaires d'une application React Native vieillissante
L'application a plusieurs versions de retard, plante sur les nouveaux appareils ou ne peut plus être compilée. Nous la remettons en bonne santé.
Startups ayant besoin d'une équipe mobile dédiée
Une équipe ciblée pour prendre en charge l'application mobile pendant que vos ingénieurs gèrent le back end.
Ce qui est inclus, et ce que vous conservez
Ce qui est inclus
- Architecture et mise en place du projet avec TypeScript
- Workflow Expo ou bare, choisi selon le projet
- Navigation, gestion d'état et récupération de données
- Modules natifs en Swift et Kotlin si nécessaire
- Notifications push et liens profonds
- Achats intégrés avec RevenueCat
- Stockage et synchronisation en priorité hors ligne
- Cartes, appareil photo, biométrie et capteurs de l'appareil
- Mises à jour à distance pour les changements JavaScript
- Builds automatisés et soumissions aux boutiques avec EAS
- Rapport de plantages et suivi des performances
- Mises à niveau d'applications existantes vers les versions actuelles
Ce que vous recevez
Remis en fin de mission. À vous pour toujours.
- Applications iOS et Android sur les boutiques
- Code source dans votre dépôt
- Pipeline de build et de publication
- Canal de mises à jour à distance
- Documentation technique
Expo ou React Native bare ?
| Expo (avec prebuild) | React Native bare | |
|---|---|---|
| Mise en place et builds | Outils gérés et builds dans le cloud | Configuration manuelle du projet natif |
| Code natif | Pris en charge via des plugins de configuration et des modules sur mesure | Contrôle direct complet |
| Updates | Expo Updates intégré | Mis en place séparément |
| Notre choix par défaut | Oui, pour la plupart des nouvelles applications | Pour les applications ayant des exigences inhabituelles en SDK natifs |
Comment sauvons-nous une application React Native existante ?
Les applications qui n'ont pas été mises à jour depuis un moment échouent de manière prévisible : les builds cassent parce que les outils ont évolué, des bibliothèques sont abandonnées, de nouvelles versions du système font planter l'ancien code et les boutiques exigent des versions cibles plus récentes.
Nous commençons par faire de nouveau compiler l'application et par auditer les dépendances. Puis nous mettons à niveau React Native étape par étape plutôt qu'en un seul bond, remplaçons les bibliothèques abandonnées, corrigeons les plantages signalés par le suivi et passons aux outils Expo lorsque cela simplifie les builds.
Une fois l'application stable et à jour, le développement continue sur des bases saines, avec des builds automatisés pour qu'elle ne prenne plus de retard.
Où React Native performe bien, et où nous ajoutons du code natif
Applications métier et grand public
Formulaires, listes, fils d'actualité, parcours de réservation et tableaux de bord fonctionnent excellemment avec des composants natifs.
Animation
Reanimated exécute les animations sur le thread natif pour des gestes et transitions fluides.
Appareil photo et médias
Bien pris en charge via des bibliothèques matures, avec des modules natifs pour les traitements spécialisés.
Graphismes lourds
Les applications très 3D ou proches du jeu relèvent généralement du code natif ou d'un moteur de jeu.
Comment fonctionne le développement React Native, étape par étape
Chaque étape produit un résultat clair que vous pouvez relire. Le calendrier est convenu dans votre devis.
- 1
Évaluation
Pour les nouvelles applications, périmètre et architecture ; pour les applications existantes, un audit du code, des dépendances et des plantages.
- 2
Fondation
Structure du projet, navigation, couche de données, environnements et builds automatisés.
- 3
Développement des fonctionnalités
Fonctionnalités construites et livrées aux testeurs sur les deux plateformes via TestFlight et les pistes de test de Play.
- 4
Intégration native
Modules Swift et Kotlin pour tout ce que la couche JavaScript ne peut pas atteindre.
- 5
Qualité
Tests sur appareils, mesure des performances et suivi des plantages.
- 6
Release
Soumission aux boutiques, puis mises à jour à distance pour de petites corrections entre les versions.
Les outils, et ce qui détermine votre devis
Le prix dépend de votre projet et est convenu dans votre devis. Voici ce qui le fait varier.
| Facteur | Pourquoi c'est important |
|---|---|
| Périmètre des fonctionnalités | Les écrans, les parcours et le travail sur le back end déterminent l'essentiel du coût, comme pour toute application. |
| Modules natifs | Du code Swift ou Kotlin sur mesure pour des SDK spécialisés ajoute du travail sur les deux plateformes. |
| Hors ligne et synchronisation | Des données en priorité locales avec gestion des conflits demandent plus de conception et de tests. |
| État d'une application existante | D'anciennes versions et des bibliothèques abandonnées rendent les mises à niveau et les sauvetages plus complexes. |
| Code partagé avec le web | Partager de la logique avec une application web React fait gagner du temps plus tard mais demande de la planification en amont. |
| Domaine | Tools |
|---|---|
| Noyau | React Native, TypeScript, Expo, EAS Build et Submit |
| Architecture de l'application | React Navigation, Expo Router, Zustand, Redux Toolkit, TanStack Query |
| Interface et animation | Reanimated, Gesture Handler, composants natifs |
| Natif | Swift, Kotlin, Expo Modules API |
| Services | Firebase, OneSignal, RevenueCat, Sentry |
Erreurs courantes à éviter
Ce qui tourne le plus souvent mal, et comment un bon projet l'évite.
Laisser les versions prendre du retard
Sauter les mises à niveau de React Native pendant des années transforme une tâche courante en projet de sauvetage. Mettez à niveau régulièrement.
Trop de bibliothèques non maintenues
Chaque bibliothèque tierce est une dépendance dont vous devez maintenir la compatibilité. Choisissez-en peu et bien maintenues.
Faire du travail lourd sur le thread JavaScript
De grandes listes, des animations ou du traitement de données sur le thread JS principal causent des saccades. Utilisez les bons outils pour chacun.
Livrer des changements natifs à distance
Les mises à jour OTA concernent uniquement JavaScript et les ressources ; les changements natifs doivent passer par les boutiques.
Questions fréquentes
React Native est-il aussi rapide qu'une application native ?
Pour la plupart des applications, les utilisateurs ne voient pas la différence, car React Native affiche de véritables composants natifs. Les parties critiques en performances peuvent être écrites sous forme de modules natifs en Swift ou Kotlin.
Expo ou React Native bare ?
Nous commençons par Expo pour la plupart des applications, car il accélère le développement, les builds et les mises à jour. Nous utilisons le workflow bare, ou Expo avec du code natif sur mesure, lorsqu'une application a besoin de SDK qu'Expo ne couvre pas.
Pouvez-vous reprendre une application React Native existante ?
Oui. Nous auditons la base de code, mettons à jour les dépendances et la version de React Native, corrigeons les problèmes de stabilité et poursuivons le développement.
Pouvez-vous publier des mises à jour sans validation des boutiques ?
Les changements de JavaScript et de ressources peuvent être livrés à distance avec Expo Updates. Les changements de code natif nécessitent toujours une publication normale sur les boutiques.
Pouvons-nous partager du code avec notre site web React ?
Oui. La logique métier, les types, les clients d'API et la validation peuvent être partagés dans un monorepo ; le code d'interface est généralement propre à chaque plateforme.
React Native prend-il en charge les tablettes et les pliables ?
Oui. Les mises en page peuvent s'adapter à la taille de l'écran, et nous concevons des mises en page tablette dédiées lorsque le produit y gagne.
L'application aura-t-elle le même aspect sur iOS et Android ?
Elle peut partager une identité de marque tout en respectant les conventions de chaque plateforme, comme les modèles de navigation et les contrôles système.
Et la New Architecture ?
Les nouvelles applications utilisent par défaut la New Architecture de React Native. Pour les anciennes applications, nous migrons dans le cadre des mises à niveau, une fois que leurs bibliothèques la prennent en charge.
Construisez-vous aussi le back end ?
Oui : API, bases de données, authentification et outils d'administration, ou nous nous intégrons à votre back end existant.
Comment testez-vous les applications React Native ?
Avec des tests unitaires pour la logique, des tests de composants pour les écrans, des tests de bout en bout pour les parcours clés avec des outils comme Maestro ou Detox, et des tests manuels sur de vrais appareils iOS et Android avant chaque publication.
Pouvez-vous améliorer une application React Native lente ?
Oui. Nous mesurons l'application pour trouver la cause (listes lourdes, rendus inutiles, grandes images ou travail sur le thread JavaScript) et corrigeons chacune, en mesurant l'amélioration sur de vrais appareils.
Services associés
Développement d'applications mobiles
Applications iOS et Android, de la conception à la publication sur les stores.
Développement d'applications iOS
Applications iPhone et iPad conformes aux directives d'Apple.
Développement d'applications Android
Applications Android pour toute la gamme d'appareils.
Développement d'API sur mesure
API REST, GraphQL et WebSocket documentées.
QA et tests logiciels
Tests manuels et automatisés sur tous les navigateurs et appareils.
Pour aller plus loin
Développement React Native par secteur
Créez votre application React Native.
Dites-nous ce dont vous avez besoin. Vous recevez une évaluation honnête, un plan clair et un devis écrit. La première consultation est toujours gratuite.
- Et ensuite ?
- 1Vous nous dites ce dont vous avez besoin
- 2Nous nous efforçons de répondre sous 24 heures avec des questions
- 3Vous recevez un devis écrit pour votre projet