Kinova is a cross-platform SwiftUI app for browsing movies and TV shows, powered by TMDB and built with modern Swift and async/await patterns. It supports iOS, macOS, and visionOS.
- Browse trending, popular, and top-rated movies and TV shows
- View detailed information and similar recommendations
- Carousel-based navigation for content discovery
- Responsive UI for iOS, macOS, and visionOS
- Async data loading and modern Swift concurrency
- Code coverage and CI with GitHub Actions and Codecov
- Xcode 16.4 or later
- A TMDB API access token
-
Clone the repository:
git clone https://github.com/igorcamilo/kinova-app.git cd kinova-app -
Configure Secrets:
- Set the
TMDB_ACCESS_TOKENenvironment variable with your TMDB API token. - Run the provided script to generate the secrets file:
export TMDB_ACCESS_TOKEN=your_token_here ./ci_scripts/ci_post_clone.sh
- Set the
-
Open in Xcode:
- Open
Kinova.xcodeprojin Xcode.
- Open
-
Build and Run:
- Select your target platform (iOS, macOS, or visionOS) and run the app.
Kinova/— Main app source code (SwiftUI views, view models, configuration)KinovaTests/— Unit testsScripts/— Utility scripts (e.g., secrets file generation).github/workflows/— CI/CD workflows for linting, testing, and security.editorconfig— Editor configuration for consistent code style
- Uses tmdb-swift as a Swift Package dependency.
- Modern SwiftUI patterns, including
@Observable, async/await, and environment objects. - Custom carousel and navigation components for a smooth browsing experience.
- Run unit tests with:
xcodebuild test -project Kinova.xcodeproj -scheme Kinova - CI runs tests on iOS, macOS, and visionOS simulators and uploads coverage to Codecov.
- 2-space indentation and Unix line endings enforced via
.editorconfig. - Linting is automated in CI with Swift Format.
MIT License. See LICENSE.
- TMDB for the movie/TV data API
- tmdb-swift for the Swift client library
This project is not affiliated with TMDB. You need your own TMDB API access token.