Contexte du projet
Ce projet a été réalisé dans le cadre de ma formation à l’UHA 4.0 en développement web full stack, au cours de l’année 2025.
Il s’agit d’un projet de groupe, mené sur une période de 6 semaines, avec une organisation agile et un suivi régulier de l’avancement.
L’objectif était de concevoir une application mobile de type Push To Talk, permettant à des utilisateurs de communiquer vocalement en temps réel au sein de canaux, à la manière de talkies-walkies numériques.
L’application devait être utilisable aussi bien via l’interface tactile du smartphone que via un bouton physique connecté.
Objectif
Développer une application mobile Push To Talk permettant à des utilisateurs :
de rejoindre des canaux de discussion vocale,
de communiquer de manière instantanée en appuyant sur un bouton,
de garantir une communication fluide, contrôlée et adaptée à des usages professionnels ou collaboratifs.
Le projet met l’accent sur la gestion du micro, la priorité de parole, et l’intégration de matériel externe pour améliorer l’ergonomie.
Fonctionnalités principales
Connexion des utilisateurs à l’application
Liste des canaux de communication disponibles
Ouverture et fermeture d’un canal vocal
Gestion du Push To Talk :
Appui pour parler
Relâchement pour couper le micro
Mute automatique des autres utilisateurs lorsqu’un utilisateur parle
Affichage des utilisateurs présents dans un canal
Intégration d’un bouton physique Flic pour déclencher la prise de parole
Gestion des permissions micro sur mobile
Interface adaptée à un usage mobile (Android)
Technologies utilisées
Front-end mobile : React Native
SDK de communication vocale : Rainbow SDK
Bouton physique : Librairie Flic2
Langage : TypeScript / JavaScript
Plateforme cible : Android
Gestion de projet : Méthodologie Agile / Scrum
Travail réalisé
Voici les principales tâches que j’ai effectuées sur le projet :
Mise en place de l’architecture React Native et configuration de l’environnement de développement
Intégration du SDK Rainbow :
gestion des appels audio
connexion aux canaux
contrôle du micro (mute / unmute)
Implémentation de la logique Push To Talk :
un seul utilisateur peut parler à la fois
tous les autres utilisateurs restent automatiquement en mute
Gestion des états de parole (parle / ne parle pas) côté interface
Intégration de la librairie Flic2 :
association du bouton physique à l’application
déclenchement de la prise de parole via le bouton
Gestion des permissions Android (micro, Bluetooth)
Débogage et stabilisation du comportement audio sur mobile
Défis rencontrés
Comprendre et intégrer un SDK tiers complexe (Rainbow) avec une documentation partiellement orientée usage natif
Gérer correctement les états du micro pour éviter les conflits audio
Synchroniser l’état de parole entre plusieurs utilisateurs connectés au même canal
Intégrer un bouton matériel externe (Flic) dans une application mobile React Native
Garantir une expérience utilisateur fluide malgré les contraintes mobiles (permissions, latence, interruptions)
Ce que j’ai appris
Développement d’applications mobiles avec React Native
Intégration et utilisation d’un SDK de communication temps réel
Gestion fine de l’audio et des permissions sur Android
Interaction entre application mobile et hardware externe
Importance de la gestion des états et des événements dans une application temps réel
Travail en équipe sur un projet technique avec des contraintes fortes