sync-tune2026

SyncTune (SyncMusic)

ClientProjet Personnel
RôleDéveloppeur Full-Stack
Technologies
React NativeExpoNode.jsExpressSocket.ioMongoDBTailwindCSS
Web, Android (APK)"Plateformes
WebSocketsArchitecture
Mise en cache serveurOptimisation API
SyncTune (SyncMusic) Hero

L'ambition derrière la création.

SyncTune est né d'une idée simple mais techniquement exigeante : pouvoir partager des moments musicaux ou vidéo à distance, comme si l'on était dans la même pièce. L'application permet aux utilisateurs de créer des salons virtuels privés et d'y inviter leurs amis. N'importe quel participant peut chercher un morceau via l'API YouTube intégrée et contrôler le lecteur commun : chaque action (play, pause, avance rapide) est répercutée instantanément sur les appareils de tous les membres du salon. L'expérience est complétée par un système de chat en direct, sauvegardé via MongoDB, pour interagir tout au long de la session.

Le Challenge

Le défi principal de ce projet a résidé dans la gestion d'état distribuée et la synchronisation du temps (time-syncing). Il fallait s'assurer que le lecteur vidéo via l'iframe YouTube reste calé avec précision pour tous les utilisateurs, malgré les variations de latence réseau de chacun. Un autre obstacle majeur était la politique très stricte des quotas de l'API YouTube Data v3, qui limitait drastiquement le nombre de recherches vidéo possibles par jour pour une application naissante.

La Solution

Pour la synchronisation en temps réel, j'ai architecturé le backend autour de Node.js et Socket.io. Le serveur agit comme la 'source de vérité' de chaque salon (vidéo en cours, timestamp actuel, état de lecture). L'hôte du salon émet des événements de synchronisation réguliers pour recaler le serveur, qui broadcast ensuite l'état aux clients. Pour l'interface, j'ai utilisé React Native (via Expo) afin de créer une base de code unique, déployable à la fois en Web App et en APK Android. Enfin, pour économiser les quotas YouTube, j'ai implémenté un mécanisme de cache intelligent côté serveur qui stocke les résultats des recherches fréquentes en mémoire pendant une heure.

Visuels du projet

Aperçu de l'interface utilisateur

SyncTune (SyncMusic) screenshot 1
Balayer ou cliquer pour défiler
01 / 01
Rendez-vous Anytime
Projet Suivant

Rendez-vous Anytime