SlideShare a Scribd company logo
1 of 30
Download to read offline
А Р Х И Т Е К Т У Р Ы I O S
П Р И Л О Ж Е Н И Й
Д М И Т Р И Й Ч Е Р В Я К О В
I O S -
D E V E LO P E R
AT H AU L M O N T
П Л А Н
• Архитектура в IOS
• MVC
• MVP
• MVVM
• VIPER
• Выводы
С П Е Ц И Ф И К А I O S
А Р Х И Т Е К Т У Р Ы
Экраны
Разные
экраны
Бизнес
логика
9 5 % П Р О Ц Е Н Т О В В Р Е М Е Н И
I O S Р А З Р А Б О Т Ч И К И
Д В И Г А Ю Т В Ь Ю Ш К И И
К Р А С Я Т К Н О П К И
– Е Г О Р Б У Г А Е Н К О
“Вначале был MVC”
MODEL
MODELVIEW
MODELVIEW
CONTROLLER
UpdatesUpdates
Sends
User
Actons
Notifies
П Л Ю С Ы
• Простой
• Скорость разработки
M A S S I V E V I E W C O N T RO L L E R
• Сложно дебажить
• Порог входа
• God object
• Тесты
M O D E L
V I E W
P R E S E N T E R
M V P
Ч Т О Е С Л И
U I V I E WC O N T RO L L E R
Н А С А М О М Д Е Л Е
V I E W
MODELVIEW
CONTROLLER
UpdatesUpdates
Sends
User
Actons
Notifies
PASSIVE
VIEW
PRESENTER
Owns
Sends
User
Actons
П Л Ю С Ы
Разделение
ответственностей
Тестируемость
М И Н У С Ы
Количество кода
M O D E L
V I E W
V I E W M O D E L
M V V M
MODEL
UpdatesUpdates
Notifies
VIEW
VIEW MODEL
Owns
Sends
User
Actons
Owns
Data and
User
Actions
Bindings
B I N D I N G
• Functional Reactive Programming
• RxSwift
• ReactiveCocoa
F R P + M V V M
• Разделение ответственностей
• Скорость разработки
• Количество кода
• Overhead FRP
• Порог входа
V I E W
I N T E R AC TO R
P R E S E N T E R
E N T I T Y
RO U T E R
V I P E R
V I P E R
• Clean architecture
• Mutual Mobile
• Rambler
VIEW
PRESENTER
ROUTER
INTERACTOR
ENTITY
Send
Action
Updates
Asks
For
Updates
Notifies
Knows
V I P E R
• Реюз
• Поддержка
• Количество кода
• Порог входа
MVC
MVVM-C
MVC+VS
MAVB
TEA
VIPER
Clean architecture
MVP MVVM
RIB SOA
Modern MVC
MVVM+C
VIP
Flux
Redux
Ч Т О И С П О Л Ь З О В А Т Ь
9 5 % П Р О Ц Е Н Т О В В Р Е М Е Н И
I O S Р А З Р А Б О Т Ч И К И
Д В И Г А Ю Т В Ь Ю Ш К И И
К Р А С Я Т К Н О П К И
• https://www.youtube.com/watch?
v=omdWQ90-Dhk
• https://habr.com/ru/company/badoo/blog/
281162/
• https://www.youtube.com/watch?
v=fucY0aGgx1Y
• https://habr.com/en/post/273061/

More Related Content

Similar to Архитектуры ios приложений

Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"Fwdays
 
Станислав Цыганов "SOA в iOS разработке"
Станислав Цыганов "SOA в iOS разработке"Станислав Цыганов "SOA в iOS разработке"
Станислав Цыганов "SOA в iOS разработке"IT Event
 
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNext
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNextВнедрение зависимостей в ASP.NET MVС и ASP.NET vNext
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNextGoSharp
 
Moxy. Из чего состоит и как этим пользоваться
Moxy. Из чего состоит и как этим пользоватьсяMoxy. Из чего состоит и как этим пользоваться
Moxy. Из чего состоит и как этим пользоватьсяYuri Shmakov
 
Inversion of Control в .NET
Inversion of Control в .NETInversion of Control в .NET
Inversion of Control в .NETDotNetConf
 
Практика DevOps в крупных организациях
Практика DevOps в крупных организацияхПрактика DevOps в крупных организациях
Практика DevOps в крупных организацияхSoftmart
 
Vblock от VCE: опыт первого внедрения в Украине.
Vblock от VCE: опыт первого внедрения в Украине. Vblock от VCE: опыт первого внедрения в Украине.
Vblock от VCE: опыт первого внедрения в Украине. Cisco Russia
 
Готовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации ТестированияГотовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации ТестированияCOMAQA.BY
 
Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...Дмитрий Карпенко
 
внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...Дмитрий Карпенко
 
Dependency Injection. Как сказать всё, не говоря ничего. Кожевников Дмитрий. ...
Dependency Injection. Как сказать всё, не говоря ничего. Кожевников Дмитрий. ...Dependency Injection. Как сказать всё, не говоря ничего. Кожевников Дмитрий. ...
Dependency Injection. Как сказать всё, не говоря ничего. Кожевников Дмитрий. ...Dev2Dev
 
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовOlesya_V
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтендViacheslav Slinko
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Ontico
 
AgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в БанкеAgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в БанкеМихаил Кононов
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summaryAnton Zhukov
 
Технический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATТехнический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATCodeFest
 
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25MoscowJS
 

Similar to Архитектуры ios приложений (20)

Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
Станислав Цыганов "SOA в iOS разработке"
Станислав Цыганов "SOA в iOS разработке"Станислав Цыганов "SOA в iOS разработке"
Станислав Цыганов "SOA в iOS разработке"
 
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNext
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNextВнедрение зависимостей в ASP.NET MVС и ASP.NET vNext
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNext
 
Moxy. Из чего состоит и как этим пользоваться
Moxy. Из чего состоит и как этим пользоватьсяMoxy. Из чего состоит и как этим пользоваться
Moxy. Из чего состоит и как этим пользоваться
 
Inversion of Control в .NET
Inversion of Control в .NETInversion of Control в .NET
Inversion of Control в .NET
 
Практика DevOps в крупных организациях
Практика DevOps в крупных организацияхПрактика DevOps в крупных организациях
Практика DevOps в крупных организациях
 
Do it yourself profiler
Do it yourself profilerDo it yourself profiler
Do it yourself profiler
 
Vblock от VCE: опыт первого внедрения в Украине.
Vblock от VCE: опыт первого внедрения в Украине. Vblock от VCE: опыт первого внедрения в Украине.
Vblock от VCE: опыт первого внедрения в Украине.
 
Готовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации ТестированияГотовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации Тестирования
 
Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
 
внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
 
Dependency Injection. Как сказать всё, не говоря ничего. Кожевников Дмитрий. ...
Dependency Injection. Как сказать всё, не говоря ничего. Кожевников Дмитрий. ...Dependency Injection. Как сказать всё, не говоря ничего. Кожевников Дмитрий. ...
Dependency Injection. Как сказать всё, не говоря ничего. Кожевников Дмитрий. ...
 
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектов
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
 
AgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в БанкеAgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в Банке
 
Wgforge CI/CD
Wgforge CI/CDWgforge CI/CD
Wgforge CI/CD
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
 
Технический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATТехнический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&AT
 
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
 

Архитектуры ios приложений