У вас бывало, что нашли библиотеку, пакет или какой то другой инструмент, и кажется, что это хорошая идея, а со временем это решение только раздражает и замедляет? Предлагаю разобрать такие практики и обсудить, чем их можно заменить.
Красный флаг: библиотек больше, чем функций в проекте
Представим, что нам нужно написать небольшое приложение для просмотра прогноза погоды. Как раз недавно мы наткнулись на пакет, предоставляющий набор погодных иконок.
Кажется, что было бы здорово использовать его в проекте. Добавляем следующие зависимости в pubspec:
dependencies:
flutter:
sdk: flutter
# Для получения данных о погоде
http: ^1.2.2
# Для иконок погоды
weather_icons: ^3.0.0
Теперь с пакетом иконок нам не нужно самостоятельно добавлять ассеты для разных состояний погоды. Кажется, что мы освободили себя от значительного объема работы. Вот только:
🔴Библиотека содержит в себе более 200 ассетов, когда нам нужны условные 15
🔴Она, неожиданно, усложняет онбординг новых разработчиков, потому что с ней никто раньше не сталкивался
🔴Пакет обновлялся в последний раз больше года назад, а это всегда риск остановки поддержки библиотеки и последующего рефакторинга приложения
Как быть?
Свести зависимость от чужих решений в проекте к минимуму. Особенно если речь идет о решении небольших задач, которые можно сделать самостоятельно.
В нашем примере можно убрать библиотеку для иконок и добавить ассеты в проект в том количестве, в котором они нужны именно в нем.
dependencies:
flutter:
sdk: flutter
# Для получения данных о погоде
http: ^1.2.2
flutter:
assets:
- assets/icons/
Итог: подстраиваем инструменты под приложение, а не создаем приложение под инструменты.
💬 Делитесь, какие паттерны в разработке на Flutter — личная боль?