Всё обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в слаке курса, сдача домашних работ и получение обратной связи от преподавателя. Вебинары идут дважды в неделю по 1,5 часа. Все вебинары сохраняются и в записи в вашем личном кабинете.
Домашнее задание выдается в среднем одно в неделю, а его выполнение занимает 3-5 часов. Мы горячо призываем заниматься такой самостоятельной работой, так как это поможет вам качественно освоить все изучаемые технологии на практике с поддержкой и обратной связью наших преподавателей.
Возникающие вопросы по материалам лекций, домашним заданиям и по выпускному проекту вы сможете задавать преподавателю в слаке или во время вебинаров.
Курс длится 5 месяцев, финальный месяц отводится для выполнения проектной работы до сдачи домашних заданий и вопросов преподавателям. Выполнение проектной работы помогает усвоению практических навыков, а тема проекта отдельно выносится в сертификат. Во время работы над проектом студенты получают консультации и обратную связь от преподавателей в слаке группы и на проектных занятиях.
Необходимая подготовка
- Опыт разработки под Android от 1 года.
- Знание Java Core или Kotlin.
- Знакомство с системой контроля версий git.
- Знакомство с популярными фреймворками: Dagger, RxJava, Android architecture components.
- Опыт работы с сетью и хранилищами данных в Android.
- Понимание принципов RESTful API.
Программа
- Kotlin.
- Architecture.
- View.
- Data.
- Testing.
- Build process.
- Проектная работа.
Чему вы научитесь
- Глубоко разбираться в Android SDK. Разница между junior- и senior-разработчиками в том, что первый может реализовать какую-то фичу, а второй может объяснить, что скрывается за каждой строкой кода этой фичи, найти потенциальные проблемные места и оптимизировать их. Вы узнаете, что происходит внутри классов и методов Android SDK, сможете заметно ускорить свое приложение, выбрать оптимальный алгоритм шифрования для вашего приложения, и организовать безопасное хранилище секретных данных.
- Организовывать инфраструктуру. Разворачивать системы continuous integration и continuous delivery, выстраивать git flow, поднимать Docker-контейнеры и Jenkins внутри них. Научитесь внедрять и настраивать линтеры и чекстайлы для проверки качества кода. Сможете писать свои Gradle таски и плагины для автоматизации и оптимизации процессов сборки и тестирования.
- Проектировать архитектуру приложения. Вы узнаете сильные и слабые места паттернов и архитектурных решений, научитесь правильно выбирать архитектурный паттерн для вашего приложения. Освоите GoF, MV* шаблоны для Android и принципы Clean Architecture. Научитесь проектировать мультимодульную архитектуру и проводить рефакторинг legacy кода.
- Тестировать приложения. Недостаточно просто уметь писать тесты. Важно приучиться писать надежный и протестированный код, интеграционные тесты и UI-тесты. Рассмотрим популярные фреймворки для тестирования и подходы к написанию тестов.
- Использовать современные библиотеки и фреймворки. На профессиональном уровне освоите Dagger 2 и RxJava 2, сможете правильно организовывать DI в приложении с использованием Dagger 2, писать собственные операторы в RxJava и т.д