SlideShare a Scribd company logo
1 of 28
VIPER
architecture
Варианты архитектуры
MVC
MVC(Apple)
MVP
MVVM
MV (X) основы(layers)
Model - ответственный за данные или уровень доступа к данным
View - ответственный за слой представления(GUI) для IOS это все что
начинается с UI(UIView, UIViewController)
Controller/Presenter/ViewModel - посредник между моделью и
представлением
MVC
MVP
MVVM
Зачем нам
архитектура?
Clean architecture
Clean architecture
независимость от фреймворков
независимость от UI
независимость от источника данных
независимость от внешних сущностей
тестируемость
VIPER
Что такое VIPER?
View
Interactor
Presenter
Entity
VIPER
ПРОБЛЕМЫ
Interactor’ы - слишком сложны и
загружены
SOLID
Очень много файлов
ViewController обрабатывает таблицы и
коллекции
VIEW/USER INTERFACE
Отвечает за
отображение данных на
экране и оповещает
Presenter о действиях
пользователя. Пассивен,
сам никогда не
запрашивает данные,
только получает их от
презентера.
PRESENTER
Получает от View
информацию о
действиях пользователя
и преображает ее в
запросы к Router’у,
Interactor’у, а также
получает данные от
Interactor’a,
подготавливает их и
отправляет View для
отображения.
INTERACTOR
Содержит всю бизнес-
логику, необходимую для
работы текущего модуля.
DATA MANAGER
Получение данных
Сохранение данных
(optional)
SERVICE
Service - объект,
отвечающий за работу со
своим определенным типом
модельных объектов.
ENTITY
Объекты модели, не
содержащие никакой
бизнес-логики.
WIREFRAME (ASSEMBLY / ROUTER)
Assembly - Инициализирует
все другие классы.
(Dependency Injection)
Router - отвечает за
навигацию между VIPER
модулями.
Много файлов
Кодогенерация
GENERAMBA(https://github.com/rambler-ios/Generamba)
SWIFTGEN
Ссылки
https://github.com/AdamLuisSean/AndroidCleanVIPER
https://github.com/AdamLuisSean/Swift-VIPER-Architecture
https://github.com/rambler-ios/The-Book-of-VIPER
Вопросы
Viper

More Related Content

Similar to Viper

Mvc, mvp and mvvm: A comparison of architectural patterns
Mvc, mvp and mvvm: A comparison of architectural patternsMvc, mvp and mvvm: A comparison of architectural patterns
Mvc, mvp and mvvm: A comparison of architectural patternsIvan Dyachenko
 
Viper - чистая архитектура iOS-приложения (И. Чирков)
Viper - чистая архитектура iOS-приложения (И. Чирков)Viper - чистая архитектура iOS-приложения (И. Чирков)
Viper - чистая архитектура iOS-приложения (И. Чирков)65apps
 
Курсы по мобильной разработке. 2 лекция. Построение интерфейсов в iOS
Курсы по мобильной разработке. 2 лекция. Построение интерфейсов в iOSКурсы по мобильной разработке. 2 лекция. Построение интерфейсов в iOS
Курсы по мобильной разработке. 2 лекция. Построение интерфейсов в iOSГлеб Тарасов
 
Rambler.iOS #5: Переходы и передача данных между VIPER модулями
Rambler.iOS #5: Переходы и передача данных между VIPER модулямиRambler.iOS #5: Переходы и передача данных между VIPER модулями
Rambler.iOS #5: Переходы и передача данных между VIPER модулямиRAMBLER&Co
 
Viper в ios проектах
Viper в ios проектахViper в ios проектах
Viper в ios проектахAnvar Basharov
 
Архитектура для автоматизированного тестирования UI
Архитектура для автоматизированного тестирования UIАрхитектура для автоматизированного тестирования UI
Архитектура для автоматизированного тестирования UIAnton Bevzuk
 
The MVC Renaissance | Возрождение MVC
The MVC Renaissance | Возрождение MVCThe MVC Renaissance | Возрождение MVC
The MVC Renaissance | Возрождение MVCBulat Khabirov
 
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, ControllersШкола-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, ControllersГлеб Тарасов
 
Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)
Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)
Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)Ontico
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей КрапивенскийCodeFest
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftAnton Loginov
 
