Skip to content
/ Movizy Public

Learn to write clean code with VIPER (Movies)

Notifications You must be signed in to change notification settings

deda9/Movizy

Repository files navigation

Movizy

Hello! This Open Source Movies project, help beginners to learn how to write clean code with

  • VIPER Architecture
  • SOLID
  • Composition over inheritance
  • Service Locator

About Project

  • User can show the list of the movies.
  • User can show movie details.
  • User can search for specific movie with autocomplete feature.

Backend

  • This project uses themoviedb Apis (Read more)
  • You need to create new account and get the public key, but so far you can use the current key in the demo (Read more)

Code

  • This code written by Swift 4.2 and Xcode 10.1
  • This demo follow VIPER Architecture, SOLID, Composition over inheritance and Service Locator design for dependency injection
  • This demo reaches to the low-level so all the code is wrriten from scrach without using any third libraries except the network layer use Alamofire (read more) and SwiftLint for styling the code (Read more)

What to learn

  • How to write clean code by VIPER
  • How follow Composition over inheritance to make your code reusable.
  • Decode & encode JSON with Codable
  • Write protocol oriented network layer like Moya Read
  • Write network requests with Alamofire
  • Write simple DI with Service Locater Read
  • Wrapper to use native Autolayout Read
  • Simple wrapper to make chain animations Read
  • Create ToastView to show success & error messages Read
  • Wrapper to create Localizations Read
  • Write Simple image downloading with simple cashing with NSCache Read
  • Write Fade in & out transition Read
  • Write Zoom transition Read
  • Create UITableView GenericDataSource Read
  • Use SwiftLint Read
  • Learn how to write unit testing with Quick & Nimble
  • How to use SwiftLint with Cocoapods