Explore the audiovisual universe with analytical quality visualization
Plotline goes beyond a simple movie catalog. It provides analytical visualization of quality for both movies and TV series, consolidating critical data from multiple sources (IMDb, Rotten Tomatoes, Metacritic) into a unified, elegant interface.
Most apps tell you what a series is about. Plotline shows you how its quality evolves visually.
- Trending & Popular — Browse trending and top-rated movies & TV series
- Genre Browsing — Explore content by genre with filtered results, media type toggle, and sort options
- Smart Search — Find any movie or series instantly with real-time results
- Personalized Daily Pick — Get daily recommendations based on your favorite genres
- Multi-Source Ratings — Aggregated scores from IMDb, Rotten Tomatoes, and Metacritic
- Episode Quality Graphs — Visualize TV series episode ratings with interactive Swift Charts
- Content Recommendations — "You Might Also Like" suggestions for every title
- Share — Share movies and series with friends via any app
- Favorites — Save your favorite titles with swipe-to-delete, filtering (All/Movies/Series), and sorting
- Watchlist — Track what you want to watch and what you've seen, with status toggling and swipe actions
- iCloud Sync — Both favorites and watchlist sync seamlessly across all your devices
- Immersive UI — Cinema-inspired interface with smooth animations and zoom transitions
- Light & Dark Mode — Full support for both appearances
- Dynamic Type — Adapts to your preferred text size
| Technology | Purpose |
|---|---|
| SwiftUI | Declarative UI framework |
| Swift Charts | Episode rating visualization |
| SwiftData | Local persistence for favorites |
| CloudKit | Automatic iCloud sync |
| @Observable | iOS 17+ state management |
| async/await | Modern concurrency |
| TMDB API | Visual data & metadata |
| OMDb API | Ratings & episode metrics |
Plotline uses a dual API strategy (chained fetching):
- TMDB provides visual assets, trending content, and the
imdb_idbridge - OMDb enriches with external ratings and episode-by-episode metrics
User Action → TMDB Fetch → Extract imdb_id → OMDb Fetch → Merge & Render
- iOS 18.0+
- Xcode 16+
- TMDB API Key (Get one here)
- OMDb API Key (Get one here)
- iCloud account (optional, for cross-device sync)
-
Clone the repository
git clone https://github.com/yourusername/Plotline.git cd Plotline -
Add your API keys to
Plotline/Secrets.plist:<dict> <key>TMDB_API_KEY</key> <string>your_tmdb_key</string> <key>OMDB_API_KEY</key> <string>your_omdb_key</string> </dict>
-
Build and run:
With Xcode:
open Plotline.xcodeproj
Then press ⌘R to run.
With command line:
xcodebuild -project Plotline.xcodeproj -scheme Plotline \ -destination 'platform=iOS Simulator,name=iPhone 17' \ -derivedDataPath build build && \ xcrun simctl install booted build/Build/Products/Debug-iphonesimulator/Plotline.app && \ xcrun simctl launch booted com.jbgsoft.Plotline
Plotline/
├── App/ # App entry point & configuration
├── Models/ # Data models & API responses
├── ViewModels/ # @Observable view models
├── Views/
│ ├── Discovery/ # Home screen & media cards
│ ├── Detail/ # Media detail & scorecards
│ ├── Graph/ # Series episode charts
│ ├── Favorites/ # Favorites & Watchlist
│ ├── Settings/ # App settings & theme
│ └── Components/ # Reusable UI components
├── Services/ # Network layer, API services & data managers
├── Extensions/ # Swift & SwiftUI extensions
└── Resources/ # Assets & configuration
This project is licensed under the MIT License - see the LICENSE file for details.
Made with care by JBGSoft - Jaime Barreto 🧡





