Skip to content

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

@Alex009

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. Итоги

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