Flutter Pulse
632 subscribers
397 photos
875 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Самые лучшие обновлённые пакеты за последние 24 часа

flutter_riverpod 3.0.1
Плагин для реактивного кэширования и привязки данных, теперь ChangeNotifierProviderFamily доступен в legacy.dart, а также добавлена поддержка Dart 3.7.0.
👍 Лайки: 2750, 📥 Скачиваний: 2.7M
https://pub.dev/packages/flutter_riverpod

dart_frog 1.2.4
Быстрый и минималистичный фреймворк для создания бэкенда на Dart, теперь ещё быстрее благодаря оптимизации Request.read.
👍 Лайки: 814, 📥 Скачиваний: 26.3К
https://pub.dev/packages/dart_frog

hooks_riverpod 3.0.1
Теперь ChangeNotifierProviderFamily доступен в flutter_riverpod/legacy.dart, а также добавлена поддержка Dart 3.7.0.
👍 Лайки: 910, 📥 Скачиваний: 269К
https://pub.dev/packages/hooks_riverpod

Riverpod 3.0.1
Реактивный фреймворк для кэширования и привязки данных, облегчающий работу с асинхронным кодом, теперь поддерживает Dart 3.7.0 и async 2.12.0.
👍 Лайки: 3780, 📥 Скачиваний: 2.8M
https://pub.dev/packages/riverpod

riverpod_annotation 3.0.1
Пакет используется для аннотаций в riverpod_generator, теперь поддерживает Dart 3.7.0.
👍 Лайки: 160, 📥 Скачиваний: 830К
https://pub.dev/packages/riverpod_annotation

awesome_dialog 3.3.0
Пакет для создания простых и крутых диалогов в Flutter, в новой версии обновлены зависимости rive до версии 0.14.0-dev.8.
👍 Лайки: 1450, 📥 Скачиваний: 18.7К
https://pub.dev/packages/awesome_dialog

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #flutter_riverpod #dart_frog #hooks_riverpod #Riverpod #riverpod_annotation #awesome_dialog
Полный гайд по golden-тестам во Flutter: зачем нужны и как настроить 📚💻
Знакомьтесь с golden-тестами: автоматизируйте визуальное тестирование интерфейсов и ускорьте разработку 🚀!
Golden-тесты - это инструмент для проверки внешнего вида ваших приложений и поддержания визуальной целостности 📊.
Они особенно полезны для библиотек UI-компонентов, приложений со своей дизайн-системой и Backend Driven UI 📈.
Но когда не стоит использовать golden-тесты? 🤔 Это UI с высокой изменчивостью, «сложные» компоненты и компоненты с анимациями или интерактивными переходами 🔄.

Для решения проблемы платформозависимости в golden-тестировании можно использовать пакет alchemist 🧙‍♂️.
Он улучшает процесс тестирования и позволяет писать эффективные golden-тесты для своих компонентов 📝.
Кстати, golden_toolkit больше не поддерживается, поэтому переходите на alchemist для написания golden-тестов! 🚫

Узнайте, как писать golden-тесты для кнопок в Flutter с помощью Alchemist 📚,
и как создавать golden-тесты для компонентов с разными темами и направлениями текста 🌈.
Также, настройте CI для тестирования Flutter-приложений с помощью GitHub Actions 🚀.

Golden-тесты - это мощный инструмент для автоматизации визуального тестирования и поддержания качества UI 💻.
Итак, не забудьте прочитать статью по ссылке читать здесь,
и узнайте, как настроить и использовать golden-тесты для обеспечения стабильности UI и защиты от регрессий 📊.

#flutter #dart #flutterpulse #goldentests #alchemist #flutterpulse
Привет, программисты! 🤩 Ты когда-нибудь сталкивался с конфликтами библиотек при разработке кроссплатформенных приложений? 🤔 Например, когда ты пытаешься использовать dart:io в веб-приложении или dart:web на мобильном устройстве? 📱👀 Это может привести к ошибкам и проблемам с компиляцией! 💣

Но не волнуйся, у нас есть решение! 🎉 Ты можешь использовать сторонние кроссплатформенные библиотеки, такие как cross_file, или делать условные импорты, чтобы подключать разные реализации под разные платформы. 📈

Например, с помощью cross_file ты можешь создать файловый пикер, который работает на всех платформах! 📁

Или, используя условные импорты, ты можешь подключать разные реализации для grpc в зависимости от платформы! 📊

Хочешь узнать больше? 🤔 Тогда перейди по ссылке и прочитай полную статью! 📚

