Начали за #KMP обсуждать.
Сейчас на проекте пробую максимально переиспользовать все что только можно.
При этом UI оставить нативным пока.
Полезности, которые для себя нашел:
- Decompose, подход который позволяет факту всё от даты до ViewModel написать кросплатформенное
- Список либ, который поддерживают КМП
- Kermit + crashlytics позволяет сделать универсальное логирование в КМП слое.
Сейчас на проекте пробую максимально переиспользовать все что только можно.
При этом UI оставить нативным пока.
Полезности, которые для себя нашел:
- Decompose, подход который позволяет факту всё от даты до ViewModel написать кросплатформенное
- Список либ, который поддерживают КМП
- Kermit + crashlytics позволяет сделать универсальное логирование в КМП слое.
arkivanov.github.io
Installation - Decompose
Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing functionality and pluggable UI (Compose, SwiftUI, JS React, etc.)
❤2
С конца прошлого лета делал приложеньку для сервиса построения маршрута Mapmagic (раньше activetrip, manymap).
Как обычно есть 100500 штук, которые хочется улучшить, поправить и оптимизировать, но решили лучше катнуть чем можно раньше, собирать фидбек и импрувить по дороге 🙂
Отзывы (в личку и\или в маркет), замечания, вопросы привествуются:
https://play.google.com/store/apps/details?id=app.mapmagic.android
Из интересного:
- бОльшая часть аппки на #KMP. Ииспользовал Decompose чтобы логически написать viewModel (aka Component) один раз, а UI плагином прицепить на уровне платформы. Это дает теоритическую возможность вообще всю логику, в том число подготовку UI моделей сделать один раз.
- Карты на #maplibre+#maptiler сделаны на уровне платформы, а вот подготовка geoJson для отображения - кросплатформенно.
- Когда необходима платформозависимая реализация, то на уровне домена лежит интерфейс, например
- Для #DI в КМП использован #Koin, а на уровне платформы его можно соединить и с Hilt/Swinject
- По ходу разработки нашел удобный сборник либ для КМП
На данный момент апка это больше компаньон для web платформы построения маршуртов. В Приложении можно только просматривать и записывать треки, строить пока нет.
https://play.google.com/store/apps/details?id=app.mapmagic.android
Как обычно есть 100500 штук, которые хочется улучшить, поправить и оптимизировать, но решили лучше катнуть чем можно раньше, собирать фидбек и импрувить по дороге 🙂
Отзывы (в личку и\или в маркет), замечания, вопросы привествуются:
https://play.google.com/store/apps/details?id=app.mapmagic.android
Из интересного:
- бОльшая часть аппки на #KMP. Ииспользовал Decompose чтобы логически написать viewModel (aka Component) один раз, а UI плагином прицепить на уровне платформы. Это дает теоритическую возможность вообще всю логику, в том число подготовку UI моделей сделать один раз.
- Карты на #maplibre+#maptiler сделаны на уровне платформы, а вот подготовка geoJson для отображения - кросплатформенно.
- Когда необходима платформозависимая реализация, то на уровне домена лежит интерфейс, например
AnalyticsDelegate. Он в свою очередь реализован на уровне платформы и прокидывается куда необходимо через DI.- Для #DI в КМП использован #Koin, а на уровне платформы его можно соединить и с Hilt/Swinject
- По ходу разработки нашел удобный сборник либ для КМП
На данный момент апка это больше компаньон для web платформы построения маршуртов. В Приложении можно только просматривать и записывать треки, строить пока нет.
https://play.google.com/store/apps/details?id=app.mapmagic.android
Google Play
MapMagic: Hike & Bike Maps - Apps on Google Play
Use your smart routes created with MapMagic for cycling, hiking, and running
👍3🔥3👀1