SlideShare a Scribd company logo
1 of 36
Clean architecture on Android
Eugene Dudnik
@Ciklum
Agenda
Ожидание от архитектуры
Варианты архитектуры
Различия между вариантами
Clean Architecture
Ожидание от архитектуры
Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
● гибкость (компонентность)
Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
● гибкость (компонентность)
● расширяемость
Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
● гибкость (компонентность)
● расширяемость
● масштабируемость процесса разработки
Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
● гибкость (компонентность)
● расширяемость
● масштабируемость процесса разработки
● тестируемость
Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
● гибкость (компонентность)
● расширяемость
● масштабируемость процесса разработки
● тестируемость
● возможность повторного использования компонентов
Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
● гибкость (компонентность)
● расширяемость
● масштабируемость процесса разработки
● тестируемость
● возможность повторного использования компонентов
● читаемость кода
Ожидание от архитектуры
Серебряная
пуля
Ожидание от архитектуры
Серебряная
пуля
Варианты архитектуры
Варианты архитектуры
● SWD(so will descend)
Варианты архитектуры
● SWD(so will descend)
● MVC
Варианты архитектуры
● SWD(so will descend)
● MVC
● MVP
Варианты архитектуры
● SWD(so will descend)
● MVC
● MVP
● Clean architecture
MVC
MVC MVP
Различия
Различия
● В MVP View не имеет доступа к Model
Различия
● В MVP View не имеет доступа к Model
● В MVP Presenter привязан ТОЛЬКО к одной View
Различия
● В MVP View не имеет доступа к Model
● В MVP Presenter привязан ТОЛЬКО к одной View
● В MVP View должно быть реализовано максимально пассивным
компонентом
Ссылки для изучения MVP
● http://hannesdorfmann.com/mosby/getting-started/
● https://code.tutsplus.com/series/how-to-adopt-model-view-presenter-on-
android--cms-1012
● https://github.com/googlesamples/android-architecture
Clean architecture
Clean architecture
Выделяют 3 основных слоя:
● внешний (implementation layer)
● средний (interface adapter layer)
● внутренний (business logic layer)
ВАЖНО (Dependency rule)
Внутренние слои ничего не должны знать про внешние
слои
Clean architecture
Implementation layer
Все что делается средствами Android SDK (framework
specific code)должно относиться к этому слою. Framework
specific code должен включать каждую строчку кода,
которая не относится к решению задачи приложения.
Примеры
UI, Intents, Storage, Networks
Clean architecture
Implementation layer
● UI - Activities, Fragments, Adapters
● Storage - ContentProvider, ORM
● Network - Retrofit
Clean architecture
Interface layer
Connector между бизнес логикой приложения(business
layer) и framework specific code
Примеры
Presenters, Converters
Clean architecture
Interface layer
Presenters - events from UI(user click), serves as callback from
inner layer’s(Interactors)
Converters - convert models
Clean architecture
Business layer
Вся логика, относящаяся к решению проблем должны
быть в этом слое. Ничего из Android SDK в нем не должно
быть. Код должен запускаться без эмулятора.
Примеры
Interactors, Models, Repositories, Executors
Clean architecture
Business layer
Interactors - бизнес логика приложения. Выполняются в
бэкграунде и возвращают эвенты во внешние слои
используя callback’и
Models - модели для бизнес логики
Repositories - only contains interface for database or some
other outer layer implements
Executor - this package contains code for making Interactors
run in background by using working thread executor
Clean architecture
Любой layer ответственен за конвертацию моделей для
layer’ов нижнего уровня перед тем как они начнут
использовать их.
Но нижние layer’ы не должны иметь доступа к моделям
верхнего layer.
Хотя внешние layer’ы могут использовать модели из
внутренних layer’ов.
Ссылки для изучения
● https://medium.com/@dmilicic/a-detailed-guide-on-developing-android-
apps-using-the-clean-architecture-pattern-d38d71e94029#.y5v4gcwb4
● https://github.com/dmilicic/Android-Clean-Boilerplate/tree/example
● https://github.com/android10/Android-CleanArchitecture
Thank you
Eugene Dudnik
Twitter : Eugene_Dudnik
Google+ : +EugeneDudnik

More Related Content

