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

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

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

5 месяцев

Начало

27 июня

Занятия

Пн 20:00, Чт 20:00

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

50 000 ₽

В кредит:

None ₽ в месяц

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

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

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

  • Глубоко разбираться в Android SDK. Разница между junior- и senior-разработчиками в том, что первый может реализовать какую-то фичу, а второй может объяснить, что скрывается за каждой строкой кода этой фичи, найти потенциальные "бутылочные горлышки" и оптимизировать их. Вы узнаете, что происходит "под капотом" у классов и методов Android SDK, и сможете заметно ускорить любое приложение. Также, вы сможете выбрать оптимальный алгоритм шифрования для вашего приложения, и организовать безопасное хранилище секретных данных.

  • Выстраивать инфраструктуру "с нуля". Разворачивать continuous integration и continuous delivery, выстраивать git flow, поднимать Docker-контейнеры и Jenkins внутри них. Научитесь внедрять и настраивать линтеры и чекстайлы для проверки качества кода. Сможете профессионально собирать свои проекты с помощью Gradle, писать свои собственные Gradle Tasks и Plugins.

  • Проектировать архитектуру приложения. Вы будете знать сильные и слабые места паттернов и архитектурных решений, уметь использовать их там где нужно. Освоите GoF, MV* шаблоны для Android и принцип clean architecture. Научитесь проектировать мультимодульную архитектуру.

  • Тестировать приложения. Недостаточно просто уметь писать тесты. Важно приучиться писать надежный и протестированный код, интеграционные тесты и UI-тесты.

  • Использовать современные библиотеки и фреймворки На профессиональном уровне освоите Dagger 2 и RxJava 2, сможете правильно организовывать DI в приложении с использованием Dagger 2, писать собственные операторы в RxJava и т.д.




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

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

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

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

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

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

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

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

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

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

Работал над созданием приложения «Ultimate Guitar: Аккорды & Табы», долгое время сохранявшего 1ю позицию в рейтинге платных приложений в США, а также ТОП-5 в рейтинге Google Play в категории «саморазвитие» 2018го года.

С «нуля» в одиночку разработал приложение Tonebridge Guitar Effects и выпустил его в релиз, отвечал за всю архитектуру и технические решения.

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

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

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

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

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

Работал над созданием приложения «Ultimate Guitar: Аккорды & Табы», долгое время сохранявшего 1ю позицию в рейтинге платных приложений в США, а также ТОП-5 в рейтинге Google Play в категории «саморазвитие» 2018го года.

С «нуля» в одиночку разработал приложение Tonebridge Guitar Effects и выпустил его в релиз, отвечал за всю архитектуру и технические решения.

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

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

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

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

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

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

Выполнение проектной работы помогает усвоению практических навыков, а тема проекта отдельно выносится в сертификат. Во время работы над проектом студенты получают консультации и обратную связь от преподавателей в слаке группы и на проектных занятиях.
Программа обучения
Модуль 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
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
Security in Android
Android Keystore, Google tink, алгоритмы шифрования в java cipher/android SDK.
После этого занятия вы сможете выбрать оптимальный алгоритм шифрования для вашего случая, сможете организовать безопасное хранилище секретных данных
1 августа, 20:00 — 21:30
Proguard
После занятия вы сможете встроить Proguard обфускацию и оптимизацию в свое приложение.
5 августа, 20:00 — 21:30
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
Clean Architecture
После занятия вы сможете выстраивать архитектуру в соответствии с принципами Clean Architecture сформулированными Бобом Мартином.
22 августа, 20:00 — 21:30
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
RxJava 2
После занятия вы научитесь применять “недооцененные” операторы, писать собственные операторы, узнаете как работают шедулеры.
2 сентября, 20:00 — 21:30
Multimodule project
Dagger2, Gradle modules.
После этого занятия вы научитесь проектировать мультимодульную архитектуру приложения.
5 сентября, 20:00 — 21:30
Code smells + refactoring
После этого занятия вы научитесь находить плохие архитектурные решения, строить roadmap и проводить рефакторинг.
9 сентября, 20:00 — 21:30
Testing
Юнит тесты
JUnit, Hamcrest matchers.
После этого занятия вы сможете покрывать unit тестами ваши классы.
12 сентября, 20:00 — 21:30
Интеграционное тестирование на Android
Mockito, Robolectric.
После этого занятия вы сможете использовать фреймворки для интеграционного тестирования на Android, реализовывать различные виды тестовых дублеров, создавать shadowклассы.
16 сентября, 20:00 — 21:30
Automated UI Testing
Espresso framework, Spoon, MockWebserver .
После этого занятия вы сможете писать UI тесты на Espresso в изолированной среде и запускать их на нескольких эмуляторах параллельно.
19 сентября, 20:00 — 21:30
Infrastructure and build processes
Инструменты для проверки качества кода
Android Lint, findbugs, checkstyle, find-sec-bugs, ktlint, detekt.
После этого занятия вы сможете внедрять и настраивать линтеры/чекстайлы для проверки качества кода и поиска потенциальных ошибок.
23 сентября, 20:00 — 21:30
Системы контроля версий, различные виды ветвлений, код ревью
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
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
Jenkins
Jenkins, Jenkins pipeline.
После занятия вы научитесь поднимать Jenkins в Docker контейнере и делегировать ему сборку Android проекта.
10 октября, 20:00 — 21:30
Distribution / Crash overview
Fabric,Firebase Crashlytics, AppCentre, Google play.
По окончанию этого занятия вы сможете деплоить ваш .apk файл в системы для дистрибуции приложений.
14 октября, 20:00 — 21:30
Проектная работа
Консультация по ДЗ и проектам
17 октября, 20:00 — 21:30
Консультация по ДЗ и проектам
21 октября, 20:00 — 21:30
Защита проектов
24 октября, 20:00 — 21:30
Выпускной проект
На протяжении всего курса вы будете работать над собственным проектом. Это будет тонкий клиент к какому-либо сервису с публичным API.

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

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

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


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


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


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

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

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

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

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

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

Дата выдачи сертификата: 1 января 2020 года
Ваш сертификат
otus.ru
Константин Константинопольский
успешно закончил курс
«Android-разработчик. Продвинутый курс»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
otus.ru
Константин Константинопольский
успешно закончил курс
«Android-разработчик. Продвинутый курс»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
Общая стоимость
50 000 ₽
В кредит: ₽ в месяц
Продолжительность
5 месяцев
Начало занятий
27 июня