LID M VC VIPER VIC R VIP D RY BD D M M VP VIC R VIP TD SO LID M M VP VIPER VIC R VIP M VVM D RY TD D BD D SO LID M VC VP VIPER P M VVM D RY TD D BD D M VP M VVM TD S VIC R M VVM TD D VIPER BUZZWORD
module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Converting / preparing data Access data layer Layouting Getting events Every screen has to do:
module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Converting / preparing data Access data layer Layouting Getting events STEP 1: VIPER
next module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Converting / preparing data Access data layer Layouting Getting events
next module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Converting / preparing data Access data layer Layouting Getting events Presenter
next module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Converting / preparing data Access data layer Layouting Getting events Presenter Interactor
next module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Converting / preparing data Access data layer Layouting Getting events Presenter Interactor Data manager
next module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Converting / preparing data Access data layer Layouting Getting events Presenter Interactor Data manager Services
next module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Converting / preparing data Access data layer Layouting Getting events Presenter Interactor Data manager View Services
/ Navigating Passing data to the next module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Converting / preparing data Access data layer Layouting Getting events ows Owning scheme
Wireframe Building Module Routing / Navigating Passing data to the next module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Converting / preparing data Access data layer Layouting Getting events VIPER V2 RETAIN CYCLE
Wireframe Building Module Routing / Navigating Passing data to the next module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Converting / preparing data Access data layer Layouting Getting events VIPER V3 Now view strongly owned by UIKit View owns wireframe Wireframe owns rest module
Controller Building Module Routing / Navigating Passing data to the next module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Converting / preparing data Access data layer Layouting Getting events VIPER V4
Presenter Controller Routing / Navigating Passing data to the next module Implementing module interface Prepare data for presenting / Formatting Dispatch / Handle Events from user Business logic Interacting with data / services Layouting Getting events Assembly Building Module Provides a data
Services Interactor Controller Routing / Navigating Passing data to the next module Implementing module interface Dispatch / Handle Events from user Business logic Interacting with data / services Layouting Getting events Assembly Building Module *can contain components