What's hot

Plugin development for intelli j platform
Plugin development for intelli j platformPlugin development for intelli j platform
Plugin development for intelli j platformchashnikov
 
Общие темы. Тема 01.
Общие темы. Тема 01.Общие темы. Тема 01.
Общие темы. Тема 01.Igor Shkulipa
 
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...it-people
 
Tech talk Angular 2
Tech talk Angular 2Tech talk Angular 2
Tech talk Angular 2DA-14
 
О разработке десктопных приложений / About desktop development
О разработке десктопных приложений / About desktop developmentО разработке десктопных приложений / About desktop development
О разработке десктопных приложений / About desktop developmentAlexander Granin
 
Azure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольAzure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольАлександр Шамрай
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеАлександр Шамрай
 
Continuous integration with TeamCity
Continuous integration with TeamCityContinuous integration with TeamCity
Continuous integration with TeamCityAndrei Ivanov
 
Azure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребностиAzure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребностиАлександр Шамрай
 
Приемочные тесты на огурце
Приемочные тесты на огурцеПриемочные тесты на огурце
Приемочные тесты на огурцеAlexander Byndyu
 
SCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max KolodezniySCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max KolodezniyAlexey Krivitsky
 
AgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в БанкеAgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в БанкеМихаил Кононов
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovMaxim Tsepkov
 
от каждого по потребностям, каждому — по Agile
от каждого по потребностям, каждому — по Agileот каждого по потребностям, каждому — по Agile
от каждого по потребностям, каждому — по AgileAlexey Deryushkin
 
Agile: разработка + тестирование
Agile: разработка + тестированиеAgile: разработка + тестирование
Agile: разработка + тестированиеAlexander Byndyu
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYPavel Tsukanov
 
Особенности тестирования веб приложение
Особенности тестирования веб приложениеОсобенности тестирования веб приложение
Особенности тестирования веб приложениеDressTester
 
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко АлексейSolit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексейsolit
 

What's hot (20)

Plugin development for intelli j platform
Plugin development for intelli j platformPlugin development for intelli j platform
Plugin development for intelli j platform
 
Общие темы. Тема 01.
Общие темы. Тема 01.Общие темы. Тема 01.
Общие темы. Тема 01.
 
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
 
Tech talk Angular 2
Tech talk Angular 2Tech talk Angular 2
Tech talk Angular 2
 
О разработке десктопных приложений / About desktop development
О разработке десктопных приложений / About desktop developmentО разработке десктопных приложений / About desktop development
О разработке десктопных приложений / About desktop development
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Azure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольAzure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контроль
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестирование
 
Continuous integration with TeamCity
Continuous integration with TeamCityContinuous integration with TeamCity
Continuous integration with TeamCity
 
Azure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребностиAzure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребности
 
Приемочные тесты на огурце
Приемочные тесты на огурцеПриемочные тесты на огурце
Приемочные тесты на огурце
 
SCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max KolodezniySCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max Kolodezniy
 
User stories and use cases - Клаудия Заика
User stories and use cases - Клаудия ЗаикаUser stories and use cases - Клаудия Заика
User stories and use cases - Клаудия Заика
 
AgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в БанкеAgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в Банке
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkov
 
от каждого по потребностям, каждому — по Agile
от каждого по потребностям, каждому — по Agileот каждого по потребностям, каждому — по Agile
от каждого по потребностям, каждому — по Agile
 
Agile: разработка + тестирование
Agile: разработка + тестированиеAgile: разработка + тестирование
Agile: разработка + тестирование
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
 
Особенности тестирования веб приложение
Особенности тестирования веб приложениеОсобенности тестирования веб приложение
Особенности тестирования веб приложение
 
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко АлексейSolit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
 

Viewers also liked

RESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based KatharsisRESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based KatharsisKeith Moore
 
Generics. PECS
Generics. PECSGenerics. PECS
Generics. PECSUptech
 
Android getting started
Android getting startedAndroid getting started
Android getting startedUptech
 
Android secure offline storage - CC Mobile
Android secure offline storage - CC MobileAndroid secure offline storage - CC Mobile
Android secure offline storage - CC MobileJWORKS powered by Ordina
 
