Отправь повестку себе и другу,
Получи патроны для выполнения боевых образовательных мероприятий!
Принять участие

Разработчик Android

Курс о том, как создавать качественные, стабильные и протестированные Android-приложения.
Что даст вам этот курс


  • Знание элементов пользовательского интерфейса (UI) Android-приложений, новинок Material Design

  • Освоение функциональных подходов к построению архитектуры Android

  • Умение создавать легко поддерживаемые мобильные приложения

  • Владение современными способами организации тестирования

  • Освоение актуальных технологий: Dagger 2, Android Jetpack, RxJava 2, Retrofit, Firebase

  • Знание основных проблем Android-разработки и способов их решения



13 работодателей

Подробное изучение UI и принципов построения архитектуры приложений

Подробное освещение основных инструментов тестирования (обычно рассматриваются поверхностно)

Преподаватели-эксперты

Три года назад стандарты разработки андроид-приложений были совсем другими. Каждый год Google преподносит разработчикам новые решения и инструменты, и уследить за всем этим бывает очень сложно. Нужно постоянно “держать руку на пульсе” и развивать свои навыки — без этого не получится профессионального роста
Варвара Соловьёва
Преподаватель курса
Три года назад стандарты разработки андроид-приложений были совсем другими. Каждый год Google преподносит разработчикам новые решения и инструменты, и уследить за всем этим бывает очень сложно. Нужно постоянно “держать руку на пульсе” и развивать свои навыки — без этого не получится профессионального роста
Варвара Соловьёва
Преподаватель курса
Преподаватели
Варвара Соловьёва
Gaika Group
Сергей Митрофанов
Ведущий инженер-программист в Cargopull
Android developer с опытом работы в таких компаниях, как Apzavr, Campus, Jeench Inc, Gaika Group. Преподаёт на курсе «Разработчик Android», профессионально занимается разработкой мобильных приложений, вёрсткой и дизайном.

Подготовила собственную программу обучения, где постаралась охватить все ключевые современные стандарты Android-разработки, включая материалы последних конференций и основные пункты экзамена на сертификат Google.
Самостоятельно изучил ООП, Java и Android, написал эмуляцию физико-химического процесса на Java, разработал на Java систему учета крупных соревнований по Ушу.

Разрабатывал под Android: CRM, ERP, двумерные игры, AR-игры, видеочаты, купонаторы и др.

Из опыта преподавания — свои вебинары по компьютерному ликбезу для широкой возрастной группы и обучение мобильных разработчиков в проекте с нуля до Senior. В августе выступал докладчиком на митапе Mosdroid.
Преподаватели
Варвара Соловьёва
Gaika Group
Android developer с опытом работы в таких компаниях, как Apzavr, Campus, Jeench Inc, Gaika Group. Преподаёт на курсе «Разработчик Android», профессионально занимается разработкой мобильных приложений, вёрсткой и дизайном.

Подготовила собственную программу обучения, где постаралась охватить все ключевые современные стандарты Android-разработки, включая материалы последних конференций и основные пункты экзамена на сертификат Google.
Сергей Митрофанов
Ведущий инженер-программист в Cargopull
Самостоятельно изучил ООП, Java и Android, написал эмуляцию физико-химического процесса на Java, разработал на Java систему учета крупных соревнований по Ушу.

Разрабатывал под Android: CRM, ERP, двумерные игры, AR-игры, видеочаты, купонаторы и др.

Из опыта преподавания — свои вебинары по компьютерному ликбезу для широкой возрастной группы и обучение мобильных разработчиков в проекте с нуля до Senior. В августе выступал докладчиком на митапе Mosdroid.
Минимальные знания
  • опыт работы с Android Studio
  • опыт написания приложений
  • знание основ работы с Git
