Зміст
Введение в курс
Цели курса:
- Изучить проблемы и вопросы, возникающие при разработке современных клиент-серверных приложений, а также способы их решения.
- Познакомить участников с наиболее актуальными и функциональными подходами к построению архитектуры приложений.
- Научиться применять рассмотренные подходы на практике и реализовывать качественные, стабильные и протестированные приложения
Формат курса
Курс состоит из 8 занятий. Каждое занятие рассчитано на 2-2,5 часа и включает в себя лекцию по рассматриваемой теме примерно на 60-80 минут, практику на 40-50 минут и, возможно, дополнительную лекцию на 15-20 минут.
Практика включает в себя либо работу над отдельным проектом для данной темы.
Рассматриваемые темы:
- Введение в архитектуру клиент-серверных Android-приложений
- Средства обеспечения многопоточной работы
- Классические паттерны A/B/C для клиент-серверного взаимодействия
- Фреймворк RxJava
- Clean Architecture – чистая архитектура
- Паттерн MVP – Model – View – Presenter
- Тестирование Android-приложений
- DataBinding и MVVM
Дополнительные темы:
- Проблема Backpressure в RxJava и способы ее решения
- Библиотека Google Agera для построения архитектуры приложений
- Библиотека Mosby для построения архитектуры приложений
- Методология TDD (test-driven development)
- Dagger 2 как библиотека для реализации принципа Dependency Injection
Список лекций курса:
- Лекция 1. Введение в архитектуру клиент-серверных андроид-приложений
- Лекция 2 Курса по архитектуре андроид-приложений. Паттерны A/B/C
- Лекция 3 по архитектуре андроид приложения. Знакомство с RxJava
- Лекция 4 по архитектуре андроид приложения. Clean Arcitecture
- Лекция 5 по архитектуре андроид приложения. Паттерн MVP
- Лекция 6 по архитектуре Android. Unit тестирование. Test Driven Development
- Лекция 7 по архитектуре Android. Инструментальное и UI тестирование. Espresso. Dagger 2
- Лекция 8 по архитектуре Android. Data Binding + MVVM
- Лекция 9 по архитектуре Android. Заключение
Разрабатываемые приложения:
- На первых двух занятиях будет реализовано погодное приложение с использованием лоадеров и паттернов A/B/C. Используемое API.
- На 3-4 занятиях будет реализовано приложение для получения информации о самых интересных фильмах с помощью RxJava и подходов Clean Architecture. Используемое API.
- На 5-7 занятиях будет реализовано приложение для гитхаба с использованием MVP, RxJava и с написанием тестов. Используемое API.
- На 8 занятие для просмотра информации о планетах с использованием DataBinding и паттерна MVVM. Используемое API.
Используемые средства для разработки:
- Android Studio в качестве IDE, stable channel (текущая версия 2.3). Скачать можно здесь.
- Gradle в качестве системы сборки. Используется версия 3.0. Скачать можно здесь (complete distribution).
Используемые библиотеки для разработки:
- Все стандартные support библиотеки.
- OkHttp версии 3.4.1 и Retrofit версии 2.1.0 для работы с сетью.
- RxJava версии 1.1.10 и RxAndroid версии 1.2.1 для работы с многопоточностью.
- Realm в качестве основной базы данных.
- ButterKnife для работы с View.
- Picasso для работы с изображениями.
- Retrolambda для использования лямбда-выражений.
- Альтернативная библиотека для работы с БД для одного занятия.
- Остальные используемые библиотеки будут при необходимости рассмотрены в ходе курса.
Все примеры кода хранятся в репозитории. Вы можете убедиться, что у вас все настроено корректно и готово к работе, запустив проект TestApp.
Ссылка на источник