Android Camp 2011 @ Silicon India
Android Camp 2011 @ Silicon IndiaAndroid Camp 2011 @ Silicon India
Android Camp 2011 @ Silicon IndiaAvinash Birnale
 
Tuberculosis Pulmonar
Tuberculosis PulmonarTuberculosis Pulmonar
Tuberculosis PulmonarFAMEN
 
Beer Bottle Night Lamp
Beer Bottle Night LampBeer Bottle Night Lamp
Beer Bottle Night LampOmer Kilic
 
Analysis and research of system security based on android
Analysis and research of system security based on androidAnalysis and research of system security based on android
Analysis and research of system security based on androidRavishankar Kumar
 
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYYMail.ru Group
 
Reactive Distributed Applications with Vert.x
Reactive Distributed Applications with Vert.xReactive Distributed Applications with Vert.x
Reactive Distributed Applications with Vert.xRed Hat Developers
 
Permission in Android Security: Threats and solution
Permission in Android Security: Threats and solutionPermission in Android Security: Threats and solution
Permission in Android Security: Threats and solutionTandhy Simanjuntak
 
Clean architecture: Android
Clean architecture: AndroidClean architecture: Android
Clean architecture: Androidintive
 
Vert.x for Microservices Architecture
Vert.x for Microservices ArchitectureVert.x for Microservices Architecture
Vert.x for Microservices ArchitectureIdan Fridman
 

Viewers also liked (17)

RESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based KatharsisRESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based Katharsis
 
Securing Android
Securing AndroidSecuring Android
Securing Android
 
Webinar on Enterprise Security & android
Webinar on Enterprise Security & androidWebinar on Enterprise Security & android
Webinar on Enterprise Security & android
 
Generics. PECS
Generics. PECSGenerics. PECS
Generics. PECS
 
Android getting started
Android getting startedAndroid getting started
Android getting started
 
Android secure offline storage - CC Mobile
Android secure offline storage - CC MobileAndroid secure offline storage - CC Mobile
Android secure offline storage - CC Mobile
 
Android Camp 2011 @ Silicon India
Android Camp 2011 @ Silicon IndiaAndroid Camp 2011 @ Silicon India
Android Camp 2011 @ Silicon India
 
4919_for_Ikoma
4919_for_Ikoma4919_for_Ikoma
4919_for_Ikoma
 
Tuberculosis Pulmonar
Tuberculosis PulmonarTuberculosis Pulmonar
Tuberculosis Pulmonar
 
COLOMBIA NUESTRA TIERRA
COLOMBIA NUESTRA TIERRACOLOMBIA NUESTRA TIERRA
COLOMBIA NUESTRA TIERRA
 
Beer Bottle Night Lamp
Beer Bottle Night LampBeer Bottle Night Lamp
Beer Bottle Night Lamp
 
Analysis and research of system security based on android
Analysis and research of system security based on androidAnalysis and research of system security based on android
Analysis and research of system security based on android
 
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
 
Reactive Distributed Applications with Vert.x
Reactive Distributed Applications with Vert.xReactive Distributed Applications with Vert.x
Reactive Distributed Applications with Vert.x
 
Permission in Android Security: Threats and solution
Permission in Android Security: Threats and solutionPermission in Android Security: Threats and solution
Permission in Android Security: Threats and solution
 
Clean architecture: Android
Clean architecture: AndroidClean architecture: Android
Clean architecture: Android
 
Vert.x for Microservices Architecture
Vert.x for Microservices ArchitectureVert.x for Microservices Architecture
Vert.x for Microservices Architecture
 

Similar to Clean architecture on Android

Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 
Презентация по дисциплине технология разработки программного обеспечения
Презентация по дисциплине технология разработки программного обеспеченияПрезентация по дисциплине технология разработки программного обеспечения
Презентация по дисциплине технология разработки программного обеспеченияRauan Ibraikhan
 
презентация по дисциплине технология разработки программного обеспечения
презентация по дисциплине технология разработки программного обеспеченияпрезентация по дисциплине технология разработки программного обеспечения
презентация по дисциплине технология разработки программного обеспеченияRauan Ibraikhan
 