UAFPUG6 - PureMVC
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVCmandrew182
 
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryMax Rozdobudko
 
Ridgeline 4 Presentation
Ridgeline 4 PresentationRidgeline 4 Presentation
Ridgeline 4 PresentationMUK
 
Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Sergiy Shychynov
 
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOSОмские ИТ-субботники
 
Основи використання MVC
Основи використання MVCОснови використання MVC
Основи використання MVCIgor Bronovskyy
 
#MBLTdev: Опыт использования MVVM в реальных проектах
#MBLTdev: Опыт использования MVVM в реальных проектах#MBLTdev: Опыт использования MVVM в реальных проектах
#MBLTdev: Опыт использования MVVM в реальных проектахe-Legion
 
Архитектура мобильных приложений с примерами на Xamarin.Forms [RUSSIAN]
Архитектура мобильных приложений с примерами на Xamarin.Forms [RUSSIAN]Архитектура мобильных приложений с примерами на Xamarin.Forms [RUSSIAN]
Архитектура мобильных приложений с примерами на Xamarin.Forms [RUSSIAN]Binwell
 

Similar to Viper (20)

Mvc, mvp and mvvm: A comparison of architectural patterns
Mvc, mvp and mvvm: A comparison of architectural patternsMvc, mvp and mvvm: A comparison of architectural patterns
Mvc, mvp and mvvm: A comparison of architectural patterns
 
Viper - чистая архитектура iOS-приложения (И. Чирков)
Viper - чистая архитектура iOS-приложения (И. Чирков)Viper - чистая архитектура iOS-приложения (И. Чирков)
Viper - чистая архитектура iOS-приложения (И. Чирков)
 
Курсы по мобильной разработке. 2 лекция. Построение интерфейсов в iOS
Курсы по мобильной разработке. 2 лекция. Построение интерфейсов в iOSКурсы по мобильной разработке. 2 лекция. Построение интерфейсов в iOS
Курсы по мобильной разработке. 2 лекция. Построение интерфейсов в iOS
 
Rambler.iOS #5: Переходы и передача данных между VIPER модулями
Rambler.iOS #5: Переходы и передача данных между VIPER модулямиRambler.iOS #5: Переходы и передача данных между VIPER модулями
Rambler.iOS #5: Переходы и передача данных между VIPER модулями
 
Viper в ios проектах
Viper в ios проектахViper в ios проектах
Viper в ios проектах
 
Архитектура для автоматизированного тестирования UI
Архитектура для автоматизированного тестирования UIАрхитектура для автоматизированного тестирования UI
Архитектура для автоматизированного тестирования UI
 
The MVC Renaissance | Возрождение MVC
The MVC Renaissance | Возрождение MVCThe MVC Renaissance | Возрождение MVC
The MVC Renaissance | Возрождение MVC
 
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, ControllersШкола-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
 
Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)
Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)
Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на Swift
 
UAFPUG6 - PureMVC
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVC
 
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
 
PureMVC and Papervision
PureMVC and PapervisionPureMVC and Papervision
PureMVC and Papervision
 
Ridgeline 4 Presentation
Ridgeline 4 PresentationRidgeline 4 Presentation
Ridgeline 4 Presentation
 
Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4
 
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
 
Основи використання MVC
Основи використання MVCОснови використання MVC
Основи використання MVC
 
#MBLTdev: Опыт использования MVVM в реальных проектах
#MBLTdev: Опыт использования MVVM в реальных проектах#MBLTdev: Опыт использования MVVM в реальных проектах
#MBLTdev: Опыт использования MVVM в реальных проектах
 
Архитектура мобильных приложений с примерами на Xamarin.Forms [RUSSIAN]
Архитектура мобильных приложений с примерами на Xamarin.Forms [RUSSIAN]Архитектура мобильных приложений с примерами на Xamarin.Forms [RUSSIAN]
Архитектура мобильных приложений с примерами на Xamarin.Forms [RUSSIAN]
 

Viper