adumrewal / tmdb-ios-app

The movie database (TMDb) iOS App in Swift with MVVM architecture.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TMDB iOS Application

The Movie Database (TMDb) iOS App in Swift - https://developers.themoviedb.org/3/getting-started/introduction

Technical specs

  • 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

Features

  • 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

Screenshots

Now Playing Saved Items Movie Detail View

Steps to build and run

  • 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

Future work

  • Search Tab
  • Deeplinks
  • Add protocols for ViewController and ViewModel communication
  • NowPlayingVC, SavedItemsVC and SearchTabVC can benefit from a common super class
  • Modularise CoreData calls
  • Modularise Network calls

About

The movie database (TMDb) iOS App in Swift with MVVM architecture.

License:MIT License


Languages

Language:Swift 99.2%Language:Ruby 0.8%