The Movie Database (TMDb) iOS App in Swift - https://developers.themoviedb.org/3/getting-started/introduction
- Language: Swift
- Networking: URLSession
- DB Store: CoreData
- Architecture: MVVM
- Pagination
- ViewModels and ViewData for storing UI state
- Protocols for Movie list views
- Swift standard coding/decoding for custom objects
- Now Playing tab
- Saved Movies tab
- Movie Detail view
- App works offline and saves previous responses in DB (using Core Data)
- Saved Movies are stored using Core Data
- Notifications on DB state change
- Recently added saved items are shown on top
- Nuke for image fetching and caching
- Search Tab - not implemented
- Deeplinks - not implemented
Now Playing | Saved Items | Movie Detail View |
---|---|---|
![]() |
![]() |
![]() |
- Clone repo (pod files are included)
- Open
TMDB-sample-app.xcworkspace
in XCode- Select Target TMDB-sample-app (pre-selected)
- Choose simulator/device of choice
- Click on Run
- Search Tab
- Deeplinks
Add protocols for ViewController and ViewModel communicationNowPlayingVC, SavedItemsVC and SearchTabVC can benefit from a common super class- Modularise CoreData calls
- Modularise Network calls