Top Banner
V for VIPER Vladimir Hudnitsky
37

iOS Viper architecture for CocoaHeadsBY (RU)

Apr 07, 2017

Download

Engineering

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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