Учебник Kotlin и Android-разработка для начинающих
Полный путь в мобильную разработку на Kotlin и Android. Курс начинается с основ языка — переменных, null-безопасности, функций и коллекций — и доводит вас до архитектуры реального приложения на Jetpack Compose.
Вы освоите объектно-ориентированное программирование на Kotlin, декларативный UI с состоянием и рекомпозицией, дизайн-систему Material 3, связку ViewModel и StateFlow, асинхронность на корутинах, работу с сетью через Retrofit и локальной базой Room, а также навигацию между экранами. Весь материал опирается на актуальные практики Kotlin 2.x, компилятора K2 и современного Compose.
Курс «Kotlin и Android-разработка» состоит из 6 разделов и 21 урока: Основы Kotlin, Управление и коллекции, ООП в Kotlin, Введение в Android, Jetpack Compose и Данные, сеть и навигация. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Основы Kotlin
- Что такое Kotlin и почему его выбрал Google
Знакомство с Kotlin 2.x, компилятором K2 и причинами, по которым язык стал основным для Android.
- Переменные, типы и null-безопасность
val и var, базовые типы, вывод типов и работа с nullable-типами в Kotlin.
- Функции, лямбды и функции высшего порядка
Объявление функций, параметры по умолчанию, выражения-функции, лямбды и функции высшего порядка в Kotlin.
- Условия и циклы: if, when, for, while
Управляющие конструкции Kotlin: if как выражение, мощный when, диапазоны и циклы for/while.
- Что такое Kotlin и почему его выбрал Google
2 Управление и коллекции
- Коллекции: List, Set, Map
Списки, множества и словари в Kotlin, изменяемые и неизменяемые коллекции, базовые операции.
- Операции над коллекциями: map, filter, reduce
Декларативная обработка данных: map, filter, forEach, sortedBy, groupBy и цепочки операций.
- Исключения и обработка ошибок
try-catch как выражение, исключения в Kotlin, runCatching и Result для безопасной обработки ошибок.
- Коллекции: List, Set, Map
3 ООП в Kotlin
- Классы, объекты и конструкторы
Объявление классов, первичный и вторичный конструкторы, свойства, init-блоки и создание объектов.
- Data-классы и sealed-классы
Классы данных с автоматическими методами, копирование через copy, деструктуризация и sealed-иерархии для моделирования состояний.
- Наследование, интерфейсы и абстракция
Открытые классы, наследование, переопределение, абстрактные классы и интерфейсы в Kotlin.
- Классы, объекты и конструкторы
4 Введение в Android
- Как устроено Android-приложение
Структура Android-проекта, манифест, ресурсы, Gradle и компоненты приложения в эпоху single-activity и Compose.
- Жизненный цикл Activity
Колбэки onCreate, onStart, onResume, onPause, onStop, onDestroy и почему понимание жизненного цикла критично.
- Первое приложение на Jetpack Compose
Composable-функции, аннотация Composable, setContent, превью и базовые компоненты Text, Button, Column.
- Как устроено Android-приложение
5 Jetpack Compose
- Состояние и рекомпозиция
remember, mutableStateOf, что такое рекомпозиция и как Compose отслеживает изменения состояния.
- State hoisting и однонаправленный поток данных
Подъём состояния, разделение stateful и stateless composable и паттерн unidirectional data flow.
- Material 3 и компоновка интерфейса
Material 3, Scaffold, тема и цвета, modifier-цепочки и базовые компоненты дизайн-системы.
- Списки: LazyColumn и отображение данных
Эффективные списки через LazyColumn и LazyRow, items, ключи и отрисовка коллекций данных.
- Состояние и рекомпозиция
6 Данные, сеть и навигация
- Корутины и асинхронность
Suspend-функции, корутины, Dispatchers, structured concurrency и почему корутины заменили колбэки.
- ViewModel и StateFlow
ViewModel, viewModelScope, StateFlow как источник состояния и collectAsStateWithLifecycle в Compose.
- Сеть и базы данных: Retrofit и Room
Загрузка данных из сети через Retrofit и локальное хранение в Room с suspend-функциями и Flow.
- Навигация между экранами
Navigation Compose, NavHost и NavController, типобезопасная навигация и передача аргументов между экранами.
- Корутины и асинхронность