Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
20 tasks
Alex009 opened this issue May 16, 2021 · 1 comment
Open
20 tasks
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@Alex009
Copy link
Member

Alex009 commented May 16, 2021

Адрес 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. Итоги
@Alex009 Alex009 added the documentation Improvements or additions to documentation label May 16, 2021
@kovalandrew
Copy link
Collaborator

@DevTchernov тут надо будет ещё затронуть создание вьюмодели и фичи в целом, т.к. фича авторизации уже есть в бойлерплейте из коробки, в 3й кодлабе на этом не будет сильной остановки и деталей

Alex009 added a commit that referenced this issue May 31, 2021
@Alex009 Alex009 changed the title IceRock KMM onboarding #4 - реализация фичи списка IceRock KMM onboarding #3 - реализация фичи списка May 31, 2021
DevTchernov pushed a commit to DevTchernov/codelabs.kmp.icerock.dev that referenced this issue Jun 4, 2021
DevTchernov pushed a commit to DevTchernov/codelabs.kmp.icerock.dev that referenced this issue Jun 4, 2021
Alex009 added a commit that referenced this issue Jun 9, 2021
@anton6tak anton6tak changed the title IceRock KMM onboarding #3 - реализация фичи списка IceRock KMM onboarding #6 - реализация фичи списка Jun 21, 2021
@anton6tak anton6tak changed the title IceRock KMM onboarding #6 - реализация фичи списка IceRock KMM "реализация фичи списка" #6 - замечания Jun 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

4 participants