Новые пакеты за неделю
Datum - пакет для Dart и Flutter, который позволяет создавать offline-first приложения с умной синхронизацией данных и автоматическим разрешением конфликтов.
👍 Лайки: 19, 📥 Скачиваний: 180.
Узнайте больше: https://pub.dev/packages/datum
easy_toast_plus - пакет для Flutter, который показывает простые и элегантные сообщения в любом месте своего приложения. Этот пакет легковесный, полностью настраиваемый и не требует дополнительных зависимостей.
👍 Лайки: 19, 📥 Скачиваний: 114.
Узнайте больше: https://pub.dev/packages/easy_toast_plus
solid_generator - пакет, который упрощает разработку приложений на Flutter, автоматически генерируя boilerplate-код и управляя состоянием и зависимостями.
👍 Лайки: 10, 📥 Скачиваний: 17.
Узнайте больше: https://pub.dev/packages/solid_generator
pipe_x - библиотека для управления состоянием, использующая архитектуру конвейера. Она фокусируется на точной реактивности и оптимизированном коде для улучшения разработки.
👍 Лайки: 9, 📥 Скачиваний: 276.
Узнайте больше: https://pub.dev/packages/pipe_x
sized_file - легковесный и интуитивно понятный пакет для Dart, который позволяет легко конвертировать и форматировать размеры файлов.
👍 Лайки: 5, 📥 Скачиваний: 271.
Узнайте больше: https://pub.dev/packages/sized_file
google_cloud_ai_generativelanguage_v1beta - пакет, который позволяет разработчикам использовать Gemini API для построения генеративных AI-приложений с возможностями понимания и обработки языка, изображений, аудио, видео и кода.
👍 Лайки: 1, 📥 Скачиваний: 266.
Узнайте больше: https://pub.dev/packages/google_cloud_ai_generativelanguage_v1beta
#Flutter #Dart #pubdev #FlutterPulse #FlutterPulseBestNewPackages #Datum #easy_toast_plus #solid_generator #pipe_x #sized_file #google_cloud_ai_generativelanguage_v1beta
Datum - пакет для Dart и Flutter, который позволяет создавать offline-first приложения с умной синхронизацией данных и автоматическим разрешением конфликтов.
👍 Лайки: 19, 📥 Скачиваний: 180.
Узнайте больше: https://pub.dev/packages/datum
easy_toast_plus - пакет для Flutter, который показывает простые и элегантные сообщения в любом месте своего приложения. Этот пакет легковесный, полностью настраиваемый и не требует дополнительных зависимостей.
👍 Лайки: 19, 📥 Скачиваний: 114.
Узнайте больше: https://pub.dev/packages/easy_toast_plus
solid_generator - пакет, который упрощает разработку приложений на Flutter, автоматически генерируя boilerplate-код и управляя состоянием и зависимостями.
👍 Лайки: 10, 📥 Скачиваний: 17.
Узнайте больше: https://pub.dev/packages/solid_generator
pipe_x - библиотека для управления состоянием, использующая архитектуру конвейера. Она фокусируется на точной реактивности и оптимизированном коде для улучшения разработки.
👍 Лайки: 9, 📥 Скачиваний: 276.
Узнайте больше: https://pub.dev/packages/pipe_x
sized_file - легковесный и интуитивно понятный пакет для Dart, который позволяет легко конвертировать и форматировать размеры файлов.
👍 Лайки: 5, 📥 Скачиваний: 271.
Узнайте больше: https://pub.dev/packages/sized_file
google_cloud_ai_generativelanguage_v1beta - пакет, который позволяет разработчикам использовать Gemini API для построения генеративных AI-приложений с возможностями понимания и обработки языка, изображений, аудио, видео и кода.
👍 Лайки: 1, 📥 Скачиваний: 266.
Узнайте больше: https://pub.dev/packages/google_cloud_ai_generativelanguage_v1beta
#Flutter #Dart #pubdev #FlutterPulse #FlutterPulseBestNewPackages #Datum #easy_toast_plus #solid_generator #pipe_x #sized_file #google_cloud_ai_generativelanguage_v1beta
Принцип инверсии зависимостей в Flutter: как сделать код более гибким и поддерживаемым 🌟
Привет, друзья! Сегодня мы поговорим о последнем принципе SOLID — принципе инверсии зависимостей (Dependency Inversion Principle) 🤔. Этот принцип помогает нам сделать код более гибким, поддерживаемым и легким для тестирования 🌈.
Итак, что же такое принцип инверсии зависимостей? 🤔 Он говорит о том, что высокоуровневые модули не должны зависеть от низкоуровневых, а оба должны зависеть от абстракций 📚. Абстракции, в свою очередь, не должны зависеть от деталей, а детали должны зависеть от абстракций 🔄.
По-простому, это означает, что «верх» приложения (экран, бизнес-логика) не должен быть привязан к конкретным реализациям «низа» (HTTP-клиент, база данных, SharedPreferences и т.д.) 🚫. Вместо этого, он должен зависеть только от интерфейсов 📝.
Но почему это так важно? 🤔 Когда высокоуровневый код напрямую знает о конкретных классах нижнего уровня, это приводит к проблемам 🚨:
- Любое изменение реализации «внизу» требует правок в бизнес-логике 📝
- Код сложно тестировать 🤯
- Система становится хрупкой 🌪️
- Нарушаются другие принципы SOLID 🚫
Принцип инверсии зависимостей как раз про то, чтобы «перевернуть» направление зависимости 🔄. Не высокоуровневый модуль зависит от деталей, а детали зависят от контракта, который описывает высокоуровневый модуль 📜.
Давайте рассмотрим пример с авторизацией 🔒. Мы можем создать абстракцию
Тогда наш
Итак, если вы видите в коде
Полную новость читайте здесь.
FlutterPulse — канал о мире Flutter!
#flutter #dart #FlutterPulse #FlutterPulseNews #flutterfriendly #SOLID #DependencyInversionPrinciple #cleanCode #programmingPrinciples
Привет, друзья! Сегодня мы поговорим о последнем принципе SOLID — принципе инверсии зависимостей (Dependency Inversion Principle) 🤔. Этот принцип помогает нам сделать код более гибким, поддерживаемым и легким для тестирования 🌈.
Итак, что же такое принцип инверсии зависимостей? 🤔 Он говорит о том, что высокоуровневые модули не должны зависеть от низкоуровневых, а оба должны зависеть от абстракций 📚. Абстракции, в свою очередь, не должны зависеть от деталей, а детали должны зависеть от абстракций 🔄.
По-простому, это означает, что «верх» приложения (экран, бизнес-логика) не должен быть привязан к конкретным реализациям «низа» (HTTP-клиент, база данных, SharedPreferences и т.д.) 🚫. Вместо этого, он должен зависеть только от интерфейсов 📝.
Но почему это так важно? 🤔 Когда высокоуровневый код напрямую знает о конкретных классах нижнего уровня, это приводит к проблемам 🚨:
- Любое изменение реализации «внизу» требует правок в бизнес-логике 📝
- Код сложно тестировать 🤯
- Система становится хрупкой 🌪️
- Нарушаются другие принципы SOLID 🚫
Принцип инверсии зависимостей как раз про то, чтобы «перевернуть» направление зависимости 🔄. Не высокоуровневый модуль зависит от деталей, а детали зависят от контракта, который описывает высокоуровневый модуль 📜.
Давайте рассмотрим пример с авторизацией 🔒. Мы можем создать абстракцию
IAuthRepository и две реализации: NetworkAuthRepository и FakeAuthRepository 📈. Тогда наш
LoginViewModel будет зависеть только от интерфейса IAuthRepository 📝, и мы сможем легко подменить реализацию в тестах или при изменении механизма авторизации 🔩. Итак, если вы видите в коде
new внутри бизнес-логики или ViewModel, создающий конкретные репозитории, сервисы и клиенты, — это хороший сигнал задуматься: не пора ли ввести интерфейс и развернуть зависимость? 🤔Полную новость читайте здесь.
FlutterPulse — канал о мире Flutter!
#flutter #dart #FlutterPulse #FlutterPulseNews #flutterfriendly #SOLID #DependencyInversionPrinciple #cleanCode #programmingPrinciples
👍1