Начало занятий в декабре

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

Программа курса
Модуль 1
UI
Модуль 2
Архитектура
Модуль 3
Работа с данными
Модуль 4
Тестирование, облачные сервисы, публикация приложения
UI
В данном модуле рассматриваются элементы пользовательского интерфейса (UI) Android-приложений. Вы получите навыки формирования макетов Android-приложения, применения и кастомизации элементов UI.
Custom Views
По окончании занятия ученики начнут понимать, зачем нужны кастомные вью, научатся перегружать методы базовых виджетов для своих целей, использовать Canvas.
Домашние задания: 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
ДЗ
ButterKnife, Android Data Binding. Написать два экрана с учетом Material Design Guidelines:
Экран 1 с ButterKnife запрашивает информацию о пользователе — имя, емейл, телефон. Когда все данные заполнены, активируется кнопка ""ОК"", которая ранее была заблокирована (отобразить это в дизайне). По нажатию на кнопку ""ОК"" открывается экран на Android Data Binding с моделью заполненного пользователя.
*Использовать в дизайне компоненты последней версии библиотеки support design.
Работа со стилями и атрибутами
По окончании занятия участники смогут писать иерархию стилей, создавать собственные атрибуты стилей, например, для шрифтов, уметь пользоваться Downloadable Fonts. Уметь выбирать правильные ресурсы для разных устройств.
Анимация
По окончании занятия участники будут знать и различать виды анимаций как изображений, так и лейаутов, в том числе и рисованные на Canvas, понимать значения атрибутов преобразований.
Домашние задания: 1
ДЗ
Анимация. Создать экран, выезжающий снизу с пошаговой анимацией.
*Создать экран, выезжающий снизу с векторной анимацией.
Navigation Drawer
По окончании занятия участники смогут создавать и кастомизировать Navigation Drawer.
CoordinatorLayout
По окончании занятия участники смогут использовать и понимать, как работает CoordinatorLayout, основные типы поведения при скролле.
Домашние задания: 1
ДЗ
CoordinatorLayout. Создать экран с текстом и плашкой заголовка, который при скролле скрывает плашку заголовка под тулбар.
*Создать экран с плашкой изображения с заголовком, который при скролле трансформирует плашку в тулбар.
ConstraintLayout
По окончании занятия участники смогут понимать проблему overdraw и ее основные причины, знать инструменты отладки рендеринга, уметь пользоваться ConstraintLayout.
Архитектура
В данном модуле вы познакомитесь с наиболее актуальными и функциональными подходами к построению архитектуры приложений, научитесь применять рассмотренные подходы на практике и реализовывать качественные, стабильные и протестированные приложения.
Activity, Fragment или View. Сохранение состояния
По окончании занятия участники смогут понимать разницу в жизненном цикле активити и фрагмента, их нагрузки на память, уметь связывать вью с жизненным циклом фрагмента или активити. Знать основные способы сохранения состояния.
Философия Clean, MVP, MVVM
По окончании занятия участники смогут знать и отличать основные паттерны программирования, понимать суть философии Clean.
Android Jetpack, обзор Navigation
По окончании занятия участники смогут понимать принцип Android Jetpack, знать основные составляющие каждого из 4-х компонентов, иметь представление о работе Navigation.
Services. WorkManager
По окончании занятия участники смогут различать основные типы сервисов, понимать, что такое WorkManager, управлять критериями запуска задачи, уметь выставлять последовательность выполнения, управлять передачей и получением данных.
Домашние задания: 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
ДЗ
Depenency Injection — Dagger 2. На основании экранов о сборе данных пользователя из ДЗ к Модулю 1 создать вьюмодель с лайвдатой, отражающей состоянии кнопки ОК, observable, который следит за эдит-текстом емейла и при валидном значении публикует во вьюмодель состояние кнопки ""доступна"".
Кнопка подписана на лайвдату и меняет состояние "доступно-недоступно", а также дизайн в зависимости от значения.
У экрана есть DI-компонент, который провайдит вьюмодель.
Работа с данными
В данном модуле рассматриваются проблемы и вопросы, возникающие при разработке современных клиент-серверных приложений, а также способы их решения.
SharedPreferences. Hawk
По окончании занятия участники смогут пользоваться SharedPreferences для записи и получения объектов, будут ознакомлены со сторонними библиотеками.
Broadcast Receiver, работа с уведомлениями
По окончании занятия участники смогут создавать и подписывать на активити глобальные и кастомные Broadcast Receiver, научатся отправлять и обрабатывать уведомления.
REST, Postman, Модели, использование Parcelable
По окончании занятия участники смогут понимать принципы REST, уметь работать с Postman, уметь создавать модели данных, знать, когда использовать Parcelable.
Retrofit, API-интерфейс
По окончании занятия участники смогут подключать библиотеку Retrofit, создавать и описывать API-интерфейс (Field, Query, QueryMap...).
Репозитории и интеракторы
По окончании занятия участники смогут понимать принцип паттерна Repository, уметь создавать репозитории и интеракторы, разделять бизнес-логику приложения.
Paging library
По окончании занятия участники научатся применять Paging library для постраничной загрузки данных и отображений их в RecyclerView.
Домашние задания: 1
ДЗ
Paging library. Создать загружаемый постранично (offset) список с использованием какого-либо API из источника: https://github.com/toddmotto/public-apis, используя материалы предыдущих уроков.
*Использовать компоненты Material Design при отображении данных (Material Card и т. д.).
SQLite, Realm
По окончании занятия участники смогут понимать, как создаются таблицы SQL, знать и отличать методы, типы данных. Уметь работать c SQLite в Андроид, ознакомиться с Realm.
Room
По окончании занятия участники смогут пользоваться Room, знать, как осуществить переход с SQLite на Room.
Тестирование, облачные сервисы, публикация приложения
В данном модуле вы узнаете о способах организации тестирования мобильных приложений, познакомитесь с облачными сервисами и процессом публикации приложения в Маркете.
Firebase Cloud Messaging
По окончании занятия участники смогут настраивать уведомления в Android с помощью Firebase Cloud Messaging.
Fabric Crashalytics, KPI
По окончании занятия участники научатся настраивать крашалитику, KPI с помощью Fabric.
Firebase Realtime Database
По окончании занятия участники смогут подключать и пользоваться Firebase Realtime Database.
Домашние задания: 1
ДЗ
Firebase Realtime Database. Подключить Firebase Realtime Database к экранам сбора данных о пользователе.
*Подключить Firebase Cloud Messaging к экранам сбора данных о пользователе.
Тестирование
По окончании занятия участники смогут знать и различать локальные, инструментальные и UI тесты, понимать сам принцип тестирования приложения.
Домашние задания: 1
ДЗ
Тестирование. JUnit, Mockito, Espresso, Robolectric. Используя экран из ДЗ к теме Paging Library, написать тесты к вьюмодели.
*Используя экран из ДЗ к теме Paging Library, написать API-тесты.
JUnit, Mockito, Espresso, Robolectric
По окончании занятия участники смогут знать и различать инструменты тестирования — JUnit, Mockito, Espresso, Robolectric.
Утечка памяти в приложении
По окончании занятия участники смогут знать и различать инструменты отслеживания утечки памяти, основные причины утечки памяти.
Добавление accessibility
По окончании занятия участники смогут добавлять accessibility к своему приложению, писать accessibility сервисы.
Домашние задания: 1
ДЗ
Добавление accessibility. Используя экраны сбора данных о пользователе, добавить accesibility к экрану о сборе данных и к экрану отображнения данных
Публикация приложения
По окончании занятия участники смогут научиться подписывать апк, публиковать приложение в Google Play в альфа, бета, и релиз версии.
Работодатели