И не забудь подписаться на наш канал flutterpulse, чтобы быть в курсе всех последних новостей и обновлений в мире Flutter и Dart! 📱💻 #flutter #dart #flutterpulse 🚀💥
Как задать высоту строки внутри колонки

Привет, Flutter-разработчики! 👋 Сегодня мы рассмотрим интересную задачу: как правильно задать высоту строки (Row) внутри колонки (Column). Эта проблема часто возникает при создании адаптивных интерфейсов, и мы разберем, как ее решить с помощью виджета IntrinsicHeight. 📐

Проблема: 🤔
Когда вы пытаетесь разместить Row внутри Column и хотите, чтобы высота Row определялась максимальным размером дочерних элементов, вы можете столкнуться с ошибкой. Flutter требует, чтобы размеры виджетов были ограничены, а Row по умолчанию не имеет ограничений по высоте.

Решение: 💡
Используйте виджет IntrinsicHeight в качестве родителя для Row. Этот виджет устанавливает высоту Row равной максимальному размеру его дочерних элементов.



@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
children: [
IntrinsicHeight( // Оберните Row в IntrinsicHeight
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisSize: MainAxisSize.min,
children: [
Expanded(
flex: 2,
child: Container(
color: Colors.red,
padding: const EdgeInsets.all(32.0),
child: const Center(child: Text('Flex 2')),
),
),
Expanded(
flex: 1,
child: Container(
color: Colors.green,
padding: const EdgeInsets.all(32.0),
child: const Center(child: Text('Flex 1')),
),
),
],
),
),
Container(
height: 100,
color: Colors.blue,
child: const Center(child: Text('Контейнер с фиксированной высотой')),
),
],
),
),
);
}



Почему это работает? 🔍
- IntrinsicHeight определяет максимальную внутреннюю высоту дочерних элементов Row и применяет ее ко всем детям.
- CrossAxisAlignment.stretch растягивает дочерние элементы на всю доступную высоту.
- mainAxisSize: MainAxisSize.min устанавливает размер Row по основной оси в минимально необходимый.

Вывод: 🎉
Использование IntrinsicHeight позволяет легко управлять размером Row внутри Column, делая ваш интерфейс гибким и адаптивным. Оцените эту рубрику и оставляйте свои комментарии! 💬

Все подобные советы вы можете найти по хэштегу #FlutterPulseTips. 👉 Оцените новую рубрику и подпишитесь на наш канал! 👍

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #UIUX #FlutterTips #AppDevelopment #CodingTips
👍2
Обзор пакетов на тему Dropdown 📦
Пакет DropDownSearchField (1.2.2) позволяет создавать автозаполняемые поля поиска с подсказками, которые отображаются по мере ввода текста.
👍 Лайки: 70, 📥 Скачиваний: 42.2К
Последнее обновление 📅 22 дня назад
https://pub.dev/packages/drop_down_search_field

Пакет drop_down_list (2.0.0) предлагает удобный и настраиваемый виджет выпадающего списка для Flutter.
👍 Лайки: 337, 📥 Скачиваний: 3.6К
Последнее обновление 📅 8 месяцев назад
https://pub.dev/packages/drop_down_list

Пакет MultiDropdown (3.0.1) позволяет легко управлять и искать несколько элементов в выпадающем списке.
👍 Лайки: 362, 📥 Скачиваний: 33.2К
Последнее обновление 📅 13 месяцев назад
https://pub.dev/packages/multi_dropdown

Пакет cool_dropdown (2.1.1) предлагает кастомизируемый и анимированный дропдаун для ваших Flutter-приложений.
👍 Лайки: 206, 📥 Скачиваний: 2.4К
Последнее обновление 📅 13 месяцев назад
https://pub.dev/packages/cool_dropdown

Пакет DropdownSearch (6.0.2) позволяет легко создавать реактивные выпадающие списки с функцией поиска.
👍 Лайки: 1930, 📥 Скачиваний: 239К
Последнее обновление 📅 8 месяцев назад
https://pub.dev/packages/dropdown_search

Пакет Search Choices (2.3.1) - это высоконстраиваемый виджет для поиска в списках в диалоговых окнах или меню.
👍 Лайки: 6190, 📥 Скачиваний: 27.6К
Последнее обновление 📅 9 месяцев назад
https://pub.dev/packages/search_choices
#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #dropdownsearchfield #drop_down_list #MultiDropdown #cool_dropdown #DropdownSearch #SearchChoices
Сегодня мы поговорим об одном из самых популярных плагинов для Flutter-приложений - cached_network_image 📸. Этот плагин позволяет не только загружать и отображать изображения из сети, но и кэшировать их на устройстве 📁. Очень полезная функция, которая может улучшить производительность вашего приложения! 🚀

