Giter Club home page Giter Club logo

movieappwithvip's Introduction

VIP Architecture + Builder pattern + Dependency Injection.

This project build with the help of VIP Architecture, Builder pattern and Dependency Injection.

Purpose

MovieAppWithVIP the repo to understand and learn VIP Architecture, Builder pattern and Dependency Injection.

Authors

  • Tushar Jaunjalkar

VIP Architecture (Clean Swift Architecture)

Clean architecture introduced by Robert C. Martin (a.k.a. Uncle Bob) started gaining interest by the mobile community. In Clean Swift, your project structure is built around scenes. Here is an example how does one scene looks like. In other words, we will have a set of components for each scene that will "work" for our controller. These are the components:

  • Models
  • Router
  • View
  • Interactor
  • Presenter

The communication between the components is done with protocols. Each component will contain protocols which will be used for receiving and passing data between them. ViewController communicates with Interactor, then Interactor with Presenter and Presenter with ViewController.

Flow

Builder pattern

The Builder pattern is a well-known pattern in Swift world. It’s especially useful when you need to create an object with lots of possible configuration options. The intent of the Builder design pattern is to separate the construction of a complex object from its representation. So if you have an object with lots of properties, you want to hide the complexity of the initialization process, you could write a builder and construct the object through that. It can be as simple as a build method or an external class that controls the entire construction process. It all depends on the given environment

Dependency Injection

Dependency Injection (DI) is a design pattern used to implement IoC. It allows the creation of dependent objects outside of a class and provides those objects to a class through different ways. Using DI, we move the creation and binding of the dependent objects outside of the class that depends on them.

movieappwithvip's People

Contributors

tushar-heady avatar tusharios avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

bnazh eomkicheol

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.