Sofa
A native iOS watchlist app for films and series — TMDB search, personal library, watch tracking and ratings.
- year
- 2026
- role
- iOS design and development
- status
- Completed
- front
- SwiftUI, Swift
- data
- SwiftData, TMDB API
Context
The project
Sofa answers an everyday problem: knowing what to watch, and above all remembering what you meant to watch. The app lets you search for a film or series through the TMDB API, add it to your library, mark what you've seen, rate titles and see where to stream them.
Stack
A 100% native iOS app, written in SwiftUI with SwiftData for persistence. No cross-platform framework, no WebView: the animations, the gestures and the system behaviour are those of an iOS app, because that is precisely what separates an app you keep from an app you delete.
SwiftData handles local persistence, which makes the library readable offline — only search and detail refreshes need the network.
Design
A dark interface, inspired by the atmosphere of a cinema: deep backgrounds, posters given room to breathe, high-contrast typography. The design system is defined once — colours, spacing, type — then applied consistently across every screen.
What I took away
Coming from the web, SwiftUI asks you to unlearn a few reflexes. The layout system doesn't work like Flexbox, and state propagation follows its own rules. In exchange, the integration with the system — widgets, sharing, dark mode, accessibility — is on a different level from anything you get in a web app.
Architecture
01 · Search
TMDB API queries for title search and detail sheets.
02 · Storage
Library and watch history persisted with SwiftData, readable offline.
03 · Enrichment
Available streaming platforms pulled from TMDB.
04 · Interface
Dark design system inspired by cinema auditoriums, in native SwiftUI.
Interface
Next project
Rootine