A comprehensive movie tracking application for iOS and iPadOS, built with SwiftUI and Core Data. This app allows users to track their watched movies, create custom playlists, discover new films, and view insights about their watching habits.
- Personal movie collection management
- Create custom playlists
- Mark movies as watched
- View auto-suggested similar films based on watching history
- Search IMDb database for movies
- Filter by name, genre, and rating
- Add movies to watchlist or custom playlists
- Visualize viewing habit analytics
- Track total watched movies and hours
- See favorite genres and average ratings
- View genre distribution charts
- MVVM Pattern: Clear separation of UI (Views), business logic (ViewModels), and data (Models)
- Repository Pattern: Abstraction layer for data operations
- Protocol-Oriented Programming: Interfaces for dependency injection and testing
- SwiftUI: Modern declarative UI framework
- Core Data: Persistent storage for movie information and user data
- Combine: Reactive programming for handling asynchronous events
- RapidAPI IMDb API: External data source for movie information
- Movie: Stores movie details from the API
- Playlist: Represents user-created collections and default lists (Completed/Watchlist)
- UserStats: Tracks user viewing statistics
- Xcode 14.0+
- iOS 16.0+
- RapidAPI Account with IMDb API subscription
- Clone the repository in Final version Branch
git clone https://github.com/Diwanga/movie-tracker.git
cd movie-tracker- Open the project in Xcode
open MovieTracker.xcodeproj-
Set up your RapidAPI Key
- Create a configuration file called
APIConfig.swiftin the Network folder - Add your RapidAPI key as follows:
struct APIConfig { static let rapidAPIKey = "YOUR_RAPIDAPI_KEY" static let rapidAPIHost = "imdb236.p.rapidapi.com" }
- Create a configuration file called
-
Build and run the app on your device or simulator
- Go to the "Discover" tab
- Search for movies by title, genre, or rating
- Tap on a movie to see details
- Add to watchlist or mark as completed
- Go to the "My Cinema" tab
- Tap the "+" button next to your playlists
- Enter a name for your new playlist
- Add movies to your playlist from the movie detail view
- Go to the "Insights" tab
- View statistics about your watched movies
- See your genre distribution
This project is part of an MSc program and is intended for educational purposes.
- RapidAPI IMDb API for providing movie data
- SwiftUI for the modern UI framework