Программа обучения
Модуль 1
UI
Модуль 2
Архитектура
Модуль 3
Работа с данными
Модуль 4
Тестирование, облачные сервисы, публикация приложения
Модуль 5
Проектная работа
UI
В данном модуле рассматриваются элементы пользовательского интерфейса (UI) Android-приложений. Вы получите навыки формирования макетов Android-приложения, применения и кастомизации элементов UI.
Custom Views
По окончании занятия ученики начнут понимать, зачем нужны кастомные вью, научатся перегружать методы базовых виджетов для своих целей, использовать Canvas.
Домашние задания: 1
1 Custom Views
Написать SquareImageView.
*Написать CircleImageView.
Material Design Guidelines
По окончании занятия участники смогут понимать принципы Material Design, следовать Material Design Guidelines, пользоваться элементами support библиотеки.
ButterKnife, Android Data Binding
По окончании занятия участники смогут подключать библиотеку ButterKnife, работать с ней в модулях. Пользоваться плагином Exynap. Подключать Android Data Binding, работать с ViewModel. Работать с Android Data Binding со списками, листенерами.
Домашние задания: 1
1 ButterKnife, Android Data Binding
Написать два экрана с учетом Material Design Guidelines:
Экран 1 с ButterKnife запрашивает информацию о пользователе — имя, емейл, телефон. Когда все данные заполнены, активируется кнопка ""ОК"", которая ранее была заблокирована (отобразить это в дизайне). По нажатию на кнопку ""ОК"" открывается экран на Android Data Binding с моделью заполненного пользователя.
*Использовать в дизайне компоненты последней версии библиотеки support design.
Работа со стилями и атрибутами
По окончании занятия участники смогут писать иерархию стилей, создавать собственные атрибуты стилей, например, для шрифтов, уметь пользоваться Downloadable Fonts. Уметь выбирать правильные ресурсы для разных устройств.
Анимация
По окончании занятия участники будут знать и различать виды анимаций как изображений, так и лейаутов, в том числе и рисованные на Canvas, понимать значения атрибутов преобразований.
Домашние задания: 1
1 Анимация
Создать экран, выезжающий снизу, содержащий обычную пошаговую анимацию .
*Создать экран, выезжающий снизу, содержащий VectorDrawable c set из objectAnimator.
Navigation Drawer
По окончании занятия участники смогут создавать и кастомизировать Navigation Drawer.
CoordinatorLayout
По окончании занятия участники смогут использовать и понимать, как работает CoordinatorLayout, основные типы поведения при скролле.
Домашние задания: 1
1 CoordinatorLayout
Создать экран с текстом и плашкой заголовка, который при скролле скрывает плашку заголовка под тулбар.
*Создать экран с плашкой изображения с заголовком, который при скролле трансформирует плашку в тулбар.
ConstraintLayout
По окончании занятия участники смогут понимать проблему overdraw и ее основные причины, знать инструменты отладки рендеринга, уметь пользоваться ConstraintLayout.
Архитектура
В данном модуле вы познакомитесь с наиболее актуальными и функциональными подходами к построению архитектуры приложений, научитесь применять рассмотренные подходы на практике и реализовывать качественные, стабильные и протестированные приложения.
Activity, Fragment или View. Сохранение состояния
По окончании занятия участники смогут понимать разницу в жизненном цикле активити и фрагмента, их нагрузки на память, уметь связывать вью с жизненным циклом фрагмента или активити. Знать основные способы сохранения состояния.
Философия Clean, MVP, MVVM
По окончании занятия участники смогут знать и отличать основные паттерны программирования, понимать суть философии Clean.
Android Jetpack, обзор Navigation
По окончании занятия участники смогут понимать принцип Android Jetpack, знать основные составляющие каждого из 4-х компонентов, иметь представление о работе Navigation.
Services. WorkManager
По окончании занятия участники смогут различать основные типы сервисов, понимать, что такое WorkManager, управлять критериями запуска задачи, уметь выставлять последовательность выполнения, управлять передачей и получением данных.
Домашние задания: 1
1 Services. WorkManager
Создать задачу уведомления пользователя о низком заряде батареи.
*Создать задачу уведомления пользователя о его геолокации раз в минуту с возможностью отмены задачи из уведомления.
Работа с потоками. RxJava 2, RxAndroid — часть 1, ViewModel + LiveData
По окончании занятия участники смогут различать инструменты работы с потоками (Runnable, Handler, Looper), ознакомиться с основными принципами RxJava, различать виды операторов. Ознакомиться с RxAndroid. Знать и отличать виды LiveData, пользоваться в комбинации с ViewModel.
RxJava 2, RxAndroid — часть 2, RxLifecycle + RxPermission
По окончании занятия участники смогут понимать и уметь обрабатывать работу в потоках, подписку, знать разницу между Hot and Сold Observable, уметь пользоваться RxLifecycle + RxPermission.
Depenency Injection: Dagger 2 — часть 1
По окончании занятия участники смогут понимать основной принцип работы Dependency Injection, Dagger, уметь настраивать компонент приложения.
Depenency Injection: Dagger 2 — часть 2
По окончании занятия участники смогут создавать наследование компонентов, будут знать, что такое BindsInstance, смогут организовывать работу с модулями приложения.
Домашние задания: 1
1 Depenency Injection — Dagger 2
На основании экранов о сборе данных пользователя из ДЗ к Модулю 1 создать вьюмодель с лайвдатой, отражающей состоянии кнопки ОК, observable, который следит за эдит-текстом емейла и при валидном значении публикует во вьюмодель состояние кнопки ""доступна"".
Кнопка подписана на лайвдату и меняет состояние "доступно-недоступно", а также дизайн в зависимости от значения.
У экрана есть DI-компонент, который провайдит вьюмодель.
Live Data
ознакомиться с LifecycleObserver, понять принцип работы LiveData, ознакомиться с типами LiveData
Работа с данными
В данном модуле рассматриваются проблемы и вопросы, возникающие при разработке современных клиент-серверных приложений, а также способы их решения.
SharedPreferences. Hawk
По окончании занятия участники смогут пользоваться SharedPreferences для записи и получения объектов, будут ознакомлены со сторонними библиотеками.
Broadcast Receiver, работа с уведомлениями
По окончании занятия участники смогут создавать и подписывать на активити глобальные и кастомные Broadcast Receiver, научатся отправлять и обрабатывать уведомления.
27 февраля, 20:00 — 21:30
REST, Postman, Модели, использование Parcelable
По окончании занятия участники смогут понимать принципы REST, уметь работать с Postman, уметь создавать модели данных, знать, когда использовать Parcelable.
1 марта, 20:00 — 21:30
Retrofit, API-интерфейс
По окончании занятия участники смогут подключать библиотеку Retrofit, создавать и описывать API-интерфейс (Field, Query, QueryMap...).
6 марта, 20:00 — 21:30
Репозитории и интеракторы
По окончании занятия участники смогут понимать принцип паттерна Repository, уметь создавать репозитории и интеракторы, разделять бизнес-логику приложения.
13 марта, 20:00 — 21:30
Paging library
По окончании занятия участники научатся применять Paging library для постраничной загрузки данных и отображений их в RecyclerView.
15 марта, 20:00 — 21:30
Домашние задания: 1
1 Paging library
Создать загружаемый постранично (offset) список с использованием какого-либо API из источника: https://github.com/toddmotto/public-apis, используя материалы предыдущих уроков.
*Использовать компоненты Material Design при отображении данных (Material Card и т. д.).
SQLite, Realm
По окончании занятия участники смогут понимать, как создаются таблицы SQL, знать и отличать методы, типы данных. Уметь работать c SQLite в Андроид, ознакомиться с Realm.
20 марта, 20:00 — 21:30
Room
По окончании занятия участники смогут пользоваться Room, знать, как осуществить переход с SQLite на Room.
22 марта, 20:00 — 21:30
Тестирование, облачные сервисы, публикация приложения
В данном модуле вы узнаете о способах организации тестирования мобильных приложений, познакомитесь с облачными сервисами и процессом публикации приложения в Маркете.
Firebase Cloud Messaging
По окончании занятия участники смогут настраивать уведомления в Android с помощью Firebase Cloud Messaging.
27 марта, 20:00 — 21:30
Fabric Crashalytics, KPI
По окончании занятия участники научатся настраивать крашалитику, KPI с помощью Fabric.
29 марта, 20:00 — 21:30
Firebase Realtime Database
По окончании занятия участники смогут подключать и пользоваться Firebase Realtime Database.
3 апреля, 20:00 — 21:30
Домашние задания: 1
1 Firebase Realtime Database
Подключить Firebase Realtime Database к экранам сбора данных о пользователе.
*Подключить Firebase Cloud Messaging к экранам сбора данных о пользователе.
Тестирование
По окончании занятия участники смогут знать и различать локальные, инструментальные и UI тесты, понимать сам принцип тестирования приложения.
5 апреля, 20:00 — 21:30
Домашние задания: 1
1 Тестирование. JUnit, Mockito, Espresso, Robolectric
Используя экран из ДЗ к теме Paging Library, написать тесты к вьюмодели.
*Используя экран из ДЗ к теме Paging Library, написать API-тесты.
JUnit, Mockito, Espresso, Robolectric
По окончании занятия участники смогут знать и различать инструменты тестирования — JUnit, Mockito, Espresso, Robolectric.
10 апреля, 20:00 — 21:30
Утечка памяти в приложении
По окончании занятия участники смогут знать и различать инструменты отслеживания утечки памяти, основные причины утечки памяти.
12 апреля, 20:00 — 21:30
Добавление accessibility
По окончании занятия участники смогут добавлять accessibility к своему приложению, писать accessibility сервисы.
17 апреля, 20:00 — 21:30
Домашние задания: 1
1 Добавление accessibility
Используя экраны сбора данных о пользователе, добавить accesibility к экрану о сборе данных и к экрану отображнения данных
Публикация приложения
По окончании занятия участники смогут научиться подписывать апк, публиковать приложение в Google Play в альфа, бета, и релиз версии.
24 апреля, 20:00 — 21:30
Проектная работа
Данный модуль полностью посвящен проектной работе.
Вводное занятие. Определение темы проекта
По окончании занятия участники смогут определиться с темой проекта, получить понимание, какие ресурсы им необходимо использовать для работы.
8 мая, 20:00 — 21:30
Домашние задания: 1
1 Проектная работа
Консультация. Промежуточные итоги
По окончании занятия участники получат комментарии относительно прогресса проектной работы, ответы на какие-то вопросы, рекомендации по реализации.
22 мая, 20:00 — 21:30
Финальное занятие. Сдача проекта
По окончании занятия участники получат разбор проектов, комментарии и оценку своей работы.
5 июня, 20:00 — 21:30
Выпускной проект

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



Примерные темы проектов:



  • отображение курса ценных бумаг или акций, график за день, месяц, отправка уведомлений

  • дневник питания и/или счетчик калорий

  • игра с дополненной реальностью

  • все социальные сети в одной ленте

  • клиент для Хабра

  • приложение с шаблонами экранов для подбора палеток согласно Material Design

Подглядеть
Android: Android Studio и Android Virtual Device: Get Started
Android Material Design: обзор обновлений
Варвара Соловьёва
Dependency Injection в Android
Сергей Митрофанов
Видеоматериалы по теме
День открытых дверей
6 декабря 2018 года в 20:00
После обучения вы

  • получите материалы по всем пройденным занятиям (видеозаписи курса, тестовые приложения, над которыми работали во время обучения, финальный проект)

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

  • получите сертификат об окончании курса

  • повысите свои знания в сфере Android-разработки

  • сможете создавать самостоятельные проекты и работать в команде

  • получите приглашение пройти собеседование в компаниях-партнёрах (в случае успешного обучения)

Ваш сертификат
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик Android»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик Android»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001