Виталий Перятин@infinity_coder
Android разработчик
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Разработчик мобильных приложений
Ведущий
От 800 000 ₽
Разработка под Android
Kotlin
Jetpack Compose
Kotlin Multiplatform
Управление разработкой
Я очень рад разработчикам, которые осознанно внедряют библиотеки в свой проект :)
Как показывает практика гораздо чаще приходишь в проект и видишь кучу лишних зависимостей, которые вдобавок ещё и некорректно используются. Например, многие используют Dagger даже не понимая как работают скоупы :)
Конечно же, везде есть золотая середина. Самое главное — думать головой что и когда использовать.
Язык может заменить многие инструменты. Например, те же паттерны проектирования в каждом языке видоизменяются. А в Kotlin паттерн Singleton пишется одним ключевым словом object. Аналогично работает и с другими инструментами.
Благодаря Kotlin делегатам, Kotlin DSL и некоторым другим фишечкам Kotlin появились такие библиотеки как Tootkpuck, Koin, Kodein. И как раз благодаря Kotlin мы можем прокидывать зависимости гораздо проще.
Помимо либ мы можем написать DI руками, используя делегаты, который внешне будет выглядеть гораздо проще, чем Dagger. К сожалению, я потерял статью, в которой было описано как красиво можно написать DI на Kotlin делегатах :(
Поддерживаю каждое Ваше замечание.
По поводу DI в Kotlin я имел ввиду, что можно использовать Koin, Kodein, Toothpick или прокидывать зависимости руками. Каждый из этих вариантов добавляет меньше объема сгенерированного кода, проще отлаживается и внешне выглядит гораздо проще.
Я не представляю как можно написать удобную библиотеку для пагинации для всех приложений. Я изучил решения от Google и даже в их примерах полно багов с PagingLibrary 3, а в PagingLibrary 2 я нашел много ограничений, к сожалению. Поэтому в статье я склонялся к тому, что пагинацию надежнее писать самому.
С основным посылом комментария я полностью согласен. В своей группе в ВК я опубликовал пост, в котором написал, что если фича очень тяжелая в реализации (например, отображение PDF документа), то лучше использовать готовую либу. Ещё раз спасибо за замечание, это стоило отметить в статье.