Manual DI
DI-фреймворки продолжают появляться как грибы после дождя. Теперь рекомендуют использовать Metro, но всё чаще можно услышать, что люди принципиально отказываются от каких-либо библиотек для реализации DI. Так как в моей команде мы в основном делаем переиспользуемые общие модули, мы тоже давно отказались от DI-фреймворков. И знаете что? Мы вообще не испытываем из-за этого каких-либо проблем.
Тут я вспомнил про свой KMP-сэмпл и решил, что будет круто показать всё это на примере и заменить Koin в проекте. Но хорошо, что я не начал делать это раньше времени: буквально на докладе про сравнение DI-фреймворков с Podlodka Android Crew я узнал, что Александр Власюк уже всё сделал раньше и даже заслал pull request🌐
Примечательно, что Manual DI не только даёт compile-time safety по сравнению с Koin (без всяких плагинов), но даже количество строк кода в проекте сократилось😲
Понятно, что это всего лишь пример. Если использовать Koin глобально, то кода с Manual DI придётся писать больше. Однако я придерживаюсь подхода, при котором DI должен быть изолирован внутри модуля, а зависимости должны быть объявлены явно, чтобы можно было легко переиспользовать этот модуль где угодно.
А вы что думаете, стоят ли DI-фреймворки, чтобы их изучать и постоянно мигрировать проект на все более новые решения❓
#DI #Kotlin #KMP
DI-фреймворки продолжают появляться как грибы после дождя. Теперь рекомендуют использовать Metro, но всё чаще можно услышать, что люди принципиально отказываются от каких-либо библиотек для реализации DI. Так как в моей команде мы в основном делаем переиспользуемые общие модули, мы тоже давно отказались от DI-фреймворков. И знаете что? Мы вообще не испытываем из-за этого каких-либо проблем.
Тут я вспомнил про свой KMP-сэмпл и решил, что будет круто показать всё это на примере и заменить Koin в проекте. Но хорошо, что я не начал делать это раньше времени: буквально на докладе про сравнение DI-фреймворков с Podlodka Android Crew я узнал, что Александр Власюк уже всё сделал раньше и даже заслал pull request
Примечательно, что Manual DI не только даёт compile-time safety по сравнению с Koin (без всяких плагинов), но даже количество строк кода в проекте сократилось
Понятно, что это всего лишь пример. Если использовать Koin глобально, то кода с Manual DI придётся писать больше. Однако я придерживаюсь подхода, при котором DI должен быть изолирован внутри модуля, а зависимости должны быть объявлены явно, чтобы можно было легко переиспользовать этот модуль где угодно.
А вы что думаете, стоят ли DI-фреймворки, чтобы их изучать и постоянно мигрировать проект на все более новые решения
#DI #Kotlin #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍20🔥6🗿3
Как выстроить актуальную IT-инфраструктуру проекта в 2026?
Мнение экспертов и реальные кейсы на Selectel Tech Day
8 октября в Москве пройдет Selectel Tech Day — флагманская конференция одного из ведущих облачных провайдеров. В программе: доклады об актуальных технологиях, реальный опыт построения гибкой и устойчивой IT-инфраструктуры и нетворкинг.
Присоединяйтесь, чтобы узнать о главных технологических трендах и обменяться опытом с экспертами из крупных IT-компаний.
Место встречи — Москва, Цифровое деловое пространство. Участие в конференции бесплатное, нужно зарегистрироваться →
Реклама. АО "Селектел". erid:2W5zFJaTqC4
Мнение экспертов и реальные кейсы на Selectel Tech Day
8 октября в Москве пройдет Selectel Tech Day — флагманская конференция одного из ведущих облачных провайдеров. В программе: доклады об актуальных технологиях, реальный опыт построения гибкой и устойчивой IT-инфраструктуры и нетворкинг.
Присоединяйтесь, чтобы узнать о главных технологических трендах и обменяться опытом с экспертами из крупных IT-компаний.
Место встречи — Москва, Цифровое деловое пространство. Участие в конференции бесплатное, нужно зарегистрироваться →
Реклама. АО "Селектел". erid:2W5zFJaTqC4
👍2
Изменение конфигурации в прошлом
Еще пару лет назад я заметил, что если в AndroidManifest явно прописать все варианты изменения конфигурации в configChanges, то Compose сможет самостоятельно подхватить подавляющее большинство изменений без какого-либо дополнительного кода. Но тогда я был непонят сообществом, и никто это всерьез не воспринял😨
Теперь же об этом заговорили инженеры из Google, рекомендую посмотреть доклад с Droidcon🟥 . Начиная с compileSdk 36, можно одной строчкой игнорировать все текущие и будущие причины пересоздания Activity из-за изменения конфигурации.
Это позволит нам полностью избавиться от андроидовской ViewModel и инкапсулировать нашу логику в обычных классах. При этом это не значит, что Activity никогда не будет пересоздаваться, изменение конфигурации лишь одна из причин. Но в таких случаях состояние можно сохранить только с помощью SavedInstanceState, ViewModel здесь бы не помогла.
А вы что думаете, готовы ли вы забыть об изменении конфигурации в Android и о ViewModel в частности?
#Android #Compose
Еще пару лет назад я заметил, что если в AndroidManifest явно прописать все варианты изменения конфигурации в configChanges, то Compose сможет самостоятельно подхватить подавляющее большинство изменений без какого-либо дополнительного кода. Но тогда я был непонят сообществом, и никто это всерьез не воспринял
Теперь же об этом заговорили инженеры из Google, рекомендую посмотреть доклад с Droidcon
Это позволит нам полностью избавиться от андроидовской ViewModel и инкапсулировать нашу логику в обычных классах. При этом это не значит, что Activity никогда не будет пересоздаваться, изменение конфигурации лишь одна из причин. Но в таких случаях состояние можно сохранить только с помощью SavedInstanceState, ViewModel здесь бы не помогла.
А вы что думаете, готовы ли вы забыть об изменении конфигурации в Android и о ViewModel в частности?
#Android #Compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27👎6✍4🔥4😎3😁1
Как часто вы видели качественные толстовки для айтишников, да еще и с тематикой Kotlin? Бренд Rybe делает по-настоящему классные худи, которые не стыдно носить 🤩
🔘 Плотный 100% хлопок — мягкий, тёплый, но без перегрева.
🔘 Люверсы для пропуска.
🔘 Карман на металлических кнопках.
🔘 Салфетка для очков или экрана в кармане.
🔘 Карман внутри для наушников, чтобы они не болтались и не терялись.
В общем, если искали реально удобную толстовку без кривых швов и дурацких надписей, вот она 👈
В общем, если искали реально удобную толстовку без кривых швов и дурацких надписей, вот она 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15🤡10😢8👍3🥴3😁2👎1🗿1😎1