20 июня в 20:00

Открытый вебинар
Dagger 2 для Android-разработчиков

Открытый вебинар онлайн

Знакомимся с DI фреймворком Dagger 2: изучаем, как Dagger2 генерирует код, разбираемся с аннотациями JSR 330 и конструкциями Dagger2, учимся использовать Dagger2 в многомодульном приложении и рассматриваем Dagger Android Injector.
Преподаватель
Антон Казаков
Напомнить о мероприятии в календаре

О курсе

Android-разработчик. Продвинутый курс
50 000 ₽
5 месяцев
Начало 27 июня
Курс рассчитан на Android-разработчиков с опытом работы от 1 года, со знанием Java или Kotlin. Вы научитесь:
  • Глубоко разбираться в Android SDK. Разница между junior- и senior-разработчиками в том, что первый может реализовать какую-то фичу, а второй может объяснить, что скрывается за каждой строкой кода этой фичи, найти потенциальные проблемные места и оптимизировать их. Вы узнаете, что происходит внутри …
Программа курса
Модуль 1
Kotlin
Модуль 2
Android Framework
Модуль 3
Architecture
Модуль 4
Testing
Модуль 5
Infrastructure and build processes
Модуль 6
Проектная работа
Kotlin
Kotlin стандартная библиотека. Часть 1
После этого занятия вы сможете оперировать основными конструкциями языка Kotlin JVM, сможете писать код в kotlin стиле, использовать библиотеку anko.
27 июня, 20:00 — 21:30
Лектор: Антон Казаков
Kotlin стандартная библиотека. Часть 2
После этого занятия вы сможете оперировать основными конструкциями языка Kotlin JVM, сможете писать код в kotlin стиле, использовать библиотеку anko.
4 июля, 20:00 — 21:30
Лектор: Антон Казаков
Kotlin coroutines
После занятия вы сможете использовать корутины и каналы для написания асинхронного кода.
8 июля, 20:00 — 21:30
Лектор: Антон Казаков
Android Framework
Advanced Fragment
Child Fragments, Headless Fragments, Fragments communications, Single Activity Application.
После занятия вы сможете применить полученные знания при проектировании приложения, полностью построенного на Фрагментах.
11 июля, 20:00 — 21:30
Лектор: Антон Казаков
Advanced Service
JobService, BoundService, IPC, AIDL, Handler/Messenger
После этого занятия сможете грамотно выбирать необходимую реализацию Android Service исходя из задачи и версии ОС, научитесь выстраивать коммуникации между сервисами, которые работают в разных процессах.
15 июля, 20:00 — 21:30
Лектор: Антон Казаков
Advanced Views
View Lifecycle, measurement, drawing, SurfaceView, Constraint Layout.
После занятия вы сможете применять знания о процессах отрисовки view при создании собственных имплементаций Android View.
18 июля, 20:00 — 21:30
Лектор: Денис Журавлев
Advanced Canvas
Canvas, Bitmap, PorterDuff, Matrix, Path.
После занятия вы сможете использовать возможности Canvas API из Android SDK для рисования сложных оптимизированных view.
22 июля, 20:00 — 21:30
Лектор: Денис Журавлев
Домашние задания: 1
ДЗ
Нарисовать кастомную интерактивную View, используя Canvas, подходящую для вашего приложения..
UI Profiling
GPU profiling, dumpsys, GPS measurement, слои наложения.
После занятия вы сможете использовать различные инструменты для поиска потенциальных узких мест в отрисовке UI и оптимизировать низкопроизводительные решения для быстрой отрисовки ваших приложений.
25 июля, 20:00 — 21:30
Лектор: Денис Журавлев
Network
Interceptors, CallAdapter.Factory, SSL pinning, WebSocket connection, GSON.
После этого занятия вы сможете применять широкие возможности http клиента Retrofit и десериализатора Gson для построения сетевого уровня в своем приложении.
29 июля, 20:00 — 21:30
Лектор: Денис Журавлев
Домашние задания: 1
ДЗ
Добавить сетевой слой в приложение, используя изученные фреймворки.
Security in Android
Android Keystore, Google tink, алгоритмы шифрования в java cipher/android SDK.
После этого занятия вы сможете выбрать оптимальный алгоритм шифрования для вашего случая, сможете организовать безопасное хранилище секретных данных
1 августа, 20:00 — 21:30
Лектор: Денис Журавлев
Домашние задания: 1
ДЗ
Подключить Google tink/ любую другую библиотеку для шифрования и хранения секретных данных. Организовать шифрование и безопасное хранение секретных данных(токенов/секретов)..
Proguard
После занятия вы сможете встроить Proguard обфускацию и оптимизацию в свое приложение.
5 августа, 20:00 — 21:30
Лектор: Антон Казаков
Домашние задания: 1
ДЗ
Подключить Proguard для минификации и обфускации. Написать proguard-rules.pro для вашего приложения..
Reverse Engineering
APKtool, jadx.
После этого занятия вы сможете разобрать .apk файл и проверить код на наличие вредоносных действий.
8 августа, 20:00 — 21:30
Лектор: Антон Казаков
Android studio tips and tricks
После этого занятия вы сможете эффективно использовать возможности Android Studio для профилирования и отладки.
12 августа, 20:00 — 21:30
Лектор: Антон Казаков
Architecture
Design patterns
GoF паттерны, publisher/ subscriber, LRU etc.
После этого занятия вы научитесь применять на практике часто используемые паттерны проектирования из GoF, паттерны многопоточного взаимодействия и синхронизации, кеширования и т.п.
15 августа, 20:00 — 21:30
MV* patterns in Android
Архитектурные паттерны: MVP/ MVVM/MVI.
После занятия вы сможете подбирать нужный архитектурный проект и собирать проект на основе данной архитектуры.
19 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
Выбрать архитектурный паттерн для презентейшен слоя и написать фичу, следуя принципам этого подхода..
Clean Architecture
После занятия вы сможете выстраивать архитектуру в соответствии с принципами Clean Architecture сформулированными Бобом Мартином.
22 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
Добавить домейн слой, содержащий бизнес логику..
Android Architecture Components
LifecycleOwner, LiveData, Room, Paging, ViewModel.
После занятия вы сможете применять AAC в своих приложениях, адаптировать их под конкретно выбранную архитектуру.
26 августа, 20:00 — 21:30
Dagger 2
Dagger2, Dagger2 Android Injector.
Вы сможете правильно организовывать DI в приложении, используя Dagger2.
29 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
Организовать dependency injection в приложении, используя dagger2.
RxJava 2
После занятия вы научитесь применять “недооцененные” операторы, писать собственные операторы, узнаете как работают шедулеры.
2 сентября, 20:00 — 21:30
Multimodule project
Dagger2, Gradle modules.
После этого занятия вы научитесь проектировать мультимодульную архитектуру приложения.
5 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Разбить приложение на gradle модули по фичам.
Code smells + refactoring
После этого занятия вы научитесь находить плохие архитектурные решения, строить roadmap и проводить рефакторинг.
9 сентября, 20:00 — 21:30
Testing
Юнит тесты
JUnit, Hamcrest matchers.
После этого занятия вы сможете покрывать unit тестами ваши классы.
12 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Покрыть бизнес логику вашего приложения Unit тестами, используя фейковые имплементации и стабы..
Интеграционное тестирование на Android
Mockito, Robolectric.
После этого занятия вы сможете использовать фреймворки для интеграционного тестирования на Android, реализовывать различные виды тестовых дублеров, создавать shadowклассы.
16 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Покрыть тестами классы с Android Framework, используя моки в качестве тестовых дублеров. Использовать Robolectric для интеграционных тестов с Android SDK. Необходимо написать свою имплементацию Shadow класса..
Automated UI Testing
Espresso framework, Spoon, MockWebserver .
После этого занятия вы сможете писать UI тесты на Espresso в изолированной среде и запускать их на нескольких эмуляторах параллельно.
19 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Покрыть UI тестами один сценарий. Использовать mockwebserver для моков http респонсов..
Infrastructure and build processes
Инструменты для проверки качества кода
Android Lint, findbugs, checkstyle, find-sec-bugs, ktlint, detekt.
После этого занятия вы сможете внедрять и настраивать линтеры/чекстайлы для проверки качества кода и поиска потенциальных ошибок.
23 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Подключить к своему проекту checkstyle/findbugs/detekt/ktlint любой другой линтер/статический анализатор кода. Сконфигурировтаь его под свои нужды и свой code style..
Системы контроля версий, различные виды ветвлений, код ревью
gitflow, trunk-based development, code review.
По окончанию этого занятия вы сможете сравнить различные типы ветвления в git, научитесь эффективно проводить code review своим коллегам.
26 сентября, 20:00 — 21:30
Gradle. Часть 1
Gradle Task, Gradle Plugin, Gradle DSL syntax.
После занятия вы сможете писать свои Gradle Tasks и Gradle Plugin, подключать их в проект и встраивать в пайплайн.
30 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Написать Gradle task/pipeline из тасок, которая будет выполнять build/checkQuality/test цикл..
Gradle. Часть 2
Gradle Task, Gradle Plugin, Gradle DSL syntax.
После занятия вы сможете писать свои Gradle Tasks и Gradle Plugin, подключать их в проект и встраивать в пайплайн.
3 октября, 20:00 — 21:30
Docker
Docker, DockerRegistry, Docker Compose, Docker CLI.
После занятия вы научитесь собирать докер образ из Dockerfile, поднимать контейнер из образа, взаимодействовать с контейнером.
7 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Собрать Docker образ и запустить из него docke-контейнер с JDK, Android SDK, Gradle. Попробовать собрать свой проект в этом контейнере..
Jenkins
Jenkins, Jenkins pipeline.
После занятия вы научитесь поднимать Jenkins в Docker контейнере и делегировать ему сборку Android проекта.
10 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Поднять docker-контейнер с Jenkins-ом. Настроить job/pipeline, которая будет выполнять gradle tasks build/checkQuality/test в этом контейнере..
Distribution / Crash overview
Fabric,Firebase Crashlytics, AppCentre, Google play.
По окончанию этого занятия вы сможете деплоить ваш .apk файл в системы для дистрибуции приложений.
14 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Добавить Gradle task/pipeline шаг на deploy приложения в Fabric/AppCentre. + deploy apk.-файла в artifactory.
Проектная работа
Консультация по ДЗ и проектам
17 октября, 20:00 — 21:30
Консультация по ДЗ и проектам
21 октября, 20:00 — 21:30
Защита проектов
24 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Сдать ссылку на репозиторий курсового проекта. В репозитории обязательно должен быть заполнен файл Readme.md с описание проекта..

Преподаватель

Антон Казаков
Руководитель направления Android-разработки в Альфа Банк
Окончил магистратуру Казанского авиационного института по специальности «Радиотехника и телекоммуникации».

В Android-разработке с 2013 года. Разрабатывал приложения в небольших стартапах и огромных компаниях, работал в «СберТехе», руководил Android-разработкой в компании «Технократия».

На текущий момент руководит Android-разработкой в «Альфа-Банке». Оптимизирует процессы разработки и поставки фич, работает над тулингом, чтобы облегчить жизнь разработчикам.

Помимо Android-разработки, интересуется бэкенд-разработкой и DevOps-практиками. Любит решать алгоритмические задачи.