Sofa
Application iOS native de watchlist films et séries — recherche via TMDB, bibliothèque personnelle, suivi des visionnages et notes.
- année
- 2026
- rôle
- Conception, design et développement iOS
- statut
- Terminé
- front
- SwiftUI, Swift
- données
- SwiftData, TMDB API
Contexte
Le projet
Sofa répond à un problème quotidien : savoir quoi regarder, et surtout se souvenir de ce qu'on voulait regarder. L'application permet de chercher un film ou une série via l'API TMDB, de l'ajouter à sa bibliothèque, de marquer ce qui a été vu, de noter les titres et de voir où les regarder en streaming.
Stack
Application iOS 100 % native, écrite en SwiftUI avec SwiftData pour la persistance. Pas de framework multiplateforme, pas de WebView : les animations, les gestes et le comportement du système sont ceux d'une application iOS, parce que c'est précisément ce qui distingue une application qu'on garde d'une application qu'on désinstalle.
SwiftData assure la persistance locale, ce qui rend la bibliothèque consultable hors connexion — seules la recherche et la mise à jour des fiches nécessitent le réseau.
Design
Interface sombre, inspirée de l'ambiance d'une salle de cinéma : fonds profonds, affiches mises en valeur, typographie contrastée. Le design system est défini une fois — couleurs, espacements, typographies — puis appliqué de façon cohérente à tous les écrans.
Ce que j'en retire
Venant du web, SwiftUI demande de désapprendre certains réflexes. Le système de layout ne fonctionne pas comme Flexbox, et la propagation d'état suit ses propres règles. En revanche, l'intégration avec le système — widgets, partage, mode sombre, accessibilité — est sans commune mesure avec ce qu'on obtient dans une application web.
Architecture
01 · Recherche
Requêtes à l'API TMDB pour la recherche de titres et les fiches détaillées.
02 · Stockage
Bibliothèque et suivi des visionnages persistés avec SwiftData, consultables hors connexion.
03 · Enrichissement
Plateformes de streaming disponibles récupérées depuis TMDB.
04 · Interface
Design system sombre inspiré des salles de cinéma, en SwiftUI natif.
Interface
Projet suivant
Rootine