Видео и подкасты для разработчиков
Новостное приложение: с нуля до публикации в Google Play. Часть 1
Процесс будет разбит на несколько стримов, но разбираем все подробно.
Разработка приложения для просмотра новостей на основе публичного API с нуля до публикации в Google Play. Процесс будет разбит на несколько стримов, но разбираем все подробно.
Содержание:
- 0:00 Ожидание
- 0:31 Начало
- 1:21 Что делаем сегодня
- 2:49 Технологии
- 4:07 Про исходный код и полезная информация
- 5:45 Разбор API
- 8:36 Создание проекта, почему Compose
- 10:18 С чего начнем
- 11:31 Архитектура и библиотека, как повлиять на это — Boosty
- 12:19 Поймет ли Junior
- 12:50 Стэк
- 14:55 Настройка многомодульности
- 17:00 Добавление библиотек
- 23:42 NewsApi, начинаем создание
- 26:06 NewsApi, Enum для сортировки, аргументы пагинации
- 27:27 Про автоген по api
- 28:27 Удобные Jetpack аннотации
- 30:00 Класс для сортировки, мультикурсор
- 32:55 Модель возвращаемого типа
- 34:24 Почему везде @Serializable
- 35:25 Создаём модели сущностей ответа
- 39:21 NewsApi, инициализация
- 41:44 Trailing coma
- 42:35 NewsApi, converter factory для retrofit
- 44:37 Ссылка на документацию в api
- 45:45 Сериализация данных
- 55:48 Почему стоит скрывать API
- 56:06 Kotlin Result в возвращаемых типах Retrofit
- 58:30 Interceptor для api key
- 1:04:00 Разница между Interceptorами, настройка OkHttpClient
- 1:06:15 Вопросы чата
- 1:07:18 Как разделять api сервисы по модулям
- 1:08:05 Почему public поля моделей?
- 1:08:25 Как передать api key в Header, суть Interceptor
- 1:09:31 Почему не BuildSrc?
- 1:10:33 Кэширование данных в Базе Данных (БД)
- 1:11:30 БД, чистим build.gradle
- 1:11:51 БД подключаем Room и ksp
- 1:14:59 Зачем apply false в плагинах
- 1:16:45 БД, имплементация Room
- 1:20:20 БД, @Embedded для вложенных классов Entity
- 1:21:40 DBO и DTO для мапинга
- 1:23:35 БД, про кэш и key
- 1:26:06 БД Room Embedded
- 1:28:19 Ответы на вопросы зрителей
- 1:30:49 Как будут организованы фичи
- 1:32:36 Чистим build.gradle, подключаем Compose
- 1:33:55 Создаем входную Composable функцию для фичи
- 1:34:28 Получаем Jetpack View Model, корутины, бд и api модули
- 1:38:22 Создаем NewsViewModel, domain модель новостей
- 1:39:34 Создаем State класс, StateFlow через get()
- 1:41:57 News-data модуль для медиации api и бд
- 1:44:08 Доделывание БД, Dao, Clear table
- 1:48:05 Доделывание БД, Database
- 1:51:10 Room date type converter
- 1:53:06 Flow без suspend в dao, чистка tests
- 1:54:05 Имплементация медиатора news-data в виде репозитория
- 1:55:25 Про модели
- 1:57:00 UseCase для примера
- 1:58:10 Доработка репозитория
- 1:59:28 Мапперы
- 2:01:05 Room как api зависимость, как исправить
- 2:04:14 Обсуждение логики, состояние запроса из бд
- 2:08:06 Финал, что дальше
- 2:08:38 Где найти исходники?
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.