🔗 Avito.Tech avito.tech/ 💰 Поддержать проект на Boosty bit.ly/3sratqQ или Patreon patreon.com/android_broadcast 🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast
Пользуюсь на текущем kodein. Обладает всеми плюсами koin. Помимо этого api не ломается на минорных апдейтах, а проблема с аргументами решена запретом передавать больше одного аргумента (больше одного аргумента - завернул это все в класс и передал).
Если в вакансии среди технологий стоит Dagger2, то подразумевается Hilt? Или нужно уметь работать именно с Dagger2? Я читал что у Hilt есть ограничения для больших проектов.
Недавно открыл для себя тему инъекции зависимостей. Стою на распутье. Даггер? Коин? Хилт? Время не поджимает особо. Ковыряю маленький проектик чисто в целях познания теэнологий на практике. Что может пригодиться больше на собесах? И кто из них имеет графические подсказки в студии (значки завистимстей слева от кода как в Интелидж Идее со Спрингом)? Спасибо за ответы :)
Лично мне удобно использовать dagger даже на маленьком проекте. DependencyInjection это очень крутая штука которая автоматически подставляет все инстансы где они необходимы и освобождает от необходимости вручную сопоставлять зависимости как это нужно было бы делать в ServiceLocator. Это главное преимущество даггера, которого нету ни в каких других фреймворках. А тем более это очень помогает когда в проекте несколько сотен модулей. Но единственное что удручает это скорость сборки, потому что добавляется генерация кода, потом его дополнительная компиляция, а при переходе между ветками кэш ломается и начинает собирать опять по новой. Koin же предпочитаю использовать только в сдк приложениях, когда есть только ограниченный функционал, в котором уверен что он не разрастется
Крутая интеграция библиотек гугла друг с другом и с Android Studio очень мотивирует целиком переходить на их технологии, что имеет обратную сторону в виде отмирания других подходов и библиотек, что может в будущем негативно сказаться на Android разработке в целом, но посмотрим что там выйдет)
Спс за видео! Я вибираю koin для небольших проектов, мне он нравиться за быстроту внедрения и лаконичный код, даггер успользую только на одном большом проекте, да и то, ругался на него изза времени сборки, хотел на koin переписать, однако купил недавно mac на m1, и теперь уже как-то пофиг. В новых проектах хочу конечно попробовать уже hilt.
Имею опыт перевода двух больших проектов с Даггера на Коин, ибо даггер в мультимодульном проекте это большая попоболь. + Он реально сложен, с кучей фичей, каждый проект по своему его интегрирует и почти каждый делает это плохо. У коина намного все прозаичнее и понятнее, за это его и любят. (Между прочим знакомство с Коином начал после Вашего доклада, Кирилл) В общем, аргументы приведенные в видео нерелевантны, имхо. Выглядит и правда как переобувание для личных целей. А мой совет: сделать вместе с обучалками даггеру, обучалку для коина. Судя по комьюнити это зайдет лучше, чем даггер.
Делали большой проект, с кучей модулей, часть из которых доставлялись зависимостями отдельными. Выбрали hilt в качестве di. Горя конечно мы с ним хапнули при его инициализации в модулях. Но там есть небольшой костылик, с помощью которого все получилось разрулить. В любом случае на данный момент склоняюсь больше к hilt'у - с ни намного проще начать проект и тулинг просто супер. В koin больше всего не нравилось отсутствие проверок графа на этапе компиляции, а писать тесты и все это настраивать нет времени, а тем более есть проект на фрилансе.
Hilt история только про Android, так что да, на беке работать не будет. Хотя упрощение Dagger через Hilt может быть полезно многим. Ещё надо будет компнуть глубже, возможно я и ошибаюсь
То что она есть, я знаю, но работа с ними никак не проверяется и при изменения набора аргументов у зависимости, место где они передаются никак не знает об этом
@@AndroidBroadcast а как в dagger этот момент, проверяется в компайл-тайме? Насколько я знаю, нет. Иначе в dagger не было бы выброса исключений в духе "не найдено провайдера для такой-то зависимости".
Проверка проходит на регрессе в ci, на счёт многомодульности проблем нет, код не генерится, очень быстро собирается. Как сервис локатор работает вполне себе неплохо. Но рефакторинг одних и тех же модулей разными командами однозначно больно даётся.
Выбрал Hilt тк проще запустить для небольшого проекта Андройд. Так же это плюс для больших команд тк люди быстрее вливаются и начинают писать тесты/ фичи
Реклама курса про даггер. Мы поняли. Тушите свет - расходимся. Ps vУ каждого инструмента своё предназначение. То что даггер на больших проектах удобнее это факт, но коин не становится автоматом плохим. Не надо никуда возвращаться, просто надо выбирать инструмент по задачам.
Вот вообще его делал не для рекламы, а потому что попросили подробнее раскрыть эту тему, которая проскальзывала. Да и курс что посмотрят, что нет мне всё равно. Богаче не стану )
@@AndroidBroadcast дело не в деньгах, а трудах. Курс то хороший, просто не всем кто его просил под силу пройти его от начала до конца. Как всегда больше криков)
Вывод такой: ты вернулся с dagger на koin потому, что (ты говоришь о бООООльшом проекте с модулями) 1 Нет простейшего UI-теста на каком-нибуль kaspresso, который запускается на CI/CD, и просто проклацает приложение. Это прям нубство нубское в большом® сложном® приложении® той-самой-крутой-компании-в-которой-работаю® 2 Обновляешь либу без просмотра релиз-нот, без оценки необходимости. Это уровень джуниора, но никак не выше. Посмотреть бы код. Очень часто проблемы возникают из-за того, что на DI/SL кидают то, чего там быть не должно, особенно часто: инициализация retrofit/okhttp/cert pinning. Ни разу не было проблемы с koin в прод/препрод/тесте как на мелких проектах, так и на больших® с® кучей® разрабов® и® модулей® и овер 50к кода® В общем, катить бочку на фреймворк, если не умеешь в организацию процесса разработки - очень странно...
🔗 Avito.Tech avito.tech/
💰 Поддержать проект на Boosty bit.ly/3sratqQ или Patreon patreon.com/android_broadcast
🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast
Чтобы не получать ошибки в рантайме нужно думать как ошибки в рантайте ☝
Пользуюсь на текущем kodein.
Обладает всеми плюсами koin. Помимо этого api не ломается на минорных апдейтах, а проблема с аргументами решена запретом передавать больше одного аргумента (больше одного аргумента - завернул это все в класс и передал).
На последнем проекте выбрал Kodein.
Потому что мультиплатформа, простота относительно даггера, дебаг ошибок вообще элементарный.
Если в вакансии среди технологий стоит Dagger2, то подразумевается Hilt? Или нужно уметь работать именно с Dagger2? Я читал что у Hilt есть ограничения для больших проектов.
Скорее всего нужно иметь работать с Dagger 2. Hilt простая настройка поверх и его надо изучить, что быстро
06:00
У Compose нет визуального редактора. Точнее он как-бы есть, но намного быстрее проверить изменения макета запустив приложение.
Это пока, он же только релизнулся
@@bolnoi8 именно что релизнулся, а не в бету перешёл.
@@juneuniversum это к чему? На релизе андроид лейаутов превью вообще не было
@@bolnoi8 к низкому качеству тулинга. Что он релизнулся, но по факту, как будто в бету вышел, и до сих пор не юзабельный.
Качество хромает.
@@juneuniversum слово релиз ничего не значит, до появления андроид студии тулзов вообще не было, хотя андроид фреймворк был в релизе
А как быть с мультиплатформой?
Недавно открыл для себя тему инъекции зависимостей.
Стою на распутье. Даггер? Коин? Хилт?
Время не поджимает особо. Ковыряю маленький проектик чисто в целях познания теэнологий на практике.
Что может пригодиться больше на собесах? И кто из них имеет графические подсказки в студии (значки завистимстей слева от кода как в Интелидж Идее со Спрингом)?
Спасибо за ответы :)
Лично мне удобно использовать dagger даже на маленьком проекте.
DependencyInjection это очень крутая штука которая автоматически подставляет все инстансы где они необходимы и освобождает от необходимости вручную сопоставлять зависимости как это нужно было бы делать в ServiceLocator.
Это главное преимущество даггера, которого нету ни в каких других фреймворках. А тем более это очень помогает когда в проекте несколько сотен модулей.
Но единственное что удручает это скорость сборки, потому что добавляется генерация кода, потом его дополнительная компиляция, а при переходе между ветками кэш ломается и начинает собирать опять по новой.
Koin же предпочитаю использовать только в сдк приложениях, когда есть только ограниченный функционал, в котором уверен что он не разрастется
Чем понятнее код, тем лучше, Koin one love :)
Hilt вас порадует
а где покупал такие стикеры (на планшете)?
Собрал по конференциям
Крутая интеграция библиотек гугла друг с другом и с Android Studio очень мотивирует целиком переходить на их технологии, что имеет обратную сторону в виде отмирания других подходов и библиотек, что может в будущем негативно сказаться на Android разработке в целом, но посмотрим что там выйдет)
С одной стороны да, с другой - никто не мешает писать свои плагины. Для этого нужны ресурсы + нужно поддерживать
Спс за видео! Я вибираю koin для небольших проектов, мне он нравиться за быстроту внедрения и лаконичный код, даггер успользую только на одном большом проекте, да и то, ругался на него изза времени сборки, хотел на koin переписать, однако купил недавно mac на m1, и теперь уже как-то пофиг. В новых проектах хочу конечно попробовать уже hilt.
Имею опыт перевода двух больших проектов с Даггера на Коин, ибо даггер в мультимодульном проекте это большая попоболь. + Он реально сложен, с кучей фичей, каждый проект по своему его интегрирует и почти каждый делает это плохо.
У коина намного все прозаичнее и понятнее, за это его и любят. (Между прочим знакомство с Коином начал после Вашего доклада, Кирилл)
В общем, аргументы приведенные в видео нерелевантны, имхо.
Выглядит и правда как переобувание для личных целей.
А мой совет: сделать вместе с обучалками даггеру, обучалку для коина. Судя по комьюнити это зайдет лучше, чем даггер.
Я буду рад обсудить опыт, чтобы понять что я делал не так с Koin. Пиши в личку t.me/krlrozov
Почему не Hilt?
Фактически Hilt - это Dagger. Ничего против не имею, но в больших проектах с ним боль и с модуляризацией проблемы
Делали большой проект, с кучей модулей, часть из которых доставлялись зависимостями отдельными. Выбрали hilt в качестве di. Горя конечно мы с ним хапнули при его инициализации в модулях. Но там есть небольшой костылик, с помощью которого все получилось разрулить.
В любом случае на данный момент склоняюсь больше к hilt'у - с ни намного проще начать проект и тулинг просто супер. В koin больше всего не нравилось отсутствие проверок графа на этапе компиляции, а писать тесты и все это настраивать нет времени, а тем более есть проект на фрилансе.
Хотел бы увидеть что конкретно в фича модулях коин не могёт
Я выбираю обе библиотеки, обе удобные, с обеими делал многомодульные проекты, никаких особых проблем не ощутил.
Feature модули?
На коине проще и меньше кода писать нужно, а чтобы ошибки в рантайме не возникали - нужно просто не пользоваться именными параметрами конструкторов
Есть Hilt. С ним томе мало кода
@@AndroidBroadcast Меня немного утомляют AssistedFactory, в коине с передачей параметров проще.
Я пишу и Android и back. В бэке hilt вроде как работать не будет?
Hilt история только про Android, так что да, на беке работать не будет. Хотя упрощение Dagger через Hilt может быть полезно многим. Ещё надо будет компнуть глубже, возможно я и ошибаюсь
Согласен, только реализация нужная простая и с проверкой во время компиляции. Как добиться?
В koin поддержка аргументов уже как несколько месяцев реализована, они поставляются автоматически
То что она есть, я знаю, но работа с ними никак не проверяется и при изменения набора аргументов у зависимости, место где они передаются никак не знает об этом
@@AndroidBroadcast а как в dagger этот момент, проверяется в компайл-тайме? Насколько я знаю, нет. Иначе в dagger не было бы выброса исключений в духе "не найдено провайдера для такой-то зависимости".
Кирилл, а когда выйдет урок по многомодульности c dagger2?
Уже в сентября. Я взял небольшой отпуск, да и старые видео плохо смотрели. Этот выпуск - давно записанный уже
Проверка проходит на регрессе в ci, на счёт многомодульности проблем нет, код не генерится, очень быстро собирается. Как сервис локатор работает вполне себе неплохо. Но рефакторинг одних и тех же модулей разными командами однозначно больно даётся.
в последнем проекте выбрал hilt. Это был средних размеров проект. Мне hilt вполне зашел. Буду юзать его и в следующем проекте.
Много модулей или один?
@@AndroidBroadcast один модуль, не люблю я многомодульность.
Выбрал Hilt тк проще запустить для небольшого проекта Андройд. Так же это плюс для больших команд тк люди быстрее вливаются и начинают писать тесты/ фичи
Да, правильно сделали!
Многомодульный проект с Hilt - проблем нет
Супер! Буду рад обсудить опыт в личке t.me/krlrozov
Реклама курса про даггер. Мы поняли. Тушите свет - расходимся.
Ps vУ каждого инструмента своё предназначение. То что даггер на больших проектах удобнее это факт, но коин не становится автоматом плохим. Не надо никуда возвращаться, просто надо выбирать инструмент по задачам.
Вот вообще его делал не для рекламы, а потому что попросили подробнее раскрыть эту тему, которая проскальзывала. Да и курс что посмотрят, что нет мне всё равно. Богаче не стану )
@@AndroidBroadcast дело не в деньгах, а трудах. Курс то хороший, просто не всем кто его просил под силу пройти его от начала до конца. Как всегда больше криков)
Ну хэзэ, говорят коин для котлина, а Даггер для джабы
Да, такое есть, но в рамках Android разработки это принципиально?
@@AndroidBroadcast не слышал такого
@@AndroidBroadcast но самому стало глаза мозолить от аннотаций в котлине
+
Вывод такой: ты вернулся с dagger на koin потому, что (ты говоришь о бООООльшом проекте с модулями)
1 Нет простейшего UI-теста на каком-нибуль kaspresso, который запускается на CI/CD, и просто проклацает приложение. Это прям нубство нубское в большом® сложном® приложении® той-самой-крутой-компании-в-которой-работаю®
2 Обновляешь либу без просмотра релиз-нот, без оценки необходимости. Это уровень джуниора, но никак не выше.
Посмотреть бы код. Очень часто проблемы возникают из-за того, что на DI/SL кидают то, чего там быть не должно, особенно часто: инициализация retrofit/okhttp/cert pinning.
Ни разу не было проблемы с koin в прод/препрод/тесте как на мелких проектах, так и на больших® с® кучей® разрабов® и® модулей® и овер 50к кода®
В общем, катить бочку на фреймворк, если не умеешь в организацию процесса разработки - очень странно...
И этот вывод сделан был по одному видео? Вы также собесы проводите?
А почему вы посчитали, что автор обновляет либу без просмотра релиз-нот и без оценки необходимости?
Я так понял это был наброс в сторону меня, что я обновляю так
А где вы делаете инициализацию okhttp, retrofit, etc?