Kotlin Adept Notes
2K subscribers
69 photos
11 videos
116 links
Канал о разработке на Kotlin и обо всем, что с ним связано
По всем вопросам и рекламе: @ajiekcx
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Шаблонный код в пару кликов

Коллега из Контура, Евгений Мельцайкин, поделился Geminio шаблонами для генерации boilerplate кода.

Geminio – это плагин от HeadHunter для генерации кода из freemarker-ных шаблонов.


В репозитории вы найдете несколько полезных примеров, которые сможете смело переиспользовать в своем проекте:

🔸 Шаблон для создания Data и Domain слоя
🔸 Шаблон для создания Compose экрана
🔥 Шаблон для создания Decompose компонента + MviKotlin

🌟 Давайте накинем звёздочек в репозиторий этому джентльмену 😊

#Kotlin #Decompose #MviKotlin
@kotlin_adept
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥8👎1
Коллега из Контура, Василий Рылов, поделился архитектурным примером KMP проекта 🔥

В репозитории вы найдете пример приложения построенного по следующим принципам:

🟣Каждая фича представлена группой модулей: feature-component, feature-domain, feature-ui и feature-data
🟣Комбинация FSM-based MVI и MVVM+ подхода с простой небиблиотечной ViewModel
🟣Навигация абстрагирована от Decompose, Decompose компоненты выделены в собственные модули
🟣Многомодульный DI, каждый модуль может использовать собственную реализацию DI

В примере использованы библиотеки:
🔵Multiplatform Room
🔵Multiplatform Settings
🔵Decompose
🔵Compose Multiplatform
🔵Варианты с Kotlin-inject и Koin DI

#KMP #Decompose #Sample
@kotlin_adept
Please open Telegram to view this post
VIEW IN TELEGRAM
33🔥17👍5
Decompose шаг за шагом

Если вы хотели попробовать Decompose, но не знали, с чего начать, то специально для вас Максим Казанцев выпустил подробный туториал по библиотеке. Шаг за шагом автор покажет, как создать простое приложение и познакомит вас со всеми основными компонентами Decompose.

Это лишь первая часть серии видео, в которых вы подробно узнаете, как использовать Decompose на разных платформах.

Смотреть на YouTube 🟥

Смотреть на VK Видео 📹

#Decompose #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
22👍10🤡2👏1
Как подружить LifecycleOwner и Decompose

Некоторые API в Jetpack библиотеках принимают в качестве параметра LifecycleOwner, например, так сделано в CameraX. Однако если в вашем проекте используется Decompose, и вы используете LocalLifecycleOwner для получения текущего значения в Composable функции, то жизненный цикл будет работать некорректно: он будет соответствовать жизненному циклу Activity или Fragment, так как Decompose нигде не переопределяет этот CompositionLocal и использует собственный жизненный цикл из библиотеки Essenty.

Чтобы исправить эту проблему, необходимо сконвертировать LifecycleOwner из Decompose в его аналог из Jetpack. Однако из коробки пока что такого адаптера нет, и придётся написать его самостоятельно, по аналогии с конвертацией ЖЦ в Essenty.

В версии Decompose 3.4.0 эта проблема будет решаться проще: появится JetpackComponentContext, как отдельная зависимость, и можно будет сразу получить нужный lifecycle прямо из компонента.

Поэтому будьте внимательны при использовании CompositionLocal для работы с жизненным циклом, если навигация в проекте построена на Decompose.

#Decompose #Lifecycle
👍161