Разработка новостного приложения. Часть 6. Что я сделал не так

Sdílet
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 Финал

Komentáře • 19

  • @user-sankarsana
    @user-sankarsana Před 2 měsíci +1

    Спасибо! Жду про мультиплатформу.

  • @yet300
    @yet300 Před 2 měsíci

    Привет, Кирилл было бы круто если бы ты сделал видос про decompose или другие навигационные библиотеки

    • @AndroidBroadcast
      @AndroidBroadcast  Před 2 měsíci +1

      Возьму на замету, но тут нужно рабочее приложение и переписать его с несколькими подходами. Навигацию я и вовсе делаю свою

  • @alexeiandritchi5246
    @alexeiandritchi5246 Před 2 měsíci

    Hi Kiril, will you upload this code base to a public repo like github?

    • @AndroidBroadcast
      @AndroidBroadcast  Před 2 měsíci

      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

  • @dreamwalker9380
    @dreamwalker9380 Před 2 měsíci

    Начало с 13:53

  • @maksonic_official
    @maksonic_official Před 2 měsíci

    Спасибо за видео, нужно пересмотреть будет и предыдущие части, а то я несколько пропустил...
    Годная информация по ретрофиту, но особенно благодарю, за такую мелочь (но очень полезное), как фича typeSafe project accessors (1:07:40).🔥🔥🔥
    При разбиении модуля news-main на domain и ui, что-то пошло не так. В domain модуле должна быть domain модель данных, а в ui своя, но это ладно, меня больше смущает вьюмодель в слое бизнес-логики, чем оправдывается такое расположение? Считаю это огромной ошибкой. В domain слое не должно быть зависимостей андроида и даже какой-то работы с DI, а в видосе и компоуз (ладно, потом зависимость от компоуза заменили на зависимость от библиотеки kotlin immutable, но всё же не особо спасло.). Domain слой не должен от кого-то зависеть, в теории он вообще может на другом языке написан. (((Data -> Domain

    • @AndroidBroadcast
      @AndroidBroadcast  Před 2 měsíci

      Разбитие классов правильное, название модуля неудачное. Domain надо поменять на ui-logic

    • @AndroidBroadcast
      @AndroidBroadcast  Před 2 měsíci

      Про какой именно плохой пример речь?

    • @maksonic_official
      @maksonic_official Před měsícem

      @@AndroidBroadcast В любом случае в модуле с ui логикой не должно быть бизнес логики. (GetAllArticlesUseCase не должен лежать в одном модуле с вьюмоделью)

    • @ostoperla
      @ostoperla Před měsícem

      @@AndroidBroadcast ​ Привет. В моем понимании, domain layer должен быть представлен в виде java module и не мапить данные для UI layer. Скорее уж news-main должен дробиться на ui, ui-logic, domain. P.S. Возможно, данный проект рассматривался, как android only. Тогда можно пренебречь тем, что domain является android module, как в nowinandroid

  • @prabhattiwari3254
    @prabhattiwari3254 Před 2 měsíci

    Hey can you add english subtitle to your video

  • @user-zi8zw3yf2t
    @user-zi8zw3yf2t Před měsícem

    Зачем скринам принимать модифер?

    • @AndroidBroadcast
      @AndroidBroadcast  Před měsícem

      Потому что они могут встраиваться в другие Composable функции на больших экранах

    • @user-zi8zw3yf2t
      @user-zi8zw3yf2t Před měsícem

      @@AndroidBroadcast скрин подразумевает весь экран, а вот лист почему уже не принимает модифер, когда это только компонент экрана

    • @AndroidBroadcast
      @AndroidBroadcast  Před měsícem

      Значит я ошибся

  • @ivan_p3
    @ivan_p3 Před 2 měsíci +1

    Такие ошибки для джунов это норма