Проходил 24 июня в 20:00

День открытых дверей
Всё о курсе «Android-разработчик на Kotlin»

День открытых дверей онлайн

День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения. Также преподаватель расскажет о своём профессиональном опыте и ответит на вопросы участников. Поэтому если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
Преподаватель
Антон Казаков

Запись

О курсе

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

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

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

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

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

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

F.A.Q.: Наиболее часто задаваемые вопросы:

Нужно ли оплачивать обучение до Дня открытых дверей, если я хочу гарантированно попасть в группу?
Да, мы рекомендуем заранее оплатить обучение, чтобы гарантированно попасть в группу. В период проведения Дня открытых дверей резко возрастает количество желающих обучаться, поэтому может случиться так, что к окончанию Дня открытых дверей мест в группе не останется
Кто будет проводить День открытых дверей?
Проводить День открытых дверей будет преподаватель курса.
Как принять участие в Дне открытых дверей?
Для того, чтобы принять участие в Дне открытых дверей, оставьте свой e-mail в поле регистрации на мероприятие. Перед началом Дня открытых дверей мы пришлем вам ссылку, пройдя по которой, вы сможете присоединиться к вебинару.
Какие вопросы будем обсуждать на Дне открытых дверей?
На дне открытых дверей мы поговорим о проекте OTUS (о программе курса, почему мы не принимаем в группы новичков, почему учиться у нас интересно, но сложно), карьерных перспективах выпускников (почему вероятность карьерного роста у лучших студентов стремится к 100%), учебном процессе (оплатах, оценке знаний, сертификатах и прочих аспектах). Также ведущий мероприятия с радостью ответит на все ваши вопросы.