Recommandations “clone WhatsApp + pièces jointes + carnet d’adresses + RCS consentement + WebRTC”.
Voici mes recommandations concrètes, orientées “clone WhatsApp + pièces jointes + carnet d’adresses + RCS consentement + WebRTC”.
1) Stack recommandée (Android-first, production-grade)
Des fonctionnalités qui nous distinguent
Runtime / Langage
- React Native CLI
- TypeScript
- Hermes activé (perf, startup)
Navigation & UI
- @react-navigation/native (+ stack, tabs)
- react-native-safe-area-context
- react-native-gesture-handler
- GiftedChat pour l’UI de chat
.
Pièces jointes (images / vidéos / fichiers)
- Images/Vidéo : react-native-image-picker (ou react-native-vision-camera si vous voulez une caméra plus avancée)> @Antonio> cela sera utile pour une fonctionnalité TRES demandé par le docteur ZELLNER à savoir la dimension réseau social entre le senior, l'aidant et l'infirmière > et c'est d'ailleurs cette fonction que je demande à Armel de faire en WebApp#6 (
- Fichiers : react-native-document-picker
- Upload : client vers Supabase Storage ou S3 compatible
Carnet d’adresses
- react-native-contacts (permission runtime + sélection)
- Remarques @antonio about carnet d'adresses = TRES utile pour faire les cessions de WebRTC ( pour passer du mode lien magique à lancement comme dans whatsApp de call Voix (et demain vidéo )
Temps réel (chat)
- WebSocket (votre backend) ou Supabase Realtime (selon stratégie)
- Pour WhatsApp-like : “delivered/read receipts” gérés côté serveur
D'ailleurs @antonio > est ce que l'on fait du WebSocket ou du Supabase realtime ?
WebRTC
- react-native-webrtc
- (option) LiveKit RN SDK si vous standardisez SFU + tokens
.
2) Architecture applicative (modulaire)
Je vous conseille 5 modules “clean” :
-
Auth & Identity
- Login, device id, refresh tokens
- @Antonio > On fait du Google ip + log email / pass ?
-
Contacts
- import “à la demande” (sélection d’un contact, pas dump complet)
- @Antonio > est ce que le Dump complet est pas préférable ( car c'est une native App et synchronisation est systèmatique ou je me trompes ?
-
Chat
- GiftedChat + message store local (SQLite) + sync
-
Attachments
- picker → upload → message “file/image/video”
-
Consent & RCS
- génération token → envoi RCS via backend → réception event → update dossier
- @Antonio > Comme vous savez l'intérêt de cela est particulièrement intéressant pour Orange > cf réunion du 22
3) Données locales (recommandation forte)
Pour une UX WhatsApp-like, évitez de dépendre à 100 % du réseau :
- SQLite (via react-native-sqlite-storage ou react-native-quick-sqlite)
- Cache de conversations/messages
- Retry queue (upload & send)
Cela rend l’app très “réaliste” (offline-first) et “pro”.
4) Sécurité & conformité (conseil “santé”)
- Ne stockez pas de secrets dans l’app (service key, etc.)
-
JWT/refresh token en stockage sécurisé :
- Android : Keystore (via react-native-keychain)
-
Pour les pièces jointes :
- bucket privé + URLs signées (expirantes)
- Logging minimal côté mobile (pas de données de santé en clair)
5) Build & industrialisation
- Fastlane (signing, play store)
- CI : GitHub Actions ou GitLab CI
-
“Flavors” :
- dev / staging / prod
-
Crash reporting :
- Sentry
6) Recommandation de trajectoire (pragmatique)
- MVP 1 : Chat + pièces jointes + contacts + consentement RCS (sans appel)
- MVP 2 : WebRTC 1:1 (audio), en gardant la même base
- MVP 3 : multi-participants, enregistrement, diarisation, RAG
7) Squelette projet (démarrage)
Je vous recommande de démarrer sur :
- React Native CLI (dernière version stable)
- TypeScript template
-
dossier /src structuré :
- /features/chat
- /features/attachments
- /features/contacts> @Antonio > First car pemet de coller fonctionnalité WebRTC / ringOver
- /features/consent
- /services/api
- /services/storage
- /db
messagerie + WebRTC natif p
intégration cohérente “WhatsApp-like” : GiftedChat pour la messagerie + WebRTC natif pour l’appel (1:1 au départ), avec un bouton AppeOpportunités
ntégration cohérente “WhatsApp-like” : GiftedChat pour la messagerie + WebRTC natif pour l’appel (1:1 au départ), avec un bouton Appel dans l’en-tête de la conversation et un CallScreen séparé (ou en modal). Je vous donne :
- le design d’architecture (RN ⇄ Signaling ⇄ WebRTC),
- les dépendances RN CLI,
- le squelette de code (ChatScreen + CallScreen + Signaling + WebRTC session),
- les permissions Android indispensables,
- les points “production” (TURN, reprise, états, latence).
Accéder à l’Address Book (contacts) sur iOS + Android dans une app React Native utilisant GiftedChat,
Voici la procédure la plus rapide (et conforme) pour accéder à l’Address Book (contacts) sur iOS + Android dans une app React Native utilisant GiftedChat, avec consentement explicite de l’utilisateur, et du code prêt à intégrer.
Option la plus rapide et robuste : react-native-contacts
Recommandations concrètes, orientées “clone WhatsApp + pièces jointes + carnet d’adresses + RCS consentement + WebRTC”.`
Voici mes recommandations concrètes, orientées “clone WhatsApp + pièces jointes + carnet d’adresses + RCS consentement + WebRTC”.