Обмежений доступ для гостей

Вам доступно 3 уроки з цього курсу безкоштовно.

  • Коментарі доступні тільки авторизованим користувачам
  • Прогрес зберігається тільки 0:00
🔒
КурсиМобільна розробка / Android: Kotlin + Jetpack Compose

Android: Kotlin + Jetpack Compose

Вигляд:

Модуль 1. Старт: проєкт і Compose

1

Знайомство з проєктом: Kotlin, Compose, Gradle

Будова Android-проєкту, збірка з терміналу та цикл роботи: код → збірка → телефон → коміт.

2

@Composable-функції та рекомпозиція

Функції, що описують екран, і як Compose перемальовує лише те, що змінилось.

3

Modifier: розміри, відступи, порядок

Ланцюжок модифікаторів, одиниці dp/sp та чому порядок у ланцюжку має значення.

Модуль 2. Компонування екрана

4

Column, Row, Box — три контейнери

Базові контейнери Compose та різниця між arrangement і alignment.

5

Проміжки та weight

Spacer, spacedBy та поділ вільного простору через weight.

6

@Preview і каталог версій Gradle

Дивимось UI просто в IDE та розбираємось із libs.versions.toml і Compose BOM.

Модуль 3. Стан і взаємодія

7

remember і mutableStateOf: кнопка-лічильник

UI як функція від стану: перший інтерактивний екран.

8

rememberSaveable: пережити поворот екрана

Чому стан зникає при повороті та як зберегти його в Bundle.

9

State hoisting: дані вниз, події вгору

Виносимо стан із компонента та робимо його безстанним і придатним до перевикористання.

Модуль 4. Власна тема

10

Кольорові ролі Material 3

primary, onPrimary, background, surface — навіщо схемі ролі, а не просто палітра.

11

Color.kt і Theme.kt: своя тема

Створюємо пакет ui/theme і збираємо всі кольори застосунку в одному місці.

12

Темний режим і edge-to-edge

Перемикання теми разом із системою та малювання під системними панелями.

Модуль 5. Списки даних

13

data class і незмінність

Модель даних Note, метод copy та чому Compose любить незмінні об'єкти.

14

LazyColumn і ключі списку

Список без гальм навіть на тисячі елементів та навіщо кожному елементу key.

15

mutableStateListOf: список, що змінюється

Спостережувані колекції, додавання й видалення нотаток з оновленням UI.

Модуль 6. Навігація

16

Navigation Compose: NavHost і маршрути

Підключаємо бібліотеку навігації та описуємо екрани як маршрути-адреси.

17

Параметри маршруту та екран деталей

Передаємо id нотатки через маршрут і будуємо другий екран.

18

Scaffold і TopAppBar

Каркас екрана з шапкою, innerPadding та кнопка «Назад», що працює зі стеком.

Модуль 7. ViewModel і StateFlow

19

Навіщо ViewModel

Життєвий цикл Activity, чому дані зникають при повороті і хто їх має тримати.

20

UiState і StateFlow

Увесь стан екрана одним незмінним об'єктом та потік значень із бібліотеки корутин.

21

Під'єднуємо ViewModel до Compose

viewModel(), collectAsStateWithLifecycle та навігація без жодної логіки.

Модуль 8. Збереження налаштувань

22

DataStore і репозиторій

Сучасна заміна SharedPreferences та шар, що ховає джерело даних.

23

Корутини: suspend і viewModelScope

Асинхронний код без колбеків: suspend-функції, launch і stateIn.

24

Перемикач теми, що переживає перезапуск

З'єднуємо DataStore, ViewModel і тему — вибір користувача зберігається на диску.

Модуль 9. Мережа

25

Дозвіл INTERNET і підключення Retrofit

Перший запис у маніфесті, звичайні та небезпечні дозволи, бібліотека Retrofit.

26

Опис API: інтерфейс, DTO, NetworkModule

Retrofit перетворює HTTP-запити на методи Kotlin; навіщо розділяти DTO і модель.

27

Loading / Error / Data: три стани екрана

runCatching, обробка помилок мережі та when-блок для трьох станів UI.

Модуль 10. Реліз

28

Тексти в ресурсах і локалізація

strings.xml, кваліфікатори ресурсів та переклад застосунку без зміни коду.

29

Адаптивна іконка і версія застосунку

Векторна іконка під будь-яку форму лаунчера, versionCode і versionName.

30

Keystore і підпис APK

Створюємо ключ підпису, ховаємо паролі від git і налаштовуємо signingConfig.

31

R8: мінімізація і релізна збірка

isMinifyEnabled, правила ProGuard для Gson та перевірка релізу на пристрої.

Модуль 11. Діалоги та сповіщення

32

AlertDialog: підтвердження видалення

Діалог як частина стану екрана та патерн «Note? замість Boolean».

33

Snackbar і rememberCoroutineScope

Повідомлення внизу екрана, SnackbarHost у Scaffold та корутини в UI.

34

Системні сповіщення: канал і дозвіл

NotificationChannel, дозвіл POST_NOTIFICATIONS та NotificationCompat.

35

PendingIntent і BroadcastReceiver

Кнопка на сповіщенні, що працює навіть коли застосунок закритий.

Коментарі

💬

Коментарі доступні тільки для авторизованих користувачів