iOS Viper architecture for CocoaHeadsBY (RU)

Preview:

Citation preview

V for VIPERVladimir Hudnitsky

Длинное вступление

♥ MVC

♥ MVC

View Controller

♥ MVCView Controller

TableViewDelegate

TableViewDatasource

♥ MVCView Controller

TableViewDatasource

TableViewDelegateSections

Cells

♥ MVCView Controller

TableViewDatasource

TableViewDelegateSections

Cells

♥ MVCView Controller

TableViewDelegateSections

Cells

TableViewDatasource

CoreData DURCMODEL

I ♥ VIPER

View

Interactor

Presenter

Entity

Router

I ♥ VIPERView

I ♥ VIPERView

Что там дальше в схеме?

I ♥ VIPERView

Presenter

I ♥ VIPERView

Что там дальше в схеме?

Presenter

Зачем мне VIPER?

ViewPresenterInteractor

Entity

Я молодец!

ViewPresenterInteractor

Entity

Почему я бросил VIPER

Почему я бросил VIPER

1.Трудно начать

Почему я бросил VIPER

1.Трудно начать2. Непонятно, что с чем связывать

Почему я бросил VIPER

1.Трудно начать2. Непонятно, что с чем связывать3. Да, проект просто старый уже!

Почему я бросил VIPER

1.Трудно начать2. Непонятно, что с чем связывать3. Да, проект просто старый уже!4. Другие все равно говнокодят!

Почему я бросил VIPER

1.Трудно начать2. Непонятно, что с чем связывать3. Да, проект просто старый уже!4. Другие все равно говнокодят!5. А как пользоваться Роутерами?

VIPER

TDD

VIPER Thinking

I ♥ VIPERView

Что там дальше в схеме?

I ♥ VIPER

Router

I ♥ VIPER

Router

I ♥ VIPERRouter

<Presenter>

I ♥ VIPERRouter

<Presenter>

<Interactor>

Entity

I ♥ VIPERRouter

<Presenter>

<Interactor>

Entity

Services

I ♥ VIPER

Router

<Presenter>

<Interactor>

Entity

Services

А где вьюшка?

I ♥ VIPERRouter

<Presenter>

<Interactor>

EntityServices

View

I ♥ VIPER

Module 1 Module 2

Вернемся к вопросам

1. Трудно начать

2. Непонятно, что с чем связывать

3. Да, проект просто старый уже!4. Другие все равно говнокодят!

5. А как пользоваться Роутерами?

Да, проект просто старый уже!

Lazy Refactoring

Другие все равно говнокодят!

Итоги1.Довольно быстро привыкаешь2.Уменьшается количество багов3.Возрастает скорость

переключения между проектами

4.На выходе получается трестируемый код

5.Проекты на VIPER легче поддерживать

Владимир Худницкий

Спасибо

fb.com/hudnitsky