Flutter Pulse
رفتن به کانال در Telegram
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
نمایش بیشتر1 008
مشترکین
اطلاعاتی وجود ندارد24 ساعت
اطلاعاتی وجود ندارد7 روز
-230 روز
آرشیو پست ها
1 007
🗑️ Как Dart убирает мусор в старом поколении: Mark-Sweep vs Mark-Compact
Знаете, почему иногда приложение на Flutter «подвисает» на пару сотен миллисекунд? Чаще всего виноват не ваш код, а сборщик мусора, который устраивает генеральную уборку в старом поколении 🧹 В отличие от молодого поколения, где объекты просто копируются, здесь всё серьезнее: живых объектов много, копировать их дорого, а памяти под «вторую половину» жаба не даст.
Поэтому Dart использует классический двухфазный алгоритм Mark-Sweep:
1️⃣ Mark (Пометка): GC обходит граф от корней (стек, глобальные переменные) и ставит «галочку» в заголовке каждого достижимого объекта.
2️⃣ Sweep (Очистка): Проходит по памяти. Непомеченные → в список свободных блоков (free list). Помеченные → сброс бита. Пустые страницы → возвращаются ОС.
⚠️ Но есть подвох! После Sweep память превращается в «дырявый сыр» 🧀 — фрагментация не позволяет выделить под большой объект кусок памяти, хотя суммарно места хватает.
На помощь приходит Mark-Compact 🚀 При сильной фрагментации живые объекты аккуратно сдвигаются к началу кучи, сливаясь в один монолит. А чтобы не сломать ссылки, используется таблица пересылки (forwarding table) — она быстро вычисляет новый адрес по смещению внутри блока.
💡 Главный вывод для нас, разработчиков: те самые заметные паузы в DevTools — это почти всегда работа со старым поколением. Чем больше у вас долгоживущих объектов (кэши, неочищаемые листы, разросшиеся стейты), тем дольше GC будет «компактировать» кучу.
В следующей части разберем, как движок спасает нас от фризов с помощью Concurrent Marking, барьеров записи и финализаторов. Оставайтесь на связи! 👇
Читать подробный разбор здесь: статья на Хабре
FlutterPulse — канал о мире Flutter!
#flutter #dart #flutterpulse #flutterpulsehabr #garbagecollection #performance #memorymanagement
1 007
Flutter в салоне Toyota RAV4 2026: это не концепт, а реальность! 🚗💨
Друзья, пора забыть стереотипы о том, что Flutter — это только про мобильные приложения. Японский автогигант официально подтвердил: мультимедийная система в новых Toyota RAV4 и Lexus ES написана именно на Flutter. И это не демо-стенд для выставки, а серийный продукт, который можно пощупать прямо сейчас! 🤯
Команда Flutter поделилась деталями этого амбициозного кейса, и вот что там интересного:
🟢 Собственный стек: Toyota разработала собственный embedder и плагины, адаптированные под специфические автомобильные функции.
🟢 Экономика выбора: Многие автомобильные платформы закрыты и дороги. Flutter, будучи open source, выиграл в том числе по бюджету.
🟢 Любимый пакет: Из экосистемы
pub.devотдельно отметили пакет
provider. 🟢 Скорость итераций: Раньше на внесение обратной связи в код уходили годы. Теперь команда может начать работу с кодовой базой уже на следующий день! ⚡ 🟢 Глобальная команда: Разработчики из Северной Америки, Европы и Японии работают над единой кодовой базой. 🟢 Гибкость и масштаб: Flutter позволил эффективно работать с разным оборудованием, а система уже готова к расширению на будущие модели. P.S. Под капотом интерфейса работают Automotive Grade Linux и Arene SDK от Woven by Toyota, а Flutter отвечает за рендеринг экрана. Полную новость читайте здесь. FlutterPulse — канал о мире Flutter! #flutter #dart #FlutterPulse #FlutterPulseNews #DiaryFlutterDev #automotive #opensource
1 007
🔥 Топ-6 обновлённых пакетов за последние 24 часа
Bonfire 4.0
Инструмент для создания RPG-игр на базе FlameEngine. Мажорный релиз переработал API: миксины заменены именованными объектами, упрощена система движения, добавлены деревья поведения и улучшена система коллизий.
👍 Лайки: 511, 📥 Скачиваний: 3.6К
https://pub.dev/packages/bonfire
smooth_sheets 1.2.0
Решение для создания модальных и персистентных шторок с плавными анимациями и поддержкой вложенной навигации. Исправлены критические ошибки в зависимом пакете navigator_resizable (краши при переходах маршрутов), минимальная версия Flutter SDK повышена до 3.41.0.
👍 Лайки: 655, 📥 Скачиваний: 108К
https://pub.dev/packages/smooth_sheets
app_badge_plus 1.3.5
Плагин для добавления бейджей на иконки приложений (iOS, macOS, Android). Исправлена ошибка в имени разрешения CHANGE_BADGE для Honor (убран лишний пробел).
👍 Лайки: 165, 📥 Скачиваний: 304К
https://pub.dev/packages/app_badge_plus
flutter_foreground_task 11.0.3
Плагин для реализации фоновых сервисов в Flutter (Android/iOS): выполнение повторяющихся задач и двусторонняя связь с UI. Исправлена проблема на iOS: Objective-C shim теперь корректно включается в source_files podspec и компилируется под CocoaPods.
👍 Лайки: 581, 📥 Скачиваний: 189К
https://pub.dev/packages/flutter_foreground_task
lucide_icons_flutter 3.1.19
Популярный пакет иконок для Flutter. Включено tree shaking для шрифтов (уменьшение размера приложения), добавлены новые иконки (germ, virus, engine и др.), исправлены существующие (leaf, trash).
👍 Лайки: 201, 📥 Скачиваний: 176К
https://pub.dev/packages/lucide_icons_flutter
native_device_orientation 2.1.3
Плагин для точного определения ориентации устройства (включая различие между «альбомной» левой и правой стороной). Исправлена обработка null-событий датчика ориентации в Android-колбэках.
👍 Лайки: 150, 📥 Скачиваний: 164К
https://pub.dev/packages/native_device_orientation
Поддержать канал
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #bonfire #smooth_sheets #app_badge_plus #flutter_foreground_task #lucide_icons_flutter #native_device_orientation
1 007
Обзор пакетов на тему Device Utilities
wakelock_plus 1.8.0
Популярный Flutter-плагин для предотвращения автоматического отключения экрана. Поддерживает Android, iOS, Web, macOS, Windows и Linux без необходимости запроса специальных разрешений.
👍 Лайки: 642, 📥 Скачиваний: 2.25M
📅 Обновлено: 5 дней назад
https://pub.dev/packages/wakelock_plus
pasteboard 0.5.0
Плагин позволяет читать изображения и файлы из буфера обмена, а также записывать файлы в него. Поддерживает Windows, Linux, macOS, iOS, Web и Android.
👍 Лайки: 118, 📥 Скачиваний: 159K
📅 Обновлено: 6 месяцев назад
https://pub.dev/packages/pasteboard
super_clipboard 0.9.1
Обеспечивает комплексный доступ к буферу обмена для Flutter, поддерживая macOS, iOS, Android, Windows, Linux и Web. Позволяет работать со стандартными и кастомными форматами данных, включая ленивое предоставление информации.
👍 Лайки: 257, 📥 Скачиваний: 169K
📅 Обновлено: 15 месяцев назад
https://pub.dev/packages/super_clipboard
flutter_volume_controller 2.0.2
Плагин для управления системной и медиа-громкостью, а также отслеживания изменений уровня звука. Поддерживает Android, iOS, macOS, Windows, Linux и HarmonyOS.
👍 Лайки: 76, 📥 Скачиваний: 77K
📅 Обновлено: 19 дней назад
https://pub.dev/packages/flutter_volume_controller
battery_plus 7.1.1
Универсальный плагин для получения данных о заряде батареи и состоянии устройства, включая режимы зарядки и экономии энергии. Поддерживает Android, iOS, macOS, Web, Linux и Windows.
👍 Лайки: 562, 📥 Скачиваний: 388K
📅 Обновлено: 53 дня назад
https://pub.dev/packages/battery_plus
device_info_plus 13.2.0
Популярный пакет для получения информации о устройстве, такой как модель, ОС и браузер. Работает на всех платформах: Android, iOS, macOS, Web, Linux и Windows.
👍 Лайки: 3040, 📥 Скачиваний: 3.86M
📅 Обновлено: 2 месяца назад
https://pub.dev/packages/device_info_plus
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #flutterpulse #FlutterPulseThemedPackages #wakelock_plus #pasteboard #super_clipboard #flutter_volume_controller #battery_plus #device_info_plus
1 007
🔥 Топ обновлённых пакетов за последние 24 часа
bluesky 2.8.3
Библиотека для полного доступа к API Bluesky Social (ленты, профили, чаты, модерация Ozone) поверх AT Protocol. Добавлена поддержка новых эндпоинтов: app.bsky.actor.defs#interestsPref.updatedAt и tools.ozone.moderation.getAccountPreferences.
👍 Лайки: 31, 📥 Скачиваний: 6.5К
https://pub.dev/packages/bluesky
FForm 5.2.7
Высокоуровневый инструмент для создания и валидации форм в Flutter. Удалена нерабочая ссылка на Patreon (страница возвращала 404) и обновлены бейджи в README.
👍 Лайки: 183, 📥 Скачиваний: 121
https://pub.dev/packages/fform
pin_input_text_field 4.5.3
Популярный пакет для создания PIN-полей в Flutter. Добавлена адаптация под Dart 3 и исправлена совместимость со стабильным Flutter 3.47. Также улучшена настройка отступов для текста ошибок валидации и исправлена передача параметров тулбара.
👍 Лайки: 159, 📥 Скачиваний: 225К
https://pub.dev/packages/pin_input_text_field
opal 0.2.6
Dart-пакет для токенизации и подсветки синтаксиса. Требуется Dart 3.10+. Добавлена базовая поддержка Mermaid (flowcharts, sequence diagrams), улучшена точность подсветки JSON и обработка комментариев, исправлены edge cases в CSS.
👍 Лайки: 2, 📥 Скачиваний: 7.0К
https://pub.dev/packages/opal
audio_flux 2.0.0
Универсальный инструмент для визуализации аудио в реальном времени в Flutter (осциллограммы, спектры частот FFT, кастомные GPU-эффекты). Обновлены зависимости flutter_soloud (до 5.0.2) и flutter_recorder (до 2.0.3). Новый подход к захвату аудио обеспечивает более высокую производительность, но содержит breaking changes.
👍 Лайки: 45, 📥 Скачиваний: 77
https://pub.dev/packages/audio_flux
SINT 1.6.2
Специализированный фреймворк для Flutter, объединяющий управление состоянием, DI, навигацию и переводы. Исправлены ошибки при удалении слушателей, улучшена очистка ресурсов Rx, усиlena типизация в DI и оптимизирована очистка зависимостей маршрутов. Требуется Flutter >= 3.32 / Dart >= 3.8.
👍 Лайки: 22, 📥 Скачиваний: 211
https://pub.dev/packages/sint
Поддержать канал
FlutterPulse — канал о мире Flutter!
#bluesky #FForm #pin_input_text_field #opal #audio_flux #SINT #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages
1 007
🔥 Топ обновлённых пакетов за последние 24 часа
motion_tab_bar_v2 3.0.0
Плагин для Flutter, который позволяет использовать анимированную нижнюю навигационную панель. Добавлена полная документация API, юнит-тесты и CI-процессы. Исправлены конфликты имён библиотек, удалена неиспользуемая зависимость vector_math, а пример приложения приведён в соответствие с последними стандартами SDK.
👍 Лайки: 95, 📥 Скачиваний: 462
https://pub.dev/packages/motion_tab_bar_v2
lint 2.14.0
Плагин для Flutter, который позволяет использовать популярный набор правил линтинга для Dart/Flutter. Требует Dart 3.13+. Включены новые правила: async_return_with_no_await, empty_container_bodies, initialize_in_field_declaration, unnecessary_const_in_enum_constructor, unnecessary_primary_constructor_body, unnecessary_type_name_in_constructor, use_declaring_parameters, use_primary_constructors. Отключено правило avoid_private_typedef_functions (для strict/package).
👍 Лайки: 863, 📥 Скачиваний: 204К
https://pub.dev/packages/lint
Serverpod Database 4.0.0-rc.2
Плагин для Flutter, который позволяет использовать внутреннее ядро Serverpod. Поддержка перехода к моделям по Ctrl/Cmd+Click в VS Code. Автообновление и перезапуск scloud при вызове из serverpod cloud. Новый пакет serverpod_cloud_storage для нативной поддержки Serverpod Cloud. Генерация списков синхронизации и сессий для моделей database: sync. Исправления ошибок десериализации, работы с TTY и сигналов процесса.
👍 Лайки: 0, 📥 Скачиваний: 15.4К
https://pub.dev/packages/serverpod_database
flutter_octicons 1.79.0
Плагин для Flutter, который позволяет использовать иконки Octicons. Обновлены иконки до актуальной версии из репозитория GitHub. Пакет автоматически синхронизируется с upstream каждый вечер, чтобы вы всегда использовали свежие значки.
👍 Лайки: 8, 📥 Скачиваний: 708
https://pub.dev/packages/flutter_octicons
lucide_icons_flutter 3.1.18
Плагин для Flutter, который позволяет использовать популярный набор иконок Lucide. В новой версии Lucide 1.40.0 добавлены иконки: can, bridge, shrimp-off, shopping-cart-plus / shopping-cart-minus, lighthouse.
👍 Лайки: 201, 📥 Скачиваний: 167К
https://pub.dev/packages/lucide_icons_flutter
zikzak_inappwebview 5.3.2
Плагин для Flutter, который позволяет использовать встроенный веб-браузер. Вышел фикс для Windows: добавлен недостающий импорт kDebugMode, устраняющий ошибку сборки, возникшую в версии 5.3.1.
👍 Лайки: 31, 📥 Скачиваний: 2.9К
https://pub.dev/packages/zikzak_inappwebview
Поддержать канал
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #motion_tab_bar_v2 #lint #serverpod_database #flutter_octicons #lucide_icons_flutter #zikzak_inappwebview
1 007
Flutter 3.47: что сломается и что делать до ноября
Лето выдалось интересным: стабильные релизы 3.45 и 3.46 так и не вышли, а вот 3.47 приехал 12 августа с размахом — сразу 1358 коммитов сверх версии 3.44. Но главное в этом обновлении — не новые фичи, а тихая, но масштабная переупаковка: пакеты
material и cupertino официально уехали из SDK в отдельные библиотеки.
Спокойствие, не паникуем! 🧘♂️ На живых проектах переход с 3.44 на 3.47 проходит гладко: flutter analyze чистый, тесты зелёные, а библиотеки внутри SDK пока на месте. Депрекейт назначен на ноябрьский релиз — вот тогда и начнется настоящая миграция.
Как подготовиться? Есть одна команда, но с двумя граблями:
dart fix --apply --code=migrate_design_widgets
Обратите внимание: просто dart fix --apply эту магию не совершит — код нужно указывать явно. И будьте внимательны: в pubspec команда впишет material_ui: any. Сразу поправьте это на каретку с конкретной версией, чтобы не ловить сюрпризы при обновлении зависимостей.
А что насчет слухов про ChangeNotifier? В 3.47.2 классы на месте и не помечены как deprecated. Пакет listen — это вторая независимая реализация тех же имён, но типы несовместимы. Если передадите ValueNotifier из listen в ValueListenableBuilder, получите ошибку компиляции. Этот пакет лучше использовать для кода без Flutter: сервер, CLI или общая логика.
И еще один нюанс: Primary constructors в Dart 3.13 сами не включатся. Без указания sdk: ^3.13.0 в pubspec вас встретит ошибка experiment_not_enabled, даже если у вас стоит нужный SDK. И честно говоря, экономия бойлерплейта заметно теряет в цене, когда код пишет не человек, а нейросеть. 🤖
Остальные детали, включая Impeller по умолчанию на десктопе, поддержку iOS 15 и macOS 12, а также Wasm, я разобрал в видео.
Полную новость читайте здесь, а само видео тут
FlutterPulse — канал о мире Flutter!
#flutter #dart #FlutterPulse #FlutterPulseNews #dartway_dev_ru #migration #release1 007
🔥 Топ-6 лучших обновлённых пакетов за последние 24 часа
LocaleSweep 0.3.0
Пакет для автоматизации QA локализации в Flutter: проверяет переполнение текста, RTL-раскладку и тёмную тему. В обновлении добавлен пиксельный анализ скриншотов с генерацией диффов и детальной статистикой.
👍 Лайки: 7, 📥 Скачиваний: 208
https://pub.dev/packages/locale_sweep
better_player_plus 1.4.1
Популярный видео-плеер для Flutter. Обновление добавляет поддержку Built-in Kotlin на Android (AGP 9.0+), устраняет утечки памяти и краши на iOS, а также обновляет Android Media3 до 1.11.0.
👍 Лайки: 171, 📥 Скачиваний: 20.4К
https://pub.dev/packages/better_player_plus
permission_handler 13.0.2
Кроссплатформенный плагин для запроса разрешений в Flutter. Исправлена логика определения статуса «постоянно отклонено» на Android и обновлен подпакет permission_handler_android до 14.1.0.
👍 Лайки: 6010, 📥 Скачиваний: 3.18М
https://pub.dev/packages/permission_handler
better_auth_flutter 0.1.2
Flutter-клиент для Better Auth. Обновление обеспечивает совместимость с серверной версией 1.7, включая выделенные пакеты passkey и api-key, а также добавляет новые маршруты для управления сессиями и устройствами.
👍 Лайки: 12, 📥 Скачиваний: 157
https://pub.dev/packages/better_auth_flutter
mapbox_maps_flutter 2.30.0
Официальный пакет Mapbox для встраивания кастомизированных карт в Flutter-приложения. Поддерживает управление камерой, жесты, работу с векторными, растровыми и GeoJSON-слоями, а также офлайн-режим.
👍 Лайки: 379, 📥 Скачиваний: 113К
https://pub.dev/packages/mapbox_maps_flutter
dartssh2 4.1.0
SSH/SFTP клиент на чистом Dart. Добавлен pipelining запросов для сокращения задержек и исправлена проблема с метаданными, из-за которой пакет скрывался из поиска для веб-разработчиков.
👍 Лайки: 146, 📥 Скачиваний: 85.4К
https://pub.dev/packages/dartssh2
Поддержать канал
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #locale_sweep #better_player_plus #permission_handler #better_auth_flutter #mapbox_maps_flutter #dartssh2
1 007
async*: Магия потоков в Dart, которая экономит километры кода 🚀
Знаете это чувство, когда нужно создать кастомный поток данных, но вместо элегантного решения вы пишете бесконечные циклы, обработчики ошибок и ручное управление подписками? 😩
В свежем выпуске рубрики «Техника недели» разбирают один из самых недооценённых инструментов в арсенале Dart — оператор
async*. Это не просто синтаксический сахар, а способ превратить сложную логику генерации событий в чистый, читаемый и предсказуемый код.
Представьте, что вы можете писать генераторы потоков так же легко, как обычные функции, используя привычные конструкции yield и await. Никаких лишних классов, никаких «магических» методов — только чистая логика.
Вот как это выглядит на практике:
Stream<int> generateNumbers() async* {
for (var i = 0; i < 5; i++) {
await Future.delayed(Duration(seconds: 1));
yield i;
}
}
Просто, правда? А теперь представьте, что вы делаете то же самое с классическим StreamController. Разница в читаемости колоссальная! 📈
Если вы до сих пор не освоили async*, это тот самый момент, когда стоит остановиться и разобраться. Это навык, который мгновенно поднимет уровень вашего кода на новый уровень.
Полную новость читайте здесь.
FlutterPulse — канал о мире Flutter!
#flutter #dart #FlutterPulse #FlutterPulseNews #FlutterForDev #async #streams1 007
Обзор пакетов на тему Light Mode, Dark Mode & Themes
Theme Tailor 4.0.1
Генератор кода, который автоматизирует создание ThemeExtension в Flutter 3.0+, избавляя от рутины. Инструмент генерирует стандартные методы и расширения, позволяя сосредоточиться на логике дизайна.
👍 Лайки: 228, 📥 Скачиваний: 45.4K
📅 Обновлено: 6 дней назад
https://pub.dev/packages/theme_tailor
FlexColorScheme 8.4.0
Пакет для создания изысканных тем Material Design с минимальными усилиями, гарантируя полное соответствие цветов в ThemeData. Поддерживает генерацию палитры из seed-цветов и упрощенную настройку компонентов.
👍 Лайки: 3230, 📥 Скачиваний: 89.5K
📅 Обновлено: 9 месяцев назад
https://pub.dev/packages/flex_color_scheme
adaptive_theme 3.8.0
Самый простой способ добавить поддержку светлой и тёмной темы в Flutter. Пакет позволяет переключать темы вручную или по системным настройкам, сохраняя выбор пользователя между перезапусками.
👍 Лайки: 954, 📥 Скачиваний: 34.2K
📅 Обновлено: 20 дней назад
https://pub.dev/packages/adaptive_theme
system_theme 3.3.0
Плагин для получения акцентного цвета системной темы и отслеживания его изменений в реальном времени. Поддерживает платформы Android, iOS, Windows, macOS, Linux и Web.
👍 Лайки: 123, 📥 Скачиваний: 6.0K
📅 Обновлено: 3 месяца назад
https://pub.dev/packages/system_theme
dynamic_color 2.1.0
Пакет для автоматической генерации цветовых схем Material Design на основе настроек операционной системы. Позволяет адаптировать фирменные цвета приложения под динамическую палитру пользователя.
👍 Лайки: 637, 📥 Скачиваний: 172.0K
📅 Обновлено: 13 дней назад
https://pub.dev/packages/dynamic_color
FlexSeedScheme 5.0.1
Расширяет возможности стандартного ColorScheme.fromSeed, позволяя использовать отдельные seed-цвета для разных палитр. Поддерживает новые варианты Material-3 и настройку хроматичности в цветовом пространстве HCT.
👍 Лайки: 110, 📥 Скачиваний: 482.0K
📅 Обновлено: 3 дня назад
https://pub.dev/packages/flex_seed_scheme
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #flutterpulse #FlutterPulseThemedPackages #ThemeTailor #FlexColorScheme #adaptive_theme #system_theme #dynamic_color #FlexSeedScheme
1 007
⚡️ Flutter State Management: что на самом деле быстрее?
Можно ли ускорить Flutter-приложение, просто выбрав другой state management?
Автор нового benchmark решил проверить это не на искусственном тесте, а на реальном Flutter-приложении. Результат оказался довольно неожиданным 👀
В сравнении участвовали:
•
setState() — baseline
• ChangeNotifier + Provider
• Freezed + Provider + ValueNotifier
• Bloc
• Riverpod
• GetX
• Signals
🧪 Как тестировали?
Автор измерял прежде всего время build, а не искусственную скорость изменения состояния.
Для эксперимента использовалось специально подготовленное Android-устройство с контролем температуры, CPU/GPU scaling и других факторов, способных повлиять на результаты.
Тестирование продолжалось:
5 дней 2100 испытаний 300 раундов на каждый подход
Цель — понять, оказывает ли выбор state management заметное влияние на производительность UI.
---
📊 Результаты
Provider + ChangeNotifier
Практически не отличается от обычного setState().
Freezed + Provider + ValueNotifier
Тоже показывает результат примерно на уровне baseline.
А вот:
GetX → примерно +5–6 μs Riverpod → примерно +5–6 μs Signals → примерно +5–6 μs
Звучит неплохо для benchmark'а, но в реальном приложении это практически ничего.
При 120 Hz бюджет одного кадра составляет:
1 000 000 / 120 ≈ 8 333 μs
Дополнительные 6 μs — всего около 0,07% бюджета кадра.
То есть разница находится далеко за пределами того, что имеет практическое значение для пользователя.
---
🤔 А что насчёт Bloc?
Интереснее всего оказался результат Bloc.
В конкретном тесте он оказался примерно на 21 μs быстрее vanilla.
Но это вовсе не означает, что Bloc быстрее остальных.
Почему?
Потому что реализация отличалась не только библиотекой. В ней были более гранулярные rebuild'ы, а некоторые элементы widget tree находились в других местах.
И здесь возникает важнейшая проблема benchmark'ов.
Мы можем сравнивать не state management, а архитектуру приложения.
---
🧩 Что действительно влияет?
Условно различия можно разделить на три уровня:
A — сама библиотека
Как реализована подписка и обновление состояния.
B — архитектурный подход
Насколько легко разделять состояние и ограничивать rebuild'ы.
C — стиль разработчика
Как именно конкретный человек построил widget tree.
Именно пункты B и C способны дать гораздо большую разницу, чем несколько микросекунд работы самой библиотеки.
---
🎯 Главный вывод
На основании этого эксперимента нельзя честно сказать:
❌ Riverpod быстрее Provider
❌ Bloc быстрее GetX
❌ Signals самый быстрый
❌ setState всегда производительнее
В реальном приложении разница между популярными state management решениями оказалась настолько маленькой, что выбирать библиотеку только по performance практически бессмысленно.
Гораздо важнее:
🔥 сколько widgets rebuild'ится
🔥 насколько большой subtree перестраивается
🔥 что выполняется внутри build()
🔥 сколько времени занимают layout и paint
🔥 какие операции выполняются на UI isolate
То есть проблема обычно не в том, выбрали вы Riverpod или Provider.
Проблема в том, ЧТО именно вы заставляете Flutter перестраивать. 🚀
Источники: Оригинал новости, нашёл тут
#Flutter #Dart #FlutterDev #StateManagement #Provider #Riverpod #Bloc #GetX #Performance #FlutterPulse #FlutterPulseNews1 007
🔥 Топ обновлённых пакетов за последние 24 часа
test_api 0.7.14
Минимальный пакет для написания тестов в Dart. Добавлена поддержка нативного CLI-компилятора для рантаймов vmAsan, vmMsan и vmTsan, а также экспорт класса TestFailure из scaffolding.dart.
👍 Лайки: 24, 📥 Скачиваний: 11.4M
https://pub.dev/packages/test_api
flutter_gen_ai_chat_ui 2.16.1
UI-кит для чатов с ИИ. Исправлена ошибка, из-за которой список сообщений «молча прыгал» вперед в начале стриминга ответа. Теперь автопрокрутка корректно удерживает позицию, не сбрасывая фиксацию (pin) при задержке.
👍 Лайки: 100, 📥 Скачиваний: 1.9K
https://pub.dev/packages/flutter_gen_ai_chat_ui
purchases_ui_flutter 10.11.0
Пакет для интеграции paywalls и Customer Center от RevenueCat в Flutter-приложения. В новой версии добавлена поддержка установки ID устройства Singular (setSingularDeviceID) для аналитики.
👍 Лайки: 88, 📥 Скачиваний: 139K
https://pub.dev/packages/purchases_ui_flutter
purchases_flutter 10.11.0
Популярный пакет для управления подписками в Flutter (RevenueCat). Добавлена поддержка метода setSingularDeviceID для интеграции с аналитикой Singular, а также внесены мелкие технические улучшения.
👍 Лайки: 913, 📥 Скачиваний: 429K
https://pub.dev/packages/purchases_flutter
grinder 0.5.7
Инструмент для автоматизации задач в Dart (сборка, тесты, деплой). Добавлены асинхронные методы, включая runProcessAsync() и PubTools.buildAsync(). Убраны дублирующиеся стек-трейсы при ошибках сборки, теперь бросается исключение, если не удается найти Dart SDK при запуске бинарных файлов.
👍 Лайки: 116, 📥 Скачиваний: 148K
https://pub.dev/packages/grinder
test 1.32.0
Стандартный пакет для тестирования в Dart. Исправлены утечки секретов и файлов при запуске браузерных и Node.js тестов. Добавлена поддержка переменных окружения DART_TEST_REPORTER, улучшена работа с компиляторами vm-asan, vm-msan, vm-tsan и исправлены гонки в сборке покрытия кода в Chrome.
👍 Лайки: 626, 📥 Скачиваний: 10.7M
https://pub.dev/packages/test
Поддержать канал
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #test_api #flutter_gen_ai_chat_ui #purchases_ui_flutter #purchases_flutter #grinder #test
