Разработка новостного приложения. Часть 6. Что я сделал не так
Vložit
- čas přidán 29. 07. 2024
- После ревью кода Кирилл Розов нашел много моментов, которые стоило сделать по-другому. На эфире разберем, что нужно поправить, и как стоило организовать проект, чтобы сразу публиковать хороший код.
🔗 Блог AvitoTech abdev.by/NeP6?erid=2VfnxvHdUYp
🔗 Каналы "Android Broadcast" taplink.cc/android_broadcast
✉️ Написать Кириллу kirill@androidbroadcast.dev
🔗 Boosty Android Broadcast abdev.by/DwPZ
🔗 Исходный код github.com/androidbroadcast/S...
#кодинг #androiddev #android #программирование #kotlin #КириллРозов #андроид #androidbroadcast
0:00 Начало, повестка дня
1:03 Интеграция
2:08 Оптимизация репозиториев зависимостей
3:58 Свой репозиторий (Maven Nexus)
4:17 Gradle offline mode
4:49 Про detekt через Gradle
6:05 Compose best practices
9:06 Рефактор State класса
10:41 Деление по файлам
12:10 Ещё compose best practices
16:46 Cтабильность в Compose
18:32 build константы в toml
21:17 Gradle convention plugin
24:47 Kotlin explicit mode
30:24 java-library
30:49 :app модуль (сохранение пароля)
32:52 Gradle таска и properties
39:29 Хранение proguard файлов
39:55 Retrofit Response Type Keeper
51:03 Retrofit proguard rules
51:30 Попытка подключения Proguard файлов
53:01 Gradle флаг type-safe projects
54:07 Фикс подключения Proguard файлов
55:56 Продолжение type-safe projects
57:57 Разделение на 2 ui модуля
1:04:36 compileOnly зависимость
1:05:13 ImmutableList и strong skipping mode
1:12:07 Продолжение про 2 ui модуля
1:13:07 Про модули и шаблонизаторы кода
1:14:58 Запуск и исправление
1:15:42 Про модуляризацию
1:18:11 Планы на след. часть
1:19:37 Донаты
1:20:40 Про пагинацию
1:21:26 Финал
Спасибо! Жду про мультиплатформу.
Привет, Кирилл было бы круто если бы ты сделал видос про decompose или другие навигационные библиотеки
Возьму на замету, но тут нужно рабочее приложение и переписать его с несколькими подходами. Навигацию я и вовсе делаю свою
Hi Kiril, will you upload this code base to a public repo like github?
Yes, but it will be later. The repo must be in ready for public access. Right now you can get access via Boosty Subscription boosty.to/androidbroadcast/purchase/2370422?ssource=DIRECT&share=subscription_link
Начало с 13:53
Уже подрезал видео
Спасибо за видео, нужно пересмотреть будет и предыдущие части, а то я несколько пропустил...
Годная информация по ретрофиту, но особенно благодарю, за такую мелочь (но очень полезное), как фича typeSafe project accessors (1:07:40).🔥🔥🔥
При разбиении модуля news-main на domain и ui, что-то пошло не так. В domain модуле должна быть domain модель данных, а в ui своя, но это ладно, меня больше смущает вьюмодель в слое бизнес-логики, чем оправдывается такое расположение? Считаю это огромной ошибкой. В domain слое не должно быть зависимостей андроида и даже какой-то работы с DI, а в видосе и компоуз (ладно, потом зависимость от компоуза заменили на зависимость от библиотеки kotlin immutable, но всё же не особо спасло.). Domain слой не должен от кого-то зависеть, в теории он вообще может на другом языке написан. (((Data -> Domain
Разбитие классов правильное, название модуля неудачное. Domain надо поменять на ui-logic
Про какой именно плохой пример речь?
@@AndroidBroadcast В любом случае в модуле с ui логикой не должно быть бизнес логики. (GetAllArticlesUseCase не должен лежать в одном модуле с вьюмоделью)
@@AndroidBroadcast Привет. В моем понимании, domain layer должен быть представлен в виде java module и не мапить данные для UI layer. Скорее уж news-main должен дробиться на ui, ui-logic, domain. P.S. Возможно, данный проект рассматривался, как android only. Тогда можно пренебречь тем, что domain является android module, как в nowinandroid
Hey can you add english subtitle to your video
No. It will consume a lot of time
Зачем скринам принимать модифер?
Потому что они могут встраиваться в другие Composable функции на больших экранах
@@AndroidBroadcast скрин подразумевает весь экран, а вот лист почему уже не принимает модифер, когда это только компонент экрана
Значит я ошибся
Такие ошибки для джунов это норма