Android-разработчик. Продвинутый курс

Курс обеспечивает глубокое погружение в промышленную Android-разработку на языке Kotlin, и за 5 месяцев позволяет прокачать свои навыки с уровня Junior до Middle или Senior Android-разработчика.
Подойдет ли мне этот курс?

Длительность

5 месяцев

Начало

27 сентября

Занятия

Пт 20:00, Вт 20:00

Общая стоимость

50 000 ₽

В месяц

12 500 ₽

В кредит:

12500 ₽ в месяц

Хочу дешевле
Общая стоимость
50 000 ₽
В месяц: 12 500 ₽
В кредит: 50000 ₽
в месяц
Продолжительность
5 месяцев, 4 академических часа в неделю
Пт 20:00, Вт 20:00
Начало занятий
27 сентября
Что даст вам этот курс

Курс рассчитан на Android-разработчиков с опытом работы от 1 года, со знанием Java или Kotlin.

Вы научитесь:

  • Глубоко разбираться в 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 и т.д.




    Глубокое погружение в промышленную Android-разработку

    Весь курс построен на языке Kotlin

    Много практики и живого общения с преподавателями

    Глубокое изучение Gradle, Dagger 2, RxJava 2, а также процесса тестирования Android-приложений

    Выстраивание инфраструктуры "с нуля"

    Проектирование архитектуры приложений

Всё о курсе «Android-разработчик на Kotlin», 18 сентября в 20:00
День Открытых Дверей — отличная возможность узнать подробнее о хардкорной программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения.

Также преподаватель расскажет о своём профессиональном опыте и ответит на вопросы участников. Поэтому если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
Ведет
Антон
Казаков
Предыдущий день открытых дверей
Преподаватели
Антон Казаков
Руководитель направления Android-разработки в Альфа Банк
Денис Журавлев
Android Team Lead в Mediapark
Евгений Козочкин
Android Team Lead (Alfa-Bank)
Артем Первушов
Senior Software Developer (Luxoft)
Окончил магистратуру Казанского авиационного института по специальности «Радиотехника и телекоммуникации».

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

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

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

Преподаватель
Увлекается Android-разработкой с 2011 года. Профессионально находится в этой сфере более 6 лет.

Долгое время работал над созданием приложения «Ultimate Guitar: Аккорды & Табы» — одного из лучших приложений для саморазвития 2018 года по мнению Google Play, а также сохранявшего позицию №1 в рейтинге платных приложений в США. На текущий момент занимает должность Android Team Lead в Mediapark.

Имеет опыт работы с приложениями не только со стороны разработки, но и со стороны маркетинга и продаж. Также участвовал в разработке приложений для компаний «Мегафон» и Burger King, пробовал себя в стартапах и фрилансе.

Начинал карьеру с профессиональной веб-разработки, создавал приложения на iOS, был частью Tortuga Team в качестве разработчика игр.

Любимым приложением, разработанным за карьеру, считает Tonebridge Guitar Effects.

Преподаватель
Окончил кафедру «Прикладная математика и информатика» в МАИ. Профессионально занимается Android-разработкой, начиная с 3-го курса.

Программированием увлекается с 9-го класса, тогда же впервые пересел с Windows на Ubuntu.

Работал во многих noname-стартапах, а также в крупных компаниях: Mail.Ru Group и Lazada. Сейчас занимает позицию тимлида в Android-команде «Альфа-Банка». Развивает архитектуру приложения, оптимизирует процессы, учит людей более осознанно подходить к разработке и видеть весь процесс целиком.

Помимо этого, организует митапы Mobile Talks Android, периодически выступает на различных отраслевых митапах и профессиональных конференциях.

Преподаватель
Окончил Брянский государственный технологический университет (факультет информационных технологий).

Профессионально занимается программированием с 2010 года. Возглавлял IT-отдел в «Уралсибе», работал системным архитектором в «ЛАНИТ», «Ай-Теко», Uventex Inc. Разрабатывал zakupki.gov, kupivip, личный кабинет продавца в «Почте России».

Преподавал в «Иннополис», МГТУ и «Люксофт». Сертифицированный специалист Android ATC. На текущий момент занимает должность Senior Software Developer в Luxoft.

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

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

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

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

Преподаватель
Денис Журавлев
Android Team Lead в Mediapark
Увлекается Android-разработкой с 2011 года. Профессионально находится в этой сфере более 6 лет.

Долгое время работал над созданием приложения «Ultimate Guitar: Аккорды & Табы» — одного из лучших приложений для саморазвития 2018 года по мнению Google Play, а также сохранявшего позицию №1 в рейтинге платных приложений в США. На текущий момент занимает должность Android Team Lead в Mediapark.

Имеет опыт работы с приложениями не только со стороны разработки, но и со стороны маркетинга и продаж. Также участвовал в разработке приложений для компаний «Мегафон» и Burger King, пробовал себя в стартапах и фрилансе.

