Содержание курса
Введение
1 урок
1.
Введение
↗
Подготовка к работе
4 урока
1.
Введение в GIT
↗
2.
Установка GIT и работа по GIT Flow
↗
3.
Работа над незнакомым проектом
↗
4.
Работа с debugger-ом
↗
Введение в Clean Architecture
7 уроков
1.
Обзор приложения Shopping List
↗
2.
Краткий обзор Clean Architecture
↗
3.
Domain-слой. Часть 1
↗
4.
Domain-слой. Часть 2
↗
5.
Data-слой
↗
6.
Presentation-слой. Часть 1. ViewModel
↗
7.
Presentation-слой. Часть 2. Автообновление списка
↗
RecyclerView
10 уроков
1.
Макеты для Shopping List
↗
2.
Реализация списков через LinearLayout
↗
3.
Зачем нужен ViewHolder
↗
4.
Баги при использовании RecyclerView
↗
5.
ViewType и RecycledViewPool
↗
6.
Добавление слушателей
↗
7.
Проблемы при использовании notifyDatasetChanged
↗
8.
Реализация через DiffUtil и простой адаптер
↗
9.
Реализация через ListAdapter
↗
10.
Собеседование по RecyclerView
↗
Работа над вторым экраном приложения
5 уроков
1.
Макеты для ShopItemActivity
↗
2.
Создание ShopItemViewModel
↗
3.
Завершение работы над ShopItemViewModel
↗
4.
Фабричные методы newIntent
↗
5.
Завершение работы над ShopItemActivity
↗
Фрагменты
9 уроков
1.
Зачем нужны фрагменты
↗
2.
Установка фрагмента на экране ShopItemActivity
↗
3.
Параметры во фрагменте и LifecycleOwner
↗
4.
Методы require и get, работа с FragmentManager
↗
5.
Правильная передача параметров во фрагмент
↗
6.
Работа с бэкстэком, методы add и replace
↗
7.
Взаимодействие Activity с фрагментом
↗
8.
Жизненный цикл фрагментов
↗
9.
Собеседование по теме Fragments
↗
Android Jetpack
19 уроков
1.
Обзор приложения Состав Числа
↗
2.
Проектирование Domain-слоя
↗
3.
Реализация Domain-слоя
↗
4.
Реализация Data-слоя
↗
5.
Ресурсы для приложения
↗
6.
View Binding
↗
7.
Навигация через FragmentManager
↗
8.
Parcelable vs Serializable
↗
9.
Реализация GameViewModel
↗
10.
Реализация GameFragment
↗
11.
ViewModelFactory
↗
12.
Jetpack Navigation. Часть 1. Создание графа
↗
13.
Jetpack Navigation. Часть 2. Реализация навигации
↗
14.
Jetpack Navigation. Часть 3. SafeArgs
↗
15.
Data Binding. Введение
↗
16.
Binding Adapters
↗
17.
Data Binding. Observe ViewModel
↗
18.
Data Binding внутри адаптера RecyclerView
↗
19.
Решение дз. Интеграция Data Binding в Shopping List
↗
Введение в корутины
11 уроков
1.
Асинхронное программирование с коллбэками
↗
2.
Handler и Looper
↗
3.
Проблемы при стандартном подходе к асинхронному программированию
↗
4.
Введение в Kotlin Coroutines. Suspend функции
↗
5.
Корутины "под капотом"
↗
6.
Создание базы данных для приложения Shopping List
↗
7.
Mappers
↗
8.
MediatorLiveData и Transformations.map
↗
9.
App Inspection и auto generate
↗
10.
Coroutine Scope и Dispatchers
↗
11.
ViewModelScope
↗
Работа в фоне. Сервисы и WorkManager
14 уроков
1.
Services. Создание первого сервиса
↗
2.
Перезапуск сервисов
↗
3.
Работа с уведомлениями. NotificationManager
↗
4.
Foreground Service
↗
5.
Остановка сервисов
↗
6.
Intent Service
↗
7.
JobService. Создание сервиса
↗
8.
JobScheduler. Запуск сервиса
↗
9.
JobScheduler. Метод enqueue
↗
10.
Комбинирование JobScheduler и IntentService
↗
11.
JobIntentService
↗
12.
WorkManager
↗
13.
Debug приложение с WorkManager-ом
↗
14.
Собеседование по теме сервисов
↗
Практическая работа по пройденному материалу
9 уроков
1.
Обзор приложения, над которым будем работать
↗
2.
Создаем Domain-слой
↗
3.
Работа с Data-слоем
↗
4.
Обновление зависимостей
↗
5.
Доработка data и domain слоев. Подключение к presentation
↗
6.
Работа с presentation-слоем. Переход на View Binding
↗
7.
Оптимизация адаптера RecyclerView. ListAdapter
↗
8.
Переход на фрагменты
↗
9.
Фоновая загрузка данных. WorkManager
↗
Dependency Injection. Dagger2
20 уроков
1.
Что такое инъекция зависимостей. Инъекция в конструктор
↗
2.
Инъекция в поля класса
↗
3.
Dagger. Аннотации Component и Inject
↗
4.
Module и Provides
↗
5.
Обзор архитектуры второго примера
↗
6.
Binds. Связываем интерфейс и реализацию
↗
7.
Component Builder. Передача параметров в модуль
↗
8.
Custom Builder, BindsInstance
↗
9.
Factory, Singleton
↗
10.
Custom Scopes
↗
11.
Inject ViewModel
↗
12.
Provider
↗
13.
ViewModelKey
↗
14.
Subcomponents
↗
15.
Qualifiers
↗
16.
Dependency Injection в приложении с криптовалютами
↗
17.
Передача параметров в конструктор Worker
↗
18.
Dependency Injection into WorkerFactory (Single Worker)
↗
19.
Dependency Injection. Multiple Workers
↗
20.
Dependency Injection. Shopping List
↗
Broadcast Receivers
5 уроков
1.
Создание и регистрация ресиверов
↗
2.
Обработка нескольких сообщений, регистрация в манифесте
↗
3.
Создание кастомного ресивера
↗
4.
Передача параметров в броадкаст-сообщениях
↗
5.
LocalBroadcastManager
↗
Content Providers
9 уроков
1.
Создание провайдера
↗
2.
UriMatcher
↗
3.
Загрузка данных из бд. Cursor
↗
4.
Вставка данных. Класс ContentValues
↗
5.
Удаление данных. Selection и Selection Args
↗
6.
Получение данных в другом приложении
↗
7.
Получение списка контактов. Проверка разрешений
↗
8.
Получение разрешения от пользователя
↗
9.
Краткое повторение пройденного материала
↗
Корутины. Углубленное изучение
11 уроков
1.
Job and Coroutine Builders
↗
2.
Async and Deferred
↗
3.
Создание приложения Factorial
↗
4.
Stateful ViewModel
↗
5.
Sealed Classes
↗
6.
WithContext and SuspendCoroutine
↗
7.
CoroutineScope and CoroutineContext
↗
8.
Structured Concurrency
↗
9.
Exception Handling
↗
10.
Async vs Launch
↗
11.
Cancelling Coroutines
↗
Coroutine Flow
16 уроков
1.
Введение в Coroutine Flow
↗
2.
Flow Builders
↗
3.
Flow builder and terminal operators
↗
4.
Операторы жизненного цикла Flow
↗
5.
Map Flow to LiveData
↗
6.
AsLiveData часть 2. OnCompletion
↗
7.
Использование Flow на Ui-слое
↗
8.
Холодные Flow
↗
9.
Горячие Flow. MutableSharedFlow
↗
10.
Практика MutableSharedFlow
↗
11.
Промежуточные и кастомные операторы
↗
12.
StateFlow
↗
13.
Backpressure и buffer
↗
14.
Буфер в горячих flow
↗
15.
Операторы ShareIn и StateIn
↗
16.
Exception Handling
↗
SOLID
4 урока
1.
Dependency Inversion
↗
2.
Interface Segregation
↗
3.
Liskov Substitution
↗
4.
Open-Closed Principle
↗
Закрываем пробелы
4 урока
1.
Дополнение по сервисам
↗
2.
Прогресс внутри уведомления
↗
3.
Bound Services
↗
4.
Alarm Manager
↗
Финал
3 урока
1.
Собеседование на должность Junior Android Developer
↗
2.
Тест для получения сертификата
↗
3.
Что делать дальше?
↗