37
V for VIPER Vladimir Hudnitsky

iOS Viper architecture for CocoaHeadsBY (RU)

Embed Size (px)

Citation preview

Page 1: iOS Viper architecture for CocoaHeadsBY (RU)

V for VIPERVladimir Hudnitsky

Page 2: iOS Viper architecture for CocoaHeadsBY (RU)

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

Page 3: iOS Viper architecture for CocoaHeadsBY (RU)

♥ MVC

Page 4: iOS Viper architecture for CocoaHeadsBY (RU)

♥ MVC

View Controller

Page 5: iOS Viper architecture for CocoaHeadsBY (RU)

♥ MVCView Controller

TableViewDelegate

TableViewDatasource

Page 6: iOS Viper architecture for CocoaHeadsBY (RU)

♥ MVCView Controller

TableViewDatasource

TableViewDelegateSections

Cells

Page 7: iOS Viper architecture for CocoaHeadsBY (RU)

♥ MVCView Controller

TableViewDatasource

TableViewDelegateSections

Cells

Page 8: iOS Viper architecture for CocoaHeadsBY (RU)

♥ MVCView Controller

TableViewDelegateSections

Cells

TableViewDatasource

CoreData DURCMODEL

Page 9: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPER

View

Interactor

Presenter

Entity

Router

Page 10: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPERView

Page 11: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPERView

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

Page 12: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPERView

Presenter

Page 13: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPERView

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

Presenter

Page 14: iOS Viper architecture for CocoaHeadsBY (RU)

Зачем мне VIPER?

ViewPresenterInteractor

Entity

Page 15: iOS Viper architecture for CocoaHeadsBY (RU)

Я молодец!

ViewPresenterInteractor

Entity

Page 16: iOS Viper architecture for CocoaHeadsBY (RU)

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

Page 17: iOS Viper architecture for CocoaHeadsBY (RU)

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

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

Page 18: iOS Viper architecture for CocoaHeadsBY (RU)

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

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

Page 19: iOS Viper architecture for CocoaHeadsBY (RU)

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

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

Page 20: iOS Viper architecture for CocoaHeadsBY (RU)

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

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

Page 21: iOS Viper architecture for CocoaHeadsBY (RU)

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

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

Page 22: iOS Viper architecture for CocoaHeadsBY (RU)

VIPER

TDD

Page 23: iOS Viper architecture for CocoaHeadsBY (RU)

VIPER Thinking

Page 24: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPERView

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

Page 25: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPER

Router

Page 26: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPER

Router

Page 27: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPERRouter

<Presenter>

Page 28: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPERRouter

<Presenter>

<Interactor>

Entity

Page 29: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPERRouter

<Presenter>

<Interactor>

Entity

Services

Page 30: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPER

Router

<Presenter>

<Interactor>

Entity

Services

А где вьюшка?

Page 31: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPERRouter

<Presenter>

<Interactor>

EntityServices

View

Page 32: iOS Viper architecture for CocoaHeadsBY (RU)

I ♥ VIPER

Module 1 Module 2

Page 33: iOS Viper architecture for CocoaHeadsBY (RU)

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

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

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

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

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

Page 34: iOS Viper architecture for CocoaHeadsBY (RU)

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

Lazy Refactoring

Page 35: iOS Viper architecture for CocoaHeadsBY (RU)

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

Page 36: iOS Viper architecture for CocoaHeadsBY (RU)

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

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

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

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

Page 37: iOS Viper architecture for CocoaHeadsBY (RU)

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

Спасибо

fb.com/hudnitsky