A small iOS movie browser/search app backed by TMDB, built to demonstrate a senior-level Swift/iOS workflow: modular local Swift packages, DTO-boundary discipline, protocol-based dependency injection, TDD with Swift Testing, and Swift 6 strict concurrency.
See docs/superpowers/specs/2026-08-04-cineverse-portfolio-app-design.md for
the full architecture write-up.
- Create a free TMDB account and generate a v4 Read Access Token at https://www.themoviedb.org/settings/api.
- Copy
Secrets.xcconfig.exampletoSecrets.xcconfig(gitignored) and paste your token as the value ofTMDB_ACCESS_TOKEN. - Open
CineVerse.xcodeprojin Xcode 16+, select an iOS 17+ simulator, and run (⌘R).
Package tests: swift test --package-path Packages/<PackageName> for any of
CineVerseLocalization, CineVerseErrorHandling, CineVerseDomain,
CineVerseNetworking, CineVersePersistence, CineVerseRepository.
App target tests (ViewModels): ⌘U in Xcode, or
xcodebuild test -scheme CineVerse -destination 'platform=iOS Simulator,name=iPhone 15'.
Six local Swift packages, layered bottom-up:
Localization ← ErrorHandling ← Domain, Networking, Persistence ← Repository ← App
Repository is the only package allowed to see both DTOs and Domain models — it's the sole mapping boundary. See the design spec for the full package graph and rationale.
Built with the help of Superpowers and Socrates.