Начинал карьеру с профессиональной веб-разработки, создавал приложения на iOS, был частью Tortuga Team в качестве разработчика игр.

Любимым приложением, разработанным за карьеру, считает Tonebridge Guitar Effects.

Преподаватель
Евгений Козочкин
Android Team Lead (Alfa-Bank)
Окончил кафедру «Прикладная математика и информатика» в МАИ. Профессионально занимается Android-разработкой, начиная с 3-го курса.

Программированием увлекается с 9-го класса, тогда же впервые пересел с Windows на Ubuntu.

Работал во многих noname-стартапах, а также в крупных компаниях: Mail.Ru Group и Lazada. Сейчас занимает позицию тимлида в Android-команде «Альфа-Банка». Развивает архитектуру приложения, оптимизирует процессы, учит людей более осознанно подходить к разработке и видеть весь процесс целиком.

Помимо этого, организует митапы Mobile Talks Android, периодически выступает на различных отраслевых митапах и профессиональных конференциях.

Преподаватель
Артем Первушов
Senior Software Developer (Luxoft)
Окончил Брянский государственный технологический университет (факультет информационных технологий).

Профессионально занимается программированием с 2010 года. Возглавлял IT-отдел в «Уралсибе», работал системным архитектором в «ЛАНИТ», «Ай-Теко», Uventex Inc. Разрабатывал zakupki.gov, kupivip, личный кабинет продавца в «Почте России».

Преподавал в «Иннополис», МГТУ и «Люксофт». Сертифицированный специалист Android ATC. На текущий момент занимает должность Senior Software Developer в Luxoft.

Преподаватель
Минимальные знания
  • Опыт разработки под Android от 1 года
  • Знание Java Core или Kotlin
  • Знакомство с системой контроля версий git
  • Знакомство с популярными фреймворками: Dagger, RxJava, Android architecture components
  • Опыт работы с сетью и хранилищами данных в Android
  • Понимание принципов RESTful API
Процесс обучения
Всё обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в слаке курса, сдача домашних работ и получение обратной связи от преподавателя.

Вебинары идут дважды в неделю по 1,5 часа. Все вебинары сохраняются и в записи в вашем личном кабинете.

Домашнее задание выдается в среднем одно в неделю, а его выполнение занимает 3-5 часов. Мы горячо призываем заниматься такой самостоятельной работой, так как это поможет вам качественно освоить все изучаемые технологии на практике с поддержкой и обратной связью наших преподавателей.

Возникающие вопросы по материалам лекций, домашним заданиям и по выпускному проекту вы сможете задавать преподавателю в слаке или во время вебинаров.

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

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

Основной упор будет сделан на качество кода, архитектуру проекта, покрытие тестами, безопасность, красивый и аккуратный дизайн, разбиение на модули (по фичам либо по слоям), процесс сборки на CI и доставке apk.

## Например, вы можете использовать следующие API для курсового проекта:

  • API YouTube или другого видеосервиса - тогда в его приложении будет подключен ExoPlayer, помимо вышеописанных критериев основной упор будет сделан на воспроизведение видео, сохранение стейта видео и тп.


  • API Ethereal-price или любой другой сервис, который мониторит информацию по курсам криптовалюты. Тогда упор будет сделан на кастомные вью с графиками, их скорость и интерактивность.


  • API Imgur или любой другой фоторедактор (клон инстаграмма). В этом случае, упор будет сделан на скорость работы, удобство использования инструментов и т.д.


## Плюсы такого подхода:
- Вы сразу будете видеть конечную цель курса
- По прохождению курса у вас будет готов проект в GitHub с commit history, который можно упомянуть в резюме

Последний месяц курса посвящен доработке проекта, который вы разрабатывали в течении курса, и консультациям с преподавателем. Вы сможете реализовать недостающие фичи, дописать UI тесты и т.д.
Прошедшие открытые вебинары по курсу
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
Dagger 2 для Android-разработчиков
Антон Казаков
День открытых дверей
24 июня в 20:00
Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 2 недели
Результаты тестирования будут отправлены вам на e-mail, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!
Пройти вступительное тестирование
После обучения вы

  • заберете с собой полный комплект обучающих материалов: видеозаписи всех вебинаров, презентации к занятиям, исходные коды программ;

  • сохраните пример разработанного приложения;

  • получите сертификат о прохождении курса;

  • получите приглашение пройти собеседование в компаниях-партнерах (эту возможность получают самые успешные студенты).

Дата выдачи сертификата: 2 апреля 2020 года
Ваш сертификат

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Android-разработчик. Продвинутый курс»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Android-разработчик. Продвинутый курс»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.
Общая стоимость
50 000 ₽
В месяц: 12 500 ₽
В кредит: ₽ в месяц
Продолжительность
5 месяцев
Начало занятий
27 сентября