Слоистая архитектура
Слоистая архитектураСлоистая архитектура
Слоистая архитектураyiiconf
 
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахКак совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахDanil Dintsis, Ph. D., PgMP
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rusMaxim Shaptala
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenchesGleb Rybalko
 
«трудности при разработке сложных распределённых систем на Java. способы реше...
«трудности при разработке сложных распределённых систем на Java. способы реше...«трудности при разработке сложных распределённых систем на Java. способы реше...
«трудности при разработке сложных распределённых систем на Java. способы реше...MDDay_4
 
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...Anatoly Simkin
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...RIF-Technology
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileKairat Yussupov
 
САПР и ГИС
САПР и ГИССАПР и ГИС
САПР и ГИСSoftline
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
 
Разделение ответственности в заказной разработке
Разделение ответственности в заказной разработкеРазделение ответственности в заказной разработке
Разделение ответственности в заказной разработкеCUSTIS
 

Similar to Clean architecture on Android (20)

Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
Презентация по дисциплине технология разработки программного обеспечения
Презентация по дисциплине технология разработки программного обеспеченияПрезентация по дисциплине технология разработки программного обеспечения
Презентация по дисциплине технология разработки программного обеспечения
 
презентация по дисциплине технология разработки программного обеспечения
презентация по дисциплине технология разработки программного обеспеченияпрезентация по дисциплине технология разработки программного обеспечения
презентация по дисциплине технология разработки программного обеспечения
 
Слоистая архитектура
Слоистая архитектураСлоистая архитектура
Слоистая архитектура
 
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахКак совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rus
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
«трудности при разработке сложных распределённых систем на Java. способы реше...
«трудности при разработке сложных распределённых систем на Java. способы реше...«трудности при разработке сложных распределённых систем на Java. способы реше...
«трудности при разработке сложных распределённых систем на Java. способы реше...
 
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Sef2009
Sef2009Sef2009
Sef2009
 
Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)
 
Sep reqm-lec1
Sep reqm-lec1Sep reqm-lec1
Sep reqm-lec1
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
САПР и ГИС
САПР и ГИССАПР и ГИС
САПР и ГИС
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
 
Разделение ответственности в заказной разработке
Разделение ответственности в заказной разработкеРазделение ответственности в заказной разработке
Разделение ответственности в заказной разработке
 

More from GDG Odessa

BDSM or start programming after Angular one
BDSM or start programming after Angular oneBDSM or start programming after Angular one
BDSM or start programming after Angular oneGDG Odessa
 
Angular 2 vs Angular 1
Angular 2 vs Angular 1Angular 2 vs Angular 1
Angular 2 vs Angular 1GDG Odessa
 
Release Engineering
Release EngineeringRelease Engineering
Release EngineeringGDG Odessa
 
Angular 1.x in action now
Angular 1.x in action nowAngular 1.x in action now
Angular 1.x in action nowGDG Odessa
 
Понимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуПонимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуGDG Odessa
 
Жизненный цикл React приложений
Жизненный цикл React приложенийЖизненный цикл React приложений
Жизненный цикл React приложенийGDG Odessa
 
React + Redux. Опыт использования
React + Redux. Опыт использованияReact + Redux. Опыт использования
React + Redux. Опыт использованияGDG Odessa
 

More from GDG Odessa (9)

Rx android
Rx androidRx android
Rx android
 
Kotlin
KotlinKotlin
Kotlin
 
BDSM or start programming after Angular one
BDSM or start programming after Angular oneBDSM or start programming after Angular one
BDSM or start programming after Angular one
 
Angular 2 vs Angular 1
Angular 2 vs Angular 1Angular 2 vs Angular 1
Angular 2 vs Angular 1
 
Release Engineering
Release EngineeringRelease Engineering
Release Engineering
 
Angular 1.x in action now
Angular 1.x in action nowAngular 1.x in action now
Angular 1.x in action now
 
Понимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуПонимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружу
 
Жизненный цикл React приложений
Жизненный цикл React приложенийЖизненный цикл React приложений
Жизненный цикл React приложений
 
React + Redux. Опыт использования
React + Redux. Опыт использованияReact + Redux. Опыт использования
React + Redux. Опыт использования
 

Clean architecture on Android