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-приложений

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

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

Dagger 2 для Android-разработчиков, 20 июня в 20:00
Знакомимся с DI фреймворком Dagger 2: изучаем, как Dagger2 генерирует код, разбираемся с аннотациями JSR 330 и конструкциями Dagger2, учимся использовать Dagger2 в многомодульном приложении и рассматриваем Dagger Android Injector.
Ведет
Антон
Казаков
Всё о курсе «Android-разработчик на Kotlin», 24 июня в 20:00
День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения. Также преподаватель расскажет о своём профессиональном опыте и ответит на вопросы участников. Поэтому если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
Ведет
Антон
Казаков
Преподаватели
Антон Казаков
Руководитель направления Android-разработки в Альфа Банк
Денис Журавлев
Senior Android-разработчик в E-Legion
Окончил магистратуру Казанского авиационного института по специальности «Радиотехника и телекоммуникации».

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

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

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

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

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

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

Любимым приложением, разработанным за карьеру, считает Tonebridge Guitar Effects.
Антон
Казаков
Денис
Журавлев
Преподаватели
Антон Казаков
Руководитель направления Android-разработки в Альфа Банк
Окончил магистратуру Казанского авиационного института по специальности «Радиотехника и телекоммуникации».

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

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

Помимо Android-разработки, интересуется бэкенд-разработкой и DevOps-практиками. Любит решать алгоритмические задачи.
Денис Журавлев
Senior Android-разработчик в E-Legion
Увлекается Android-разработкой с 2011 года. Профессионально находится в этой сфере более 6 лет.

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

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

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

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

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

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

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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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