#Hilt в #Android выглядит довольно интересно... Но только для небольших проектов.
Он позволяет прямо быстро завести приложение с использованием #DI, но цена этому - жесткие ограничения на обязательность аннтотаций и ограниченный набор компонент.
Неплохой вариант, когда надо сходу заинжектить нечто в #Acitivty или фрагмент, но тут может быть собака зарыта. Скорее всего, в большом проекте у вас будут всякие разные слои - данных, логики, представления и тд. И вот тут-то окажется, что, вполне возможно, в сами Активности и Фрагменты инжектить ничего и не надо, потому что они выступают просто как морда, а все данные и вся магия происходит ниже. Вон там, ниже, и нужны все не тривиальные зависимости. А тут-то Hilt уже не поможет. https://bit.ly/33d4z0t
Он позволяет прямо быстро завести приложение с использованием #DI, но цена этому - жесткие ограничения на обязательность аннтотаций и ограниченный набор компонент.
Неплохой вариант, когда надо сходу заинжектить нечто в #Acitivty или фрагмент, но тут может быть собака зарыта. Скорее всего, в большом проекте у вас будут всякие разные слои - данных, логики, представления и тд. И вот тут-то окажется, что, вполне возможно, в сами Активности и Фрагменты инжектить ничего и не надо, потому что они выступают просто как морда, а все данные и вся магия происходит ниже. Вон там, ниже, и нужны все не тривиальные зависимости. А тут-то Hilt уже не поможет. https://bit.ly/33d4z0t
Хабр
Hilt еще один DI?
Встречайте Hilt — Dependency Injection (DI) в JetPack, но это не правда, так как Hilt это просто обертка для Dagger2. Для небольших проектов сможет встать более...
С конца прошлого лета делал приложеньку для сервиса построения маршрута 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