Конференция для разработчиков мобильных приложений

Пишем тестируемый кодТехнологии Android

Доклад принят в программу конференции
Евгений Мацюк

Занимаюсь Android-разработкой с 2012 года. На данный момент являюсь ведущим разработчиком, в чью компетенцию также входят вопросы построения архитектуры, внедрения новых инструментов и подходов.
Имею опыт внедрения:
Новых подходов — Clean Architecture, MVP, DI,
Новых инструментов — Dagger 2, RxJava, EventBus и прочих.
Тестирования — JUnit4, Mockito, Robolectric, Espresso, написание юнит-тестов, интеграционных тестов

1. Обзор паттернов и средств, которые применялись для построения архитектуры android приложений.
2. Обзор "новых старых" паттернов программирования, которые сейчас модны в построении архитектуры — Clean architecture, MVP, MVVM, DI. Краткий их обзор, чем они лучше/хуже предыдущих паттернов.
3. Обзор новых инструментов, которые сейчас используются при написании приложений — Dagger 2, RxJava и других.
4. Как все эти паттерны и инструменты помогут нам написать "тестируемый код".
5. Рассмотрение самых различных примеров, которые помогут понять, как конкретную задачу необходимо декомпозировать на различные уровни ответственности (какая часть должна быть в data, какая в business, какая в ui), и как должно происходить взаимодействие этих уровней. И как тесты помогают "выпрямлять" архитектуру.

Мотивация: MVP, Clean architecture и т.д. — это все очень хорошо, но создается такое ощущение, что у каждого разработчика свой способ реализации данных паттернов. И к своей реализации он приходит через определенную боль.Для тех, кто только начинает пробовать, существует проблема. Нигде нет конкретных, жизненных примеров, которые чуть более сложнее, чем тривиальные, как писать, да и вообще, с чего начинать.

В своем докладе я хочу на более сложных примерах показать, как необходимо писать, а точнее, как следует думать, чтобы писать хороший, качественный и тестируемый код. Каждый пример будет разобран "на молекулы" .

Доклад будет полезен абсолютно всем android разработчикам.

Другие доклады секции Технологии Android