Как использовать cached_network_image? 🤔 Для начала, вам нужно добавить в верстку виджет CachedNetworkImage и передать ему ссылку на изображение в поле imageUrl 📝. Затем, вы можете настроить индикатор загрузки с помощью placeholder или progressIndicatorBuilder 📊. Также, не забудьте обработать ошибки с помощью errorWidget и errorListener 🚨.

Управление кэшем 📁 - еще одна важная функция cached_network_image. Вы можете использовать cacheManager для очистки кэша, удаления или извлечения файлов из кэша 📝. И, если вам нужно больше контроля над кэшем, вы можете создать свой кастомный менеджер кэша 🤔.

Хотите узнать больше? 🤔 Тогда перейдите по ссылке и прочитайте полную статью 📄. И, не забудьте подписаться на наш канал flutterpulse 📣, чтобы быть в курсе всех последних новостей и обновлений из мира Flutter! 🚀 #flutter #dart #flutterpulse ❤️
Самые лучшие обновлённые пакеты за последние 24 часа

Firebase Messaging Plugin for Flutter 15.2.1
Плагин для Flutter, который позволяет использовать Firebase Cloud Messaging API. Убрано устаревшее сообщение (#16995).
👍 Лайки: 3690, 📥 Скачиваний: 1.1M
https://pub.dev/packages/firebase_messaging

Vania 1.1.0
Теперь с поддержкой валидации форм, вспомогательными методами для запросов и проверкой здоровья базы данных.
Установите последнюю версию: https://pub.dev/packages/vania
Лайков: 162, Скачиваний: 166
👍

shadcn_ui 0.33.0
Теперь вы можете расширять ShadTextTheme и ShadColorScheme с помощью пользовательских стилей и цветов.
Узнайте больше: https://pub.dev/packages/shadcn_ui
Лайков: 742, Скачиваний: 16.1К
📈

dart_pubspec_licenses 3.0.14
Этот пакет помогает собирать и собирать информацию о лицензиях OSS, используя pubspec.lock.
В новой версии исправлена ошибка PathNotFoundException при обработке предварительных версий Flutter.
Лайков: 2, Скачиваний: 238К
https://pub.dev/packages/dart_pubspec_licenses
📊

adapty_flutter 3.11.2
Этот пакет используется для простой интеграции покупок внутри приложения в Flutter. Теперь с поддержкой Adapty Android SDK 3.11.1 и исправлением различных ошибок.
Уже 7290 скачиваний и 107 лайков!
https://pub.dev/packages/adapty_flutter
🛍️

build 4.0.1
В этом обновлении были внесены улучшения в dartdoc.
Пакет build используется для написания кода генераторов, которые запускаются с помощью build_runner.
Уже 4.7М скачиваний и 95 лайков!
https://pub.dev/packages/build
📈

rive_native 0.0.12
Этот пакет используется для интеграции с ядром Rive C++ runtime и предоставляет более интуитивный API для работы с графикой Rive в Flutter.
В обновлении исправлены ошибки, улучшена производительность и память, а также добавлены новые функции, такие как addAdvanceRequestListener.
Лайков: 51
Скачиваний: 25.7К
https://pub.dev/packages/rive_native
📊
#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #firebase_messaging #vania #shadcn_ui #dart_pubspec_licenses #adapty_flutter #build #rive_native
1
Сегодня я хочу рассказать вам о пакете dart_frog, который упрощает создание роутингов для вашего бэкенда 🌐. Этот пакет автоматически генерирует код, что делает работу с запросами намного проще 🐸.

Чтобы начать работу с dart_frog, вам нужно установить зависимость и использовать команды пакета 📦. Например, чтобы создать проект, используйте команду dart_frog build 🌟. Это создаст структуру проекта, включая DockerFile 📁.

Основная логика обработки запросов в Dart Frog строится на маршрутах (routes) 🗺. Каждый маршрут соответствует определенному пути и методу HTTP, и чтобы его добавить, необходимо создать файл-обработчик в директории routes/ 📂.

Вы также можете использовать middleware 🤖, чтобы добавить дополнительную логику к вашим маршрутам. Middleware реализуется как функция, которая оборачивает обработчик маршрута и возвращает новый обработчик с дополнительной логикой 🔄.

Чтобы узнать больше о dart_frog и как его использовать, читайте полную статью по ссылке: https://t.me/flutterfriendly/233 📄.

Не забудьте подписаться на канал flutterpulse, чтобы быть в курсе всех последних новостей и обновлений в мире Flutter и Dart! 📣

#flutter #dart #flutterpulse 🚀💻👍
Supabase: Привязка анонимного пользователя к аутентифицированному

Анонимный пользователь - это действительно здорово. Вы автоматически создаете нового пользователя в своей базе данных каждый раз, когда кто-то впервые запускает ваше приложение.
Затем вы можете позволить ему подписаться, начать работать с вашим приложением, не беспокоя его просьбой ввести email...
А затем, когда он действительно вовлечется в процесс, вы можете привязать его учетную запись.



@override
Future<Credentials> signup(String email, String password) async {
if (client.auth.currentUser?.isAnonymous == true) {
// Обновляем анонимного пользователя с помощью email и password
final res = await client.auth.updateUser(UserAttributes(email: email, password: password));
if (res.user != null) {
return Credentials(id: res.user!.id);
} else {
throw 'Ошибка при обновлении пользователя';
}
}
return client.auth
.signUp(email: email, password: password)
.then(
(value) => Credentials(id: value.user!.id),
onError: (error) {
Logger().e("Ошибка при регистрации: $error");
throw SignupException();
},
);
}



Оцените новую рубрику и напишите свое мнение! 👍💬

Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #Supabase #MobileDev #AppDev #CodingTips #DevTips
👍1
Flutter-дайджест сентября 🌐

Сентябрь выдался ярким месяцем для Flutter-разработчиков: статьи на Хабре, новые пакеты и мощные обновления, разборы на YouTube и полезные советы для прокачки проектов 🚀

В дайджесте вы найдёте:

🎓 статьи с Хабра (RenderObject, CI/CD, хитрости релиза в сторы);
🎥 лучшие видео (FFI + Rust, Talker, сборка бинарников);
📦 топовые пакеты месяца (flutter_slidable, go_router, drift, flutter_map, Firebase и др.);
🆕 новые пакеты недели (bodychart_heatmap, fquery, isar_plus, loader_pro, cupertino_native);
💡 #FlutterPulseTips (кастомные переходы страниц, точный таймер, лайфхаки с формами).

Полный обзор читайте 👉 здесь

Давайте вместе вспомним что произошло за прошедший месяц

#Flutter #Dart #FlutterPulse #PubDev #Хабр #MobileDev
Обзор пакетов на тему Command Line (CLI) или Console 📊
Новости из мира Dart и Flutter:
args 👍 410 лайков, 📥 8 950 000 скачиваний! Пакет args позволяет легко парсить аргументы командной строки в Dart. Поддерживает стиль опций GNU и POSIX. Обновлено 6 месяцев назад. https://pub.dev/packages/args 📅
Mason CLI 👍 391 лайк, 📥 25 000 скачиваний! Позволяет разработчикам создавать и использовать повторно используемые шаблоны для ускорения разработки. Обновлено 10 месяцев назад. https://pub.dev/packages/mason_cli 📅
completion 👍 51 лайк, 📥 4 059 999 скачиваний! Добавляет автодополнение команд в консольные приложения Dart. Обновлено 2 месяца назад. https://pub.dev/packages/completion 📅
DCli 👍 214 лайков, 📥 1.37M скачиваний! API и инструменты для создания кроссплатформенных командных приложений и скриптов на языке Dart. Обновлено 5 дней назад. https://pub.dev/packages/dcli 📅
cli_util 👍 84 лайка, 📥 4.49 млн скачиваний! Пакет для создания консольных приложений на Dart. Обновлён 11 месяцев назад. https://pub.dev/packages/cli_util 📅
Very Good CLI 👍 696 лайков, 📥 89 500 скачиваний! Инструмент для разработчиков на Dart и Flutter. Обновлено 41 день назад. https://pub.dev/packages/very_good_cli 📅
#args #mason_cli #completion #dcli #cli_util #very_good_cli #flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages 🚀💻👍
👍1
Самые лучшие обновлённые пакеты за последние 24 часа

shared_preferences_android 2.4.14
Плагин для хранения данных в приложениях для Android. Теперь с поддержкой Java 17 и минимальной версией SDK Flutter 3.35/Dart 3.9.
👍 Лайки: 17, 📥 Скачиваний: 4.3М
https://pub.dev/packages/shared_preferences_android

url_launcher_android 6.3.23
Плагин для запуска ссылок в Android-приложениях. Теперь с совместимостью Java 17.
👍 Лайки: 20, 📥 Скачиваний: 4.9М
https://pub.dev/packages/url_launcher_android

shadcn_ui 0.35.0
Пакет для автоматической генерации тем с помощью пакета theme_extensions_builder и изменения в методах merge и canMerge.
👍 Лайки: 744, 📥 Скачиваний: 16.8К
https://pub.dev/packages/shadcn_ui

watcher 1.1.4
Пакет для мониторинга изменений в директориях и отправки уведомлений при добавлении, удалении или изменении файлов. В новой версии улучшено обработка поддиректорий и переполнения на Windows.
👍 Лайки: 227, 📥 Скачиваний: 9.9М
https://pub.dev/packages/watcher

graphview 1.5.0
Пакет для создания графических представлений данных. Теперь доступны 5 новых алгоритмов макета, включая BalloonLayoutAlgorithm, CircleLayoutAlgorithm, RadialTreeLayoutAlgorithm, TidierTreeLayoutAlgorithm и MindmapAlgorithm.
👍 Лайки: 486, 📥 Скачиваний: 13.4К
https://pub.dev/packages/graphview

pro_image_editor 11.7.0
Пакет для редактирования изображений в приложениях Flutter. Теперь вы можете контролировать навигацию назад в подредакторах с помощью опции enableGesturePop.
👍 Лайки: 475, 📥 Скачиваний: 26.1К
https://pub.dev/packages/pro_image_editor

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #shared_preferences_android #url_launcher_android #shadcn_ui #watcher #graphview #pro_image_editor
Привет всем! ✌️ Руслан продолжает свой увлекательный эксперимент по созданию приложения для генерации скетчей во Flutter. В этом выпуске — сразу несколько крутых обновлений! 🚀

Сегодня мы не просто кодим, а погружаемся в вайб и улучшаем наш проект:

Улучшаем промпт для генерации более реалистичных и точных скетчей, которые теперь лучше понимают, что хочет пользователь.
Обновляем дизайн, внедряя элементы стиля LiquidGlass — делаем интерфейс современным и стильным.
Проводим рефакторинг — убираем лишний код, упрощаем архитектуру и делаем приложение более читаемым и поддерживаемым.

В видео вы увидите:
🔹 Как работать с библиотекой Liquid Glass для создания красивых UI-эффектов.
🔹 Как правильно выносить код в отдельные виджеты и файлы.
🔹 Как добавить анимации нажатия на кнопки с помощью Implicit Animations.
🔹 Как избежать race condition при множественных запросах.

Если вам интересно продолжение — например, как публиковать такое приложение или есть идеи по улучшению — оставляйте комментарии прямо под видео! 💬

🔗 Ссылка на видео: Vibe coding. Приложение для скетчей с нуля. Часть 3

📩 Связаться с Русланом: https://t.me/ruslan_tsitser

Обязательно посмотрите и другие видео по хэштегу #FlutterPulseYoutube! 🎥

#Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube #Refactoring #CleanCode #FlutterArchitecture #StatefulWidget #ComponentBasedUI #fluttertutorial
Привет, программисты! 🤩 Сегодня я хочу рассказать вам о самом интересном подходе к разработке - TDD (Test-Driven Development) 🚀! Это когда сначала вы пишете тесты, а потом уже код 🤯. Звучит странно, но поверьте, это очень эффективно 📈!

Как это работает? 🤔
▪️ Пишем маленький тест, описывающий нужное поведение 📝
▪️ Запускаем его — тест падает, ведь кода еще нет 🚫
▪️ Реализуем минимальный код, чтобы тест прошел 💻
▪️ Рефакторим код, при этом тесты должны оставаться зелеными 🌿

Пример для понимания 📊
Допустим, нам нужна функция sum, которая складывает два числа 🤔. Сначала пишем тест:

import 'package:flutter_test/flutter_test.dart';

void main() {
test('sum should return correct result', () {
expect(sum(2, 3), 5); // ожидаем 2 + 3 = 5
});
}


Он упадет, так как функции еще нет 🚫. Пишем минимальный код, чтобы тест прошел:

int sum(int a, int b) {
return a + b;
}


Плюсы 🌟
◽️ Код становится надежнее и полностью покрыт тестами 💯
◽️ Рефакторить проще — тесты страхуют 🛡
◽️ Требования становятся понятнее (каждый тест фиксирует ожидание) 📝

Минусы 🌪
◽️ Разработка стартует медленнее ⏱️
◽️ Нужно уметь писать хорошие тесты 🤔
◽️ Сложнее применять к UI или к большим интеграциям 🤯

А как у вас с TDD? 🤔 Хотите узнать больше? 🤓 Читайте полную статью по ссылке: https://t.me/flutterfriendly/234

Не забудьте подписаться на наш канал flutterpulse 📣, чтобы быть в курсе всех последних новостей и обновлений в мире Flutter 🚀 и Dart 🌟! #flutter #dart #flutterpulse 🚀💻
👍2