Skip to content

IceRock KMM "реализация фичи списка" #6 - замечания #23

Description

@Alex009

Адрес Codelab

Состав

  • Экран главный с табами - главная, карта, настройки. В первых табах будут заглушки.
  • Экран настроек - список, без работы с сервером, выводится:
    • Пуши (свич)
    • Текст зачем нам пуши (отображется только когда пуши отключены)
    • Кнопка смены пароля - пока обработки нажатия на кнопки нет (пишем просто в лог)
    • Кнопка логаута (делается логаут, который на авторизации был сделан на главном экране)

Флоу

  • Включаем приложуху, авторизуемся, идем в настройки, там можем включать и выключать пуши, чтобы увидеть как скрывается и показывается текст пояснялки.

Используем

ViewModel, livedata, units, resources, Napier, ViewBinding.

Подходы

  • Работа со списком через units.
  • Работа с локализацией из MR.
  • Пишем KDoc комментарии к unit factory.

Не забыть

  • Не используем ResourceState.
  • Логируем с Napier.
  • Свич пуша делаем через MutableLiveData, не забываем про Closeable, упоминаем что это надо для всех биндингов лайвдат.
  • Пояснить про itemId - что и зачем, как используется. пояснение как работает дифф. указать важность указания id
  • пояснение какой id ставить для элементов типа divider'ов и loader'ов
  • Включить Diffable версию на iOS.
  • Сделать отдельный градл модуль для настроек. Показать как создавать новые фичи (градл модуль, конфиги все, состав внутри), упомянуть про шейпер шаблон.
  • пояснение как юниты превращаются в список на платформах
  • как подключать cocoapod юнитов к айосу, необходимость экспорта moko-units из kotlin модуля, почему важно чтобы имя kotlin модуля было MultiPlatformLibrary при использовании MultiPlatformLibraryUnits
  • описать как кликабельные действия в юнитах использовать и что нужно для передачи лямбд подключать moko-utils и использовать weakLambda

Чему научимся

Делать списки, управляемые из общего кода. Использовать общую локализацию.

Шаги

  1. Вводная
  2. Делаем список
    1. Показываем публичный интерфейс общего кода - вьюмодель с лайвдатой юнитов и unitfactory
    2. Тут делаем вьюмодель
  3. Делаем список на андроиде
  4. Делаем список на айосе
  5. Итоги

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

documentationImprovements or additions to documentation

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions