Самые лучшие обновлённые пакеты за последние 24 часа
analyzer 12.0.0
Пакет analyzer используется для статического анализа кода на языке Dart и предоставляет библиотеку для интеграции с инструментами и редакторами.
В новой версии добавлена поддержка пустых тел в перечислениях, расширениях и миксинах, а также изменены некоторые классы и методы.
👍 Лайки: 318, 📥 Скачиваний: 9.5М
https://pub.dev/packages/analyzer
number_editing_controller 2.0.0
Этот пакет используется для автоматического форматирования чисел, десятичных и валютных значений в приложениях Flutter.
В новой версии исправлены ошибки, улучшена производительность и добавлена поддержка новых функций.
👍 Лайки: 10, 📥 Скачиваний: 222
https://pub.dev/packages/number_editing_controller
analyzer_plugin 0.14.7
Теперь требует версию 12.0.0 пакета analyzer. Этот пакет используется для создания плагинов для сервера анализа, но рекомендуется использовать analysis_server_plugin для новых разработок.
👍 Лайки: 46, 📥 Скачиваний: 1.2М
https://pub.dev/packages/analyzer_plugin
auto_start_flutter 1.1.0
Пакет auto_start_flutter используется для управления разрешениями на выполнение фоновых задач на устройствах Android, iOS, macOS, Windows и Linux.
В новой версии добавлены новые функции, такие как планирование задач с помощью API scheduleTask, а также улучшена инициализация безголового двигателя для более надежных фоновых триггеров.
👍 Лайки: 73, 📥 Скачиваний: 1610
https://pub.dev/packages/auto_start_flutter
analysis_server_plugin 0.3.13
Теперь требует версии 12.0.0 пакета analyzer и 0.14.7 пакета analyzer_plugin.
Этот пакет позволяет разработчикам создавать свои собственные плагины для статического анализа кода Dart в IDE и командной строке.
👍 Лайки: 15, 📥 Скачиваний: 173К
https://pub.dev/packages/analysis_server_plugin
flutter_webrtc
Пакет flutter_webrtc, предназначенный для работы с WebRTC в приложениях Flutter, получил обновление.
Этот пакет позволяет использовать функции аудио- и видео-связи, обмена данными и другие возможности WebRTC в приложениях для мобильных устройств, настольных компьютеров и веб-приложений.
👍 Лайки: 1330
📥 Скачиваний: 124К
https://pub.dev/packages/flutter_webrtc
FlutterPulse — канал о мире Flutter!
Поддержать канал
#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #analyzer #number_editing_controller #analyzer_plugin #auto_start_flutter #analysis_server_plugin #flutter_webrtc
analyzer 12.0.0
Пакет analyzer используется для статического анализа кода на языке Dart и предоставляет библиотеку для интеграции с инструментами и редакторами.
В новой версии добавлена поддержка пустых тел в перечислениях, расширениях и миксинах, а также изменены некоторые классы и методы.
👍 Лайки: 318, 📥 Скачиваний: 9.5М
https://pub.dev/packages/analyzer
number_editing_controller 2.0.0
Этот пакет используется для автоматического форматирования чисел, десятичных и валютных значений в приложениях Flutter.
В новой версии исправлены ошибки, улучшена производительность и добавлена поддержка новых функций.
👍 Лайки: 10, 📥 Скачиваний: 222
https://pub.dev/packages/number_editing_controller
analyzer_plugin 0.14.7
Теперь требует версию 12.0.0 пакета analyzer. Этот пакет используется для создания плагинов для сервера анализа, но рекомендуется использовать analysis_server_plugin для новых разработок.
👍 Лайки: 46, 📥 Скачиваний: 1.2М
https://pub.dev/packages/analyzer_plugin
auto_start_flutter 1.1.0
Пакет auto_start_flutter используется для управления разрешениями на выполнение фоновых задач на устройствах Android, iOS, macOS, Windows и Linux.
В новой версии добавлены новые функции, такие как планирование задач с помощью API scheduleTask, а также улучшена инициализация безголового двигателя для более надежных фоновых триггеров.
👍 Лайки: 73, 📥 Скачиваний: 1610
https://pub.dev/packages/auto_start_flutter
analysis_server_plugin 0.3.13
Теперь требует версии 12.0.0 пакета analyzer и 0.14.7 пакета analyzer_plugin.
Этот пакет позволяет разработчикам создавать свои собственные плагины для статического анализа кода Dart в IDE и командной строке.
👍 Лайки: 15, 📥 Скачиваний: 173К
https://pub.dev/packages/analysis_server_plugin
flutter_webrtc
Пакет flutter_webrtc, предназначенный для работы с WebRTC в приложениях Flutter, получил обновление.
Этот пакет позволяет использовать функции аудио- и видео-связи, обмена данными и другие возможности WebRTC в приложениях для мобильных устройств, настольных компьютеров и веб-приложений.
👍 Лайки: 1330
📥 Скачиваний: 124К
https://pub.dev/packages/flutter_webrtc
FlutterPulse — канал о мире Flutter!
Поддержать канал
#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #analyzer #number_editing_controller #analyzer_plugin #auto_start_flutter #analysis_server_plugin #flutter_webrtc
👍2
Flutter и нативная мощь: взаимодействие через каналы
Вы когда-нибудь задумывались, как Flutter-приложения могут использовать нативные API и функции? Всё дело в платформе каналов! 🌟
🔹 Method Channels позволяют выполнять одноразовые запросы к нативному коду.
🔹 Event Channels обеспечивают потоковую передачу данных из нативного кода в Flutter.
✅ Основные выводы:
👉 Используйте обратную доменную нотацию для именования каналов.
👉 Всегда оборачивайте вызовы в try-catch блоки.
👉 Method Channels поддерживают стандартные типы Dart.
👉 Все вызовы методов асинхронны.
⚙️ Event Channels идеальны для непрерывных потоков данных, таких как данные с датчиков или обновления местоположения.
В статье рассмотрены:
✅ Реализация Method Channels для одноразовых запросов.
✅ Использование Event Channels для потоковой передачи данных.
✅ Ограничения и лучшие практики использования платформенных каналов.
Продолжение следует... 😉 В следующей части будут рассмотрены Platform Views, лучшие практики производительности и безопасности, а также тестирование кода платформенных каналов.
Подпишитесь на наш канал, чтобы не пропустить новые статьи и обновления! 💡
#flutter #dart #flutterpulse #FlutterPulseMedium
🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Читать оригинал
Все подобные новости ищите по хэштегу #FlutterPulseMedium ✨
FlutterPulse — канал о мире Flutter!
Вы когда-нибудь задумывались, как Flutter-приложения могут использовать нативные API и функции? Всё дело в платформе каналов! 🌟
🔹 Method Channels позволяют выполнять одноразовые запросы к нативному коду.
🔹 Event Channels обеспечивают потоковую передачу данных из нативного кода в Flutter.
✅ Основные выводы:
👉 Используйте обратную доменную нотацию для именования каналов.
👉 Всегда оборачивайте вызовы в try-catch блоки.
👉 Method Channels поддерживают стандартные типы Dart.
👉 Все вызовы методов асинхронны.
⚙️ Event Channels идеальны для непрерывных потоков данных, таких как данные с датчиков или обновления местоположения.
В статье рассмотрены:
✅ Реализация Method Channels для одноразовых запросов.
✅ Использование Event Channels для потоковой передачи данных.
✅ Ограничения и лучшие практики использования платформенных каналов.
Продолжение следует... 😉 В следующей части будут рассмотрены Platform Views, лучшие практики производительности и безопасности, а также тестирование кода платформенных каналов.
Подпишитесь на наш канал, чтобы не пропустить новые статьи и обновления! 💡
#flutter #dart #flutterpulse #FlutterPulseMedium
🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Читать оригинал
Все подобные новости ищите по хэштегу #FlutterPulseMedium ✨
FlutterPulse — канал о мире Flutter!
Самые лучшие обновлённые пакеты за последние 24 часа
firebase_messaging 15.2.1
Плагин для Flutter, который позволяет использовать Firebase Cloud Messaging API. Убрано устаревшее сообщение (#16995).
👍 Лайки: 3690, 📥 Скачиваний: 1.1M
https://pub.dev/packages/firebase_messaging
docking 1.16.2
Этот пакет используется для создания расположения виджетов в области докинга и их организации в разделенные и вкладочные представления.
В новой версии исправлена ошибка, связанная с обновлением состояния во время перетаскивания, что предотвращает столкновения макета в панелях разделенного представления.
Пакет набрал 69 лайков и 1010 скачиваний.
https://pub.dev/packages/docking
markdown 7.3.1
Пакет markdown - это портативная библиотека Markdown, написанная на Dart, которая может парсить Markdown в HTML на клиенте и сервере.
В новой версии исправлены проблемы с производительностью и корректностью парсера HTML-комментариев, оптимизирована обработка отступов для блоков кода, исправлена проблема с вложенной структурой списков при отступе табуляцией и многое другое.
Пакет имеет более 1 440 000 скачиваний и 351 лайк.
https://pub.dev/packages/markdown
widget_tooltip 1.4.1
Пакет widget_tooltip - это высоко настраиваемый виджет подсказки для приложений Flutter с умным позиционированием, несколькими режимами триггера и богатыми вариантами стилизации.
В новой версии добавлен пример использования пакета в файле example/main.dart для вкладки примеров на pub.dev.
Пакет уже получил 18 лайков и был скачан 412 раз!
https://pub.dev/packages/widget_tooltip
saropa_lints 9.7.0
Этот пакет используется для обнаружения утечек памяти, уязвимостей безопасности и ошибок во время выполнения, которые стандартные линтеры могут пропустить.
В новой версии добавлены функции:
- Headless config writer
- Cross-file analysis CLI
- Central cache stats
Пакет имеет 4650 скачиваний и 3 лайка.
https://pub.dev/packages/saropa_lints
meshagent_flutter 0.7.1
Теперь он ещё более стабилен. Лайков: 0, Скачиваний: 2460.
https://pub.dev/packages/meshagent_flutter
tracelet 1.4.2
Теперь пакет предлагает production-grade фоновую геолокацию для Flutter с улучшенной работой в фоновом режиме и экономией батареи.
В обновлении исправлены проблемы с dead reckoning и mock detection.
Лайков: 14, Скачиваний: 1670
https://pub.dev/packages/tracelet
FlutterPulse — канал о мире Flutter!
Поддержать канал
#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #firebase_messaging #docking #markdown #widget_tooltip #saropa_lints #meshagent_flutter #tracelet
firebase_messaging 15.2.1
Плагин для Flutter, который позволяет использовать Firebase Cloud Messaging API. Убрано устаревшее сообщение (#16995).
👍 Лайки: 3690, 📥 Скачиваний: 1.1M
https://pub.dev/packages/firebase_messaging
docking 1.16.2
Этот пакет используется для создания расположения виджетов в области докинга и их организации в разделенные и вкладочные представления.
В новой версии исправлена ошибка, связанная с обновлением состояния во время перетаскивания, что предотвращает столкновения макета в панелях разделенного представления.
Пакет набрал 69 лайков и 1010 скачиваний.
https://pub.dev/packages/docking
markdown 7.3.1
Пакет markdown - это портативная библиотека Markdown, написанная на Dart, которая может парсить Markdown в HTML на клиенте и сервере.
В новой версии исправлены проблемы с производительностью и корректностью парсера HTML-комментариев, оптимизирована обработка отступов для блоков кода, исправлена проблема с вложенной структурой списков при отступе табуляцией и многое другое.
Пакет имеет более 1 440 000 скачиваний и 351 лайк.
https://pub.dev/packages/markdown
widget_tooltip 1.4.1
Пакет widget_tooltip - это высоко настраиваемый виджет подсказки для приложений Flutter с умным позиционированием, несколькими режимами триггера и богатыми вариантами стилизации.
В новой версии добавлен пример использования пакета в файле example/main.dart для вкладки примеров на pub.dev.
Пакет уже получил 18 лайков и был скачан 412 раз!
https://pub.dev/packages/widget_tooltip
saropa_lints 9.7.0
Этот пакет используется для обнаружения утечек памяти, уязвимостей безопасности и ошибок во время выполнения, которые стандартные линтеры могут пропустить.
В новой версии добавлены функции:
- Headless config writer
- Cross-file analysis CLI
- Central cache stats
Пакет имеет 4650 скачиваний и 3 лайка.
https://pub.dev/packages/saropa_lints
meshagent_flutter 0.7.1
Теперь он ещё более стабилен. Лайков: 0, Скачиваний: 2460.
https://pub.dev/packages/meshagent_flutter
tracelet 1.4.2
Теперь пакет предлагает production-grade фоновую геолокацию для Flutter с улучшенной работой в фоновом режиме и экономией батареи.
В обновлении исправлены проблемы с dead reckoning и mock detection.
Лайков: 14, Скачиваний: 1670
https://pub.dev/packages/tracelet
FlutterPulse — канал о мире Flutter!
Поддержать канал
#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #firebase_messaging #docking #markdown #widget_tooltip #saropa_lints #meshagent_flutter #tracelet
🚀 Раскройте нативную мощь во Flutter: Часть 2
Продолжаем серию о нативной интеграции! В первой части мы разобрали Method Channels и Event Channels. Теперь погружаемся в Platform Views — мощный инструмент для встраивания нативных UI-компонентов прямо в ваше приложение.
📌 Когда нужны Platform Views?
🔹 Google Maps SDK
🔹 WebView с платформенными фичами
🔹 Предпросмотр камеры и видео
🔹 Нативная реклама и AR-компоненты
⚙️ Производительность: что важно знать
Platform Views имеют свою цену: они требуют гибридной композиции или виртуальных дисплеев. Используйте их только когда действительно необходимо!
✅ Android: Hybrid Composition (рекомендуется)
✅ iOS: UIKitView (стандартный подход)
⚠️ Virtual Display на Android — только для обратной совместимости
🔧 Как реализовать?
1️⃣ Создайте нативный вид (PlatformView на Android, FlutterPlatformView на iOS)
2️⃣ Реализуйте Factory для создания экземпляров
3️⃣ Зарегистрируйте фабрику в MainActivity.kt / AppDelegate.swift
4️⃣ Используйте AndroidView / UiKitView в коде Flutter
📌 Ограничения, о которых стоит помнить
🔹 Влияние на производительность: синхронизация кадров между Flutter и нативным UI
🔹 Конфликты жестов: настройте gestureRecognizers
🔹 Работа с клавиатурой: фокус и ввод могут вести себя непредсказуемо
🔹 Задержка кадров при сложных анимациях
🔹 Ограничение размера creationParams (~1 МБ)
🎯 Лучшие практики
🔹 Всегда задавайте явные ограничения размера
🔹 Корректно настраивайте обработку жестов
🔹 Освобождайте ресурсы при уничтожении вида
🔹 Используйте гибридную композицию на Android
🔹 Тестируйте с моками — не обязательно запускать на реальном устройстве!
✨ Бонус: Pigeon для типобезопасных каналов
Забудьте о ручном парсинге строк и карт! Pigeon генерирует типобезопасный код для Dart, Kotlin и Swift из одного API-описания.
🧭 Краткий гид по выбору
👉 Method Channels: разовые вызовы, платформенные функции
👉 Event Channels: стриминг данных, сенсоры, обновления в реальном времени
👉 Platform Views: нативный UI, сторонние SDK с интерфейсом
💡 Итог
Настоящая мощь — не в выборе между Flutter и Native, а в умении бесшовно соединять их. Теперь у вас есть все инструменты, чтобы создавать приложения, плавные как Dart и мощные как нативная ОС.
Мост построен. Мощь разблокирована. Что построите вы? 👇
🔗 Ссылки на материалы:
Читать на русском языке
Read in English
Читать оригинал
Все подобные новости ищите по хэштегу #FlutterPulseMedium ✨
FlutterPulse — канал о мире Flutter!
#flutter #dart #flutterpulse #FlutterPulseMedium
Продолжаем серию о нативной интеграции! В первой части мы разобрали Method Channels и Event Channels. Теперь погружаемся в Platform Views — мощный инструмент для встраивания нативных UI-компонентов прямо в ваше приложение.
📌 Когда нужны Platform Views?
🔹 Google Maps SDK
🔹 WebView с платформенными фичами
🔹 Предпросмотр камеры и видео
🔹 Нативная реклама и AR-компоненты
⚙️ Производительность: что важно знать
Platform Views имеют свою цену: они требуют гибридной композиции или виртуальных дисплеев. Используйте их только когда действительно необходимо!
✅ Android: Hybrid Composition (рекомендуется)
✅ iOS: UIKitView (стандартный подход)
⚠️ Virtual Display на Android — только для обратной совместимости
🔧 Как реализовать?
1️⃣ Создайте нативный вид (PlatformView на Android, FlutterPlatformView на iOS)
2️⃣ Реализуйте Factory для создания экземпляров
3️⃣ Зарегистрируйте фабрику в MainActivity.kt / AppDelegate.swift
4️⃣ Используйте AndroidView / UiKitView в коде Flutter
📌 Ограничения, о которых стоит помнить
🔹 Влияние на производительность: синхронизация кадров между Flutter и нативным UI
🔹 Конфликты жестов: настройте gestureRecognizers
🔹 Работа с клавиатурой: фокус и ввод могут вести себя непредсказуемо
🔹 Задержка кадров при сложных анимациях
🔹 Ограничение размера creationParams (~1 МБ)
🎯 Лучшие практики
🔹 Всегда задавайте явные ограничения размера
🔹 Корректно настраивайте обработку жестов
🔹 Освобождайте ресурсы при уничтожении вида
🔹 Используйте гибридную композицию на Android
🔹 Тестируйте с моками — не обязательно запускать на реальном устройстве!
✨ Бонус: Pigeon для типобезопасных каналов
Забудьте о ручном парсинге строк и карт! Pigeon генерирует типобезопасный код для Dart, Kotlin и Swift из одного API-описания.
🧭 Краткий гид по выбору
👉 Method Channels: разовые вызовы, платформенные функции
👉 Event Channels: стриминг данных, сенсоры, обновления в реальном времени
👉 Platform Views: нативный UI, сторонние SDK с интерфейсом
💡 Итог
Настоящая мощь — не в выборе между Flutter и Native, а в умении бесшовно соединять их. Теперь у вас есть все инструменты, чтобы создавать приложения, плавные как Dart и мощные как нативная ОС.
Мост построен. Мощь разблокирована. Что построите вы? 👇
🔗 Ссылки на материалы:
Читать на русском языке
Read in English
Читать оригинал
Все подобные новости ищите по хэштегу #FlutterPulseMedium ✨
FlutterPulse — канал о мире Flutter!
#flutter #dart #flutterpulse #FlutterPulseMedium
👍3
Обзор пакетов на тему Drawing, Painting & Signature
flutter_drawing_board 1.0.1+2
Этот мощный и настраиваемый пакет для Flutter позволяет создавать интерактивные доски для рисования с продвинутыми функциями. Он включает в себя богатый набор инструментов для рисования, продвинутую сглаживание линий, отмену/повтор, вращение, масштабирование и другие функции.
👍 Лайки: 263, 📥 Скачиваний: 11.4K
📅 Обновлено: 57 дней назад
https://pub.dev/packages/flutter_drawing_board
perfect_freehand 2.5.2+1
Этот пакет для Flutter позволяет рисовать идеальные линии с учетом давления, он портирован из JavaScript-библиотеки perfect-freehand. Пакет поддерживает имитацию давления или использование реального давления и позволяет настраивать размер, сглаживание, тонкость и другие параметры линии.
👍 Лайки: 185, 📥 Скачиваний: 5.9K
📅 Обновлено: 50 дней назад
https://pub.dev/packages/perfect_freehand
signature 6.3.0
Этот пакет предоставляет высокопроизводительный canvas для подписей с настройками стиля, границ и начального состояния. Пакет имеет высокую производительность и прост в использовании.
👍 Лайки: 652, 📥 Скачиваний: 182K
📅 Обновлено: 9 месяцев назад
https://pub.dev/packages/signature
hand_signature 3.1.0+2
Hand Signature - это плагин для Flutter, который предоставляет Signature Pad для создания гладких подписей. Пакет работает на любой платформе, поддерживаемой Flutter, и позволяет изменять толщину линии, цвет и сглаживание.
👍 Лайки: 301, 📥 Скачиваний: 9.0K
📅 Обновлено: 8 месяцев назад
https://pub.dev/packages/hand_signature
flutter_painter_v2 2.1.0+1
Этот пакет для рисования в Flutter позволяет свободно рисовать, добавлять текст, формы, изображения и даже стирать. Пакет прост в использовании и имеет интуитивный интерфейс.
👍 Лайки: 77, 📥 Скачиваний: 767
📅 Обновлено: 13 месяцев назад
https://pub.dev/packages/flutter_painter_v2
syncfusion_flutter_signaturepad 33.1.44
Этот пакет позволяет легко интегрировать функцию подписи в ваши Flutter-приложения, создавать реалистичные подписи и настраивать внешний вид. Пакет также позволяет сохранять подписи как изображения для использования в документах и других приложениях.
👍 Лайки: 304, 📥 Скачиваний: 190K
📅 Обновлено: 44 часа назад
https://pub.dev/packages/syncfusion_flutter_signaturepad
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #flutterpulse #flutter_drawing_board #perfect_freehand #signature #hand_signature #flutter_painter_v2 #syncfusion_flutter_signaturepad
flutter_drawing_board 1.0.1+2
Этот мощный и настраиваемый пакет для Flutter позволяет создавать интерактивные доски для рисования с продвинутыми функциями. Он включает в себя богатый набор инструментов для рисования, продвинутую сглаживание линий, отмену/повтор, вращение, масштабирование и другие функции.
👍 Лайки: 263, 📥 Скачиваний: 11.4K
📅 Обновлено: 57 дней назад
https://pub.dev/packages/flutter_drawing_board
perfect_freehand 2.5.2+1
Этот пакет для Flutter позволяет рисовать идеальные линии с учетом давления, он портирован из JavaScript-библиотеки perfect-freehand. Пакет поддерживает имитацию давления или использование реального давления и позволяет настраивать размер, сглаживание, тонкость и другие параметры линии.
👍 Лайки: 185, 📥 Скачиваний: 5.9K
📅 Обновлено: 50 дней назад
https://pub.dev/packages/perfect_freehand
signature 6.3.0
Этот пакет предоставляет высокопроизводительный canvas для подписей с настройками стиля, границ и начального состояния. Пакет имеет высокую производительность и прост в использовании.
👍 Лайки: 652, 📥 Скачиваний: 182K
📅 Обновлено: 9 месяцев назад
https://pub.dev/packages/signature
hand_signature 3.1.0+2
Hand Signature - это плагин для Flutter, который предоставляет Signature Pad для создания гладких подписей. Пакет работает на любой платформе, поддерживаемой Flutter, и позволяет изменять толщину линии, цвет и сглаживание.
👍 Лайки: 301, 📥 Скачиваний: 9.0K
📅 Обновлено: 8 месяцев назад
https://pub.dev/packages/hand_signature
flutter_painter_v2 2.1.0+1
Этот пакет для рисования в Flutter позволяет свободно рисовать, добавлять текст, формы, изображения и даже стирать. Пакет прост в использовании и имеет интуитивный интерфейс.
👍 Лайки: 77, 📥 Скачиваний: 767
📅 Обновлено: 13 месяцев назад
https://pub.dev/packages/flutter_painter_v2
syncfusion_flutter_signaturepad 33.1.44
Этот пакет позволяет легко интегрировать функцию подписи в ваши Flutter-приложения, создавать реалистичные подписи и настраивать внешний вид. Пакет также позволяет сохранять подписи как изображения для использования в документах и других приложениях.
👍 Лайки: 304, 📥 Скачиваний: 190K
📅 Обновлено: 44 часа назад
https://pub.dev/packages/syncfusion_flutter_signaturepad
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #flutterpulse #flutter_drawing_board #perfect_freehand #signature #hand_signature #flutter_painter_v2 #syncfusion_flutter_signaturepad
Flutter Pulse
Flutter Voronezh Meetup | Scope Manager Всем привет! Сегодня мы поговорим о новом пакете Scope Manager, который был представлен на Flutter Voronezh Meetup. 📱💻 ✅ О чем пойдет речь? 🔹 Dependency Injection и его важность в разработке Flutter-приложений 🤔 🔹…
Scope Manager | Dependency Injection For Flutter 📱💻
В этом видео автор в продолжении стрима рассказывает о внедрении зависимостей (Dependency Injection) в Flutter и представляет свою библиотеку Scope Manager для управления зависимостями. 📚💡
Внедрение зависимостей - это процесс предоставления зависимостей классам, которые в них нуждаются. 🔄💻 Существует несколько способов сделать это, включая конструктор, метод или параметр, а также свойство или поле. 📝👀
Автор делится своими предпочтениями относительно управления зависимостями, подчеркивая важность централизованного управления и явного контроля жизненного цикла объектов. 🔝💯
Он также представляет библиотеку Scope Manager, которая позволяет управлять зависимостями на основе областей (scopes). 📈💻 Области представляют собой группы зависимостей, которые имеют одинаковый жизненный цикл. 🔄👥
В видео автор демонстрирует пример использования Scope Manager в Flutter-приложении, показывая, как библиотека упрощает управление зависимостями и их жизненным циклом. 📱💻
Если вы заинтересованы в улучшении управления зависимостями в ваших Flutter-приложениях, это видео для вас! 👀💡
Ссылка на видео: Scope Manager | Dependency Injection For Flutter 🎥
👉 Подпишитесь на канал и посмотрите другие видео по хэштегу #FlutterPulseYoutube! 📚👍
#Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube
В этом видео автор в продолжении стрима рассказывает о внедрении зависимостей (Dependency Injection) в Flutter и представляет свою библиотеку Scope Manager для управления зависимостями. 📚💡
Внедрение зависимостей - это процесс предоставления зависимостей классам, которые в них нуждаются. 🔄💻 Существует несколько способов сделать это, включая конструктор, метод или параметр, а также свойство или поле. 📝👀
Автор делится своими предпочтениями относительно управления зависимостями, подчеркивая важность централизованного управления и явного контроля жизненного цикла объектов. 🔝💯
Он также представляет библиотеку Scope Manager, которая позволяет управлять зависимостями на основе областей (scopes). 📈💻 Области представляют собой группы зависимостей, которые имеют одинаковый жизненный цикл. 🔄👥
В видео автор демонстрирует пример использования Scope Manager в Flutter-приложении, показывая, как библиотека упрощает управление зависимостями и их жизненным циклом. 📱💻
Если вы заинтересованы в улучшении управления зависимостями в ваших Flutter-приложениях, это видео для вас! 👀💡
Ссылка на видео: Scope Manager | Dependency Injection For Flutter 🎥
👉 Подпишитесь на канал и посмотрите другие видео по хэштегу #FlutterPulseYoutube! 📚👍
#Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube
Самые лучшие обновлённые пакеты за последние 24 часа
vector_math 2.3.0 - пакет для работы с векторами и матрицами в 2D и 3D приложениях.
В новой версии добавлены методы leftTranslateByVector2, leftMultiply и translateByVector2 для класса Matrix4.
👍 Лайки: 371, 📥 Скачиваний: 4.5M
https://pub.dev/packages/vector_math
liquid_glass_widgets 0.4.0-dev.6 - пакет, предоставляющий 32 красивых и настраиваемых виджетов в стиле Apple's Liquid Glass для Flutter.
В новой версии исправлены ошибки, связанные с крахами на iOS-симуляторах и проблемами с загрузкой шейдеров в тестах.
👍 Лайки: 54, 📥 Скачиваний: 3К
https://pub.dev/packages/liquid_glass_widgets
dart_style 3.1.8 - автоматический форматтер кода на языке Dart.
В новой версии сделаны изменения в форматировании расширений типов и добавление пустых строк вокруг объявлений миксинов и расширений типов.
👍 Лайки: 124, 📥 Скачиваний: 7.3M
https://pub.dev/packages/dart_style
test_api 0.7.11 - пакет для написания тестов.
В новой версии добавлены runtime vmAsan, vmMsan и vmTsan, изменён тип возвращаемого значения в callback body группы на void и обновлены зависимости.
👍 Лайки: 24, 📥 Скачиваний: 6.6M
https://pub.dev/packages/test_api
test 1.31.0 - пакет для написания и запуска тестов в Dart.
В новой версии добавлена возможность вывода сводки проваленных тестов и поддержка запуска тестов на standalone Dart VM под Address Sanitizer, Memory Sanitizer и Thread Sanitizer.
👍 Лайки: 619, 📥 Скачиваний: 5.9M
https://pub.dev/packages/test
audio_session 0.2.3 - пакет, позволяющий приложениям информировать операционную систему о характере аудио-приложения и настраивать обработку аудио-перебоев.
В новой версии исправлены ошибки, связанные с методом AVAudioSession и игнорированием аудио-атрибутов на Android.
👍 Лайки: 354, 📥 Скачиваний: 722К
https://pub.dev/packages/audio_session
FlutterPulse — канал о мире Flutter!
Поддержать канал
#Flutter #Dart #pubdev #FlutterPulse #FlutterPulseBestPackages #vector_math #liquid_glass_widgets #dart_style #test_api #test #audio_session
vector_math 2.3.0 - пакет для работы с векторами и матрицами в 2D и 3D приложениях.
В новой версии добавлены методы leftTranslateByVector2, leftMultiply и translateByVector2 для класса Matrix4.
👍 Лайки: 371, 📥 Скачиваний: 4.5M
https://pub.dev/packages/vector_math
liquid_glass_widgets 0.4.0-dev.6 - пакет, предоставляющий 32 красивых и настраиваемых виджетов в стиле Apple's Liquid Glass для Flutter.
В новой версии исправлены ошибки, связанные с крахами на iOS-симуляторах и проблемами с загрузкой шейдеров в тестах.
👍 Лайки: 54, 📥 Скачиваний: 3К
https://pub.dev/packages/liquid_glass_widgets
dart_style 3.1.8 - автоматический форматтер кода на языке Dart.
В новой версии сделаны изменения в форматировании расширений типов и добавление пустых строк вокруг объявлений миксинов и расширений типов.
👍 Лайки: 124, 📥 Скачиваний: 7.3M
https://pub.dev/packages/dart_style
test_api 0.7.11 - пакет для написания тестов.
В новой версии добавлены runtime vmAsan, vmMsan и vmTsan, изменён тип возвращаемого значения в callback body группы на void и обновлены зависимости.
👍 Лайки: 24, 📥 Скачиваний: 6.6M
https://pub.dev/packages/test_api
test 1.31.0 - пакет для написания и запуска тестов в Dart.
В новой версии добавлена возможность вывода сводки проваленных тестов и поддержка запуска тестов на standalone Dart VM под Address Sanitizer, Memory Sanitizer и Thread Sanitizer.
👍 Лайки: 619, 📥 Скачиваний: 5.9M
https://pub.dev/packages/test
audio_session 0.2.3 - пакет, позволяющий приложениям информировать операционную систему о характере аудио-приложения и настраивать обработку аудио-перебоев.
В новой версии исправлены ошибки, связанные с методом AVAudioSession и игнорированием аудио-атрибутов на Android.
👍 Лайки: 354, 📥 Скачиваний: 722К
https://pub.dev/packages/audio_session
FlutterPulse — канал о мире Flutter!
Поддержать канал
#Flutter #Dart #pubdev #FlutterPulse #FlutterPulseBestPackages #vector_math #liquid_glass_widgets #dart_style #test_api #test #audio_session
👍1
👣 Keys во Flutter: как не потерять состояние при перестройке списков 📱💻
Один из самых частых источников багов во Flutter - потеря состояния при перестройке списков или перестановке элементов 🤦♂️. Кажется, все работает, но при добавлении новой карточки счетчик перескакивает на другую 📊. Или при изменении порядка чекбоксы остаются отмеченными не там 📝. Чаще всего проблема решается при помощи Keys 🔑.
Для чего используются Keys:
Flutter при обновлении экрана сравнивает старый и новый список виджетов и пытается понять, что изменилось 🤔. По умолчанию он ориентируется на тип виджета и его позицию в дереве 🌳. Это быстро, но приводит к ошибкам, когда элементы одного типа меняются местами или добавляются новые 🔄.
Keys дают Flutter дополнительную информацию: вместо «третий элемент в списке» он ищет «элемент с таким-то идентификатором» 📝. Благодаря этому состояние прикрепляется к конкретному объекту, а не к индексу 📈.
Типы ключей и когда их выбирать:
🔵 ValueKey - самый частый выбор 📈. Берет какое-то стабильное значение (id, уникальный заголовок) и использует его как идентификатор 📝. Идеально для списков, где у каждого элемента есть уникальный ключ из данных 📊.
🔵 ObjectKey - использует сам объект в качестве идентификатора, сравнивая его через стандартный оператор == 📊. Пригождается, когда у элемента нет уникального поля (например id), но сам объект достаточно стабилен и не меняется в процессе работы 🔄.
🔵 UniqueKey - каждый раз создает новый идентификатор 🔑. Это гарантирует, что Flutter не будет пытаться сопоставить виджет с предыдущим, а создаст новый элемент с нуля 📈. Удобно, когда нужно принудительно сбросить состояние (например пересоздать анимацию), но использовать на каждый чих не стоит - производительность пострадает 🚫.
🔵 GlobalKey - тяжелая артиллерия 🚀. Позволяет получить доступ к состоянию виджета из любой точки приложения 🌐. Нужен для сложных сценариев: работа с формами, программная навигация, тестирование 📝. Но каждый такой ключ хранится глобально и не очищается автоматически, поэтому их количество должно быть минимальным 📊.
Где без ключей не обойтись:
🔵 Списки, где элементы можно переставлять, добавлять или удалять 📈.
🔵 Виджеты, которые меняют порядок в зависимости от условий 📊.
🔵 Любые места, где важно сохранить состояние за конкретным экземпляром данных 📝.
Где ключи не нужны:
🔵 Статичные списки, которые не меняются 📝.
🔵 Виджеты без внутреннего состояния (статусные иконки, просто текст) 📄.
🔵 Случаи, где состояние вообще не важно 🤷♂️.
Чего делать не стоит:
Не надо оборачивать каждый виджет в Key просто потому, что так можно 🚫. Лишние ключи усложняют алгоритмы сравнения и могут замедлить рендеринг 🚀. Особенно это касается GlobalKey - его наличие в каждом втором виджете быстро приведет к утечкам и падению производительности 📉.
💡 Вывод:
Keys - это инструмент для точечного решения проблем с идентификацией виджетов 🔍. Если при перестройке интерфейса состояние прыгает или теряется - скорее всего, нужен ValueKey 📈. Если нужно сбросить внутреннее состояние - поможет UniqueKey 🔑. А если без доступа к виджету из другого места не обойтись - придется использовать GlobalKey 🚀. Во всех остальных случаях лучше обойтись без них 🙅♂️.
Полную новость читайте здесь.
FlutterPulse — канал о мире Flutter!
#flutter #dart #FlutterPulse #FlutterPulseNews #hardworkerFlutter #mobiledevelopment #flutterwidgets
Один из самых частых источников багов во Flutter - потеря состояния при перестройке списков или перестановке элементов 🤦♂️. Кажется, все работает, но при добавлении новой карточки счетчик перескакивает на другую 📊. Или при изменении порядка чекбоксы остаются отмеченными не там 📝. Чаще всего проблема решается при помощи Keys 🔑.
Для чего используются Keys:
Flutter при обновлении экрана сравнивает старый и новый список виджетов и пытается понять, что изменилось 🤔. По умолчанию он ориентируется на тип виджета и его позицию в дереве 🌳. Это быстро, но приводит к ошибкам, когда элементы одного типа меняются местами или добавляются новые 🔄.
Keys дают Flutter дополнительную информацию: вместо «третий элемент в списке» он ищет «элемент с таким-то идентификатором» 📝. Благодаря этому состояние прикрепляется к конкретному объекту, а не к индексу 📈.
Типы ключей и когда их выбирать:
🔵 ValueKey - самый частый выбор 📈. Берет какое-то стабильное значение (id, уникальный заголовок) и использует его как идентификатор 📝. Идеально для списков, где у каждого элемента есть уникальный ключ из данных 📊.
🔵 ObjectKey - использует сам объект в качестве идентификатора, сравнивая его через стандартный оператор == 📊. Пригождается, когда у элемента нет уникального поля (например id), но сам объект достаточно стабилен и не меняется в процессе работы 🔄.
🔵 UniqueKey - каждый раз создает новый идентификатор 🔑. Это гарантирует, что Flutter не будет пытаться сопоставить виджет с предыдущим, а создаст новый элемент с нуля 📈. Удобно, когда нужно принудительно сбросить состояние (например пересоздать анимацию), но использовать на каждый чих не стоит - производительность пострадает 🚫.
🔵 GlobalKey - тяжелая артиллерия 🚀. Позволяет получить доступ к состоянию виджета из любой точки приложения 🌐. Нужен для сложных сценариев: работа с формами, программная навигация, тестирование 📝. Но каждый такой ключ хранится глобально и не очищается автоматически, поэтому их количество должно быть минимальным 📊.
Где без ключей не обойтись:
🔵 Списки, где элементы можно переставлять, добавлять или удалять 📈.
🔵 Виджеты, которые меняют порядок в зависимости от условий 📊.
🔵 Любые места, где важно сохранить состояние за конкретным экземпляром данных 📝.
Где ключи не нужны:
🔵 Статичные списки, которые не меняются 📝.
🔵 Виджеты без внутреннего состояния (статусные иконки, просто текст) 📄.
🔵 Случаи, где состояние вообще не важно 🤷♂️.
Чего делать не стоит:
Не надо оборачивать каждый виджет в Key просто потому, что так можно 🚫. Лишние ключи усложняют алгоритмы сравнения и могут замедлить рендеринг 🚀. Особенно это касается GlobalKey - его наличие в каждом втором виджете быстро приведет к утечкам и падению производительности 📉.
💡 Вывод:
Keys - это инструмент для точечного решения проблем с идентификацией виджетов 🔍. Если при перестройке интерфейса состояние прыгает или теряется - скорее всего, нужен ValueKey 📈. Если нужно сбросить внутреннее состояние - поможет UniqueKey 🔑. А если без доступа к виджету из другого места не обойтись - придется использовать GlobalKey 🚀. Во всех остальных случаях лучше обойтись без них 🙅♂️.
Полную новость читайте здесь.
FlutterPulse — канал о мире Flutter!
#flutter #dart #FlutterPulse #FlutterPulseNews #hardworkerFlutter #mobiledevelopment #flutterwidgets
Фёдор Благодырь - Грокаем Build hooks и Native Assets (FlutterConf 26)
Сегодня мы поговорим о новой фиче в Dart под названием Build Hooks. Build Hooks - это мощный инструмент, который позволяет компилировать и упаковывать код других языков в Dart-приложения.
Что такое Build Hooks?
Build Hooks - это специальный скрипт, который описывает, как собрать и упаковать код других языков в Dart-приложение. Build Hooks выполняется параллельно компиляции Dart-приложения.
Преимущества Build Hooks
✨ Новый универсальный механизм для компиляции и упаковки кода других языков
✨ Меньше ошибок и boilerplate-кода
✨ Больше возможностей для разработчиков
Как работает Build Hooks?
1. Начало билда Dart или Flutter-приложения
2. Dart идёт в директорию
3. Если файл существует, запускается процесс параллельной компиляции
Пример использования Build Hooks
Рассмотрим пример подключения C-библиотеки к Flutter-приложению. Раньше нам нужно было вручную настраивать сборку и линковку библиотеки. Теперь с помощью Build Hooks мы можем сделать это намного проще.
Вывод
Build Hooks - это мощный инструмент, который упрощает процесс подключения библиотек других языков к Dart-приложениям. Это новая возможность для разработчиков, которая открывает новые горизонты для создания более сложных и интересных приложений.
Ссылка на видео: Фёдор Благодырь - Грокаем Build hooks и Native Assets (FlutterConf 26)
👉 Посмотрите видео и узнайте больше о Build Hooks и Native Assets!
👉 Подпишитесь на наш канал и следите за новыми видео по #FlutterPulseYoutube!
#Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube
Сегодня мы поговорим о новой фиче в Dart под названием Build Hooks. Build Hooks - это мощный инструмент, который позволяет компилировать и упаковывать код других языков в Dart-приложения.
Что такое Build Hooks?
Build Hooks - это специальный скрипт, который описывает, как собрать и упаковать код других языков в Dart-приложение. Build Hooks выполняется параллельно компиляции Dart-приложения.
Преимущества Build Hooks
✨ Новый универсальный механизм для компиляции и упаковки кода других языков
✨ Меньше ошибок и boilerplate-кода
✨ Больше возможностей для разработчиков
Как работает Build Hooks?
1. Начало билда Dart или Flutter-приложения
2. Dart идёт в директорию
hook и смотрит на файл build.dart3. Если файл существует, запускается процесс параллельной компиляции
Пример использования Build Hooks
Рассмотрим пример подключения C-библиотеки к Flutter-приложению. Раньше нам нужно было вручную настраивать сборку и линковку библиотеки. Теперь с помощью Build Hooks мы можем сделать это намного проще.
Вывод
Build Hooks - это мощный инструмент, который упрощает процесс подключения библиотек других языков к Dart-приложениям. Это новая возможность для разработчиков, которая открывает новые горизонты для создания более сложных и интересных приложений.
Ссылка на видео: Фёдор Благодырь - Грокаем Build hooks и Native Assets (FlutterConf 26)
👉 Посмотрите видео и узнайте больше о Build Hooks и Native Assets!
👉 Подпишитесь на наш канал и следите за новыми видео по #FlutterPulseYoutube!
#Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube
😁4
📍 Как интегрировать Google Maps в Flutter-приложение и отобразить текущее местоположение
В этой статье мы шаг за шагом интегрируем Google Maps в Flutter и отобразим реальное текущее местоположение. Это руководство идеально подходит для начинающих и часто используется в приложениях доставки, заказа такси, трекинга и навигации.
🔹 Что мы будем строить:
✅ Отображать Google Map внутри Flutter-приложения
✅ Запрашивать разрешение на доступ к местоположению
✅ Получать текущее GPS-местоположение пользователя
✅ Отображать маркер на текущем местоположении
✅ Перемещать камеру к местоположению пользователя
Для начала необходимо:
1️⃣ Создать ключ API Google Maps
2️⃣ Добавить необходимые зависимости в pubspec.yaml
3️⃣ Настроить Android и iOS
В статье приведен полный рабочий пример Flutter-кода для отображения Google Map с текущим местоположением.
✅ Geolocator используется для получения GPS-местоположения
✅ GoogleMap отображает карту
✅ Marker показывает текущее местоположение
✅ CameraUpdate перемещает камеру к пользователю
🎯 Интеграция Google Maps во Flutter проста, если настройка выполнена правильно. Следуя нескольким шагам, вы можете отображать реальное местоположение пользователя и создавать мощные функции на основе местоположения.
💙 Если вы Flutter-разработчик, это обязательный навык!
🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Читать оригинал
Все подобные новости ищите по хэштегу #FlutterPulseMedium ✨
FlutterPulse — канал о мире Flutter!
#flutter #dart #flutterpulse #FlutterPulseMedium
В этой статье мы шаг за шагом интегрируем Google Maps в Flutter и отобразим реальное текущее местоположение. Это руководство идеально подходит для начинающих и часто используется в приложениях доставки, заказа такси, трекинга и навигации.
🔹 Что мы будем строить:
✅ Отображать Google Map внутри Flutter-приложения
✅ Запрашивать разрешение на доступ к местоположению
✅ Получать текущее GPS-местоположение пользователя
✅ Отображать маркер на текущем местоположении
✅ Перемещать камеру к местоположению пользователя
Для начала необходимо:
1️⃣ Создать ключ API Google Maps
2️⃣ Добавить необходимые зависимости в pubspec.yaml
3️⃣ Настроить Android и iOS
В статье приведен полный рабочий пример Flutter-кода для отображения Google Map с текущим местоположением.
✅ Geolocator используется для получения GPS-местоположения
✅ GoogleMap отображает карту
✅ Marker показывает текущее местоположение
✅ CameraUpdate перемещает камеру к пользователю
🎯 Интеграция Google Maps во Flutter проста, если настройка выполнена правильно. Следуя нескольким шагам, вы можете отображать реальное местоположение пользователя и создавать мощные функции на основе местоположения.
💙 Если вы Flutter-разработчик, это обязательный навык!
🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Читать оригинал
Все подобные новости ищите по хэштегу #FlutterPulseMedium ✨
FlutterPulse — канал о мире Flutter!
#flutter #dart #flutterpulse #FlutterPulseMedium
👍2
Обзор пакетов на тему Code Generator & Serialization (JSON)
FlutterGen 1.0.0
FlutterGen генерирует безопасный и удобный код для ваших ресурсов, шрифтов, цветов и других элементов. Это экономит время и уменьшает количество ошибок.
👍 Лайки: 1720, 📥 Скачиваний: 114K
📅 Обновлено: 9 дней назад
https://pub.dev/packages/flutter_gen
Freezed 3.2.5
Freezed - это генератор кода для данных классов в Dart, который автоматически генерирует код для конструкторов, методов и сериализации/десериализации. Это упрощает работу с данными и уменьшает количество ошибок.
👍 Лайки: 4460, 📥 Скачиваний: 1.8M
📅 Обновлено: 43 дня назад
https://pub.dev/packages/freezed
json_serializable 6.13.0
Пакет `json_serializable` генерирует код для сериализации и десериализации объектов в JSON, что упрощает работу с JSON в Dart. Он поддерживает различные типы и позволяет настраивать сериализацию.
👍 Лайки: 3910, 📥 Скачиваний: 2.6M
📅 Обновлено: 27 дней назад
https://pub.dev/packages/json_serializable
freezed_annotation 3.1.0
Этот пакет необходим для работы с **freezed** и позволяет генерировать код для immutability, сериализации и других полезных функций.
👍 Лайки: 549, 📥 Скачиваний: 2.7M
📅 Обновлено: 8 месяцев назад
https://pub.dev/packages/freezed_annotation
source_gen 4.2.1
**source_gen** - это пакет для автоматического генерирования кода Dart, который предоставляет фреймворк для написания генераторов кода и конвенции для совместимости кода.
👍 Лайки: 189, 📥 Скачиваний: 4.1M
📅 Обновлено: 5 дней назад
https://pub.dev/packages/source_gen
json_annotation 4.11.0
**json_annotation** - пакет для автоматического генерирования кода для сериализации и десериализации JSON в Dart.
👍 Лайки: 1300, 📥 Скачиваний: 7.1M
📅 Обновлено: 27 дней назад
https://pub.dev/packages/json_annotation
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #flutterpulse #FlutterPulseThemedPackages #FlutterGen #Freezed #json_serializable #freezed_annotation #source_gen #json_annotation
FlutterGen 1.0.0
FlutterGen генерирует безопасный и удобный код для ваших ресурсов, шрифтов, цветов и других элементов. Это экономит время и уменьшает количество ошибок.
👍 Лайки: 1720, 📥 Скачиваний: 114K
📅 Обновлено: 9 дней назад
https://pub.dev/packages/flutter_gen
Freezed 3.2.5
Freezed - это генератор кода для данных классов в Dart, который автоматически генерирует код для конструкторов, методов и сериализации/десериализации. Это упрощает работу с данными и уменьшает количество ошибок.
👍 Лайки: 4460, 📥 Скачиваний: 1.8M
📅 Обновлено: 43 дня назад
https://pub.dev/packages/freezed
json_serializable 6.13.0
Пакет `json_serializable` генерирует код для сериализации и десериализации объектов в JSON, что упрощает работу с JSON в Dart. Он поддерживает различные типы и позволяет настраивать сериализацию.
👍 Лайки: 3910, 📥 Скачиваний: 2.6M
📅 Обновлено: 27 дней назад
https://pub.dev/packages/json_serializable
freezed_annotation 3.1.0
Этот пакет необходим для работы с **freezed** и позволяет генерировать код для immutability, сериализации и других полезных функций.
👍 Лайки: 549, 📥 Скачиваний: 2.7M
📅 Обновлено: 8 месяцев назад
https://pub.dev/packages/freezed_annotation
source_gen 4.2.1
**source_gen** - это пакет для автоматического генерирования кода Dart, который предоставляет фреймворк для написания генераторов кода и конвенции для совместимости кода.
👍 Лайки: 189, 📥 Скачиваний: 4.1M
📅 Обновлено: 5 дней назад
https://pub.dev/packages/source_gen
json_annotation 4.11.0
**json_annotation** - пакет для автоматического генерирования кода для сериализации и десериализации JSON в Dart.
👍 Лайки: 1300, 📥 Скачиваний: 7.1M
📅 Обновлено: 27 дней назад
https://pub.dev/packages/json_annotation
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #flutterpulse #FlutterPulseThemedPackages #FlutterGen #Freezed #json_serializable #freezed_annotation #source_gen #json_annotation
❤1👍1
Самые лучшие обновлённые пакеты за последние 24 часа
braze_plugin 18.0.0 - Пакет для интеграции Braze SDK в приложения Flutter. В новой версии упрощена интеграция на iOS, добавлена поддержка отложенной инициализации SDK и исправлены ошибки.
👍 Лайки: 33, 📥 Скачиваний: 165К
https://pub.dev/packages/braze_plugin
functional_status_codes 3.2.0 - Пакет для безопасного и функционального обработки кодов состояния HTTP в Dart.
В обновлении добавлен новый метод isError для проверки ошибок, исправлены ошибки в методах maybeMapStatusCode и StatusCode.random(), а также улучшена документация.
Пакет имеет 10 лайков и 323 скачивания.
https://pub.dev/packages/functional_status_codes
flutter_contacts 2.0.1 - Пакет позволяет работать с контактами на устройствах Android, iOS и macOS, включая создание, обновление и удаление контактов, а также поддержку групп, аккаунтов и импорта/экспорта vCard.
Лайков: 478, Скачиваний: 27.1К
https://pub.dev/packages/flutter_contacts
fl_pip 3.2.2 - Пакет позволяет реализовать режим "картинка в картинке" для приложений Flutter на iOS и Android.
В новой версии исправлены некоторые проблемы и добавлены новые функции.
Лайков: 57, Скачиваний: 1.1К
https://pub.dev/packages/fl_pip
flutter_widgetz 15.1.1 - Теперь CustomTextField обновляется только при необходимости, снижая количество ненужных операций записи в контроллер.
Пример также обновлен.
Пакет набрал 15 лайков и 1820 скачиваний.
https://pub.dev/packages/flutter_widgetz
mason_logger 0.3.5 - Пакет используется для создания повторно используемого логгера в Mason CLI. В новой версии исправлена ошибка, связанная с использованием native assets на Windows.
Лайков: 47
Скачиваний: 542К
https://pub.dev/packages/mason_logger
FlutterPulse — канал о мире Flutter!
Поддержать канал
#Flutter #Dart #pubdev #FlutterPulse #FlutterPulseBestPackages #braze_plugin #functional_status_codes #flutter_contacts #fl_pip #flutter_widgetz #mason_logger
braze_plugin 18.0.0 - Пакет для интеграции Braze SDK в приложения Flutter. В новой версии упрощена интеграция на iOS, добавлена поддержка отложенной инициализации SDK и исправлены ошибки.
👍 Лайки: 33, 📥 Скачиваний: 165К
https://pub.dev/packages/braze_plugin
functional_status_codes 3.2.0 - Пакет для безопасного и функционального обработки кодов состояния HTTP в Dart.
В обновлении добавлен новый метод isError для проверки ошибок, исправлены ошибки в методах maybeMapStatusCode и StatusCode.random(), а также улучшена документация.
Пакет имеет 10 лайков и 323 скачивания.
https://pub.dev/packages/functional_status_codes
flutter_contacts 2.0.1 - Пакет позволяет работать с контактами на устройствах Android, iOS и macOS, включая создание, обновление и удаление контактов, а также поддержку групп, аккаунтов и импорта/экспорта vCard.
Лайков: 478, Скачиваний: 27.1К
https://pub.dev/packages/flutter_contacts
fl_pip 3.2.2 - Пакет позволяет реализовать режим "картинка в картинке" для приложений Flutter на iOS и Android.
В новой версии исправлены некоторые проблемы и добавлены новые функции.
Лайков: 57, Скачиваний: 1.1К
https://pub.dev/packages/fl_pip
flutter_widgetz 15.1.1 - Теперь CustomTextField обновляется только при необходимости, снижая количество ненужных операций записи в контроллер.
Пример также обновлен.
Пакет набрал 15 лайков и 1820 скачиваний.
https://pub.dev/packages/flutter_widgetz
mason_logger 0.3.5 - Пакет используется для создания повторно используемого логгера в Mason CLI. В новой версии исправлена ошибка, связанная с использованием native assets на Windows.
Лайков: 47
Скачиваний: 542К
https://pub.dev/packages/mason_logger
FlutterPulse — канал о мире Flutter!
Поддержать канал
#Flutter #Dart #pubdev #FlutterPulse #FlutterPulseBestPackages #braze_plugin #functional_status_codes #flutter_contacts #fl_pip #flutter_widgetz #mason_logger
👍1
Продвинутая адаптивность во Flutter с advanced_responsive
Вы когда-нибудь сталкивались с проблемой создания адаптивного дизайна во Flutter, который бы работал на множестве устройств — от смартфонов до телевизоров? Теперь это стало проще с пакетом
🔹 Пакет не требует сложной настройки и работает из коробки.
🔹 Основан на Material Design 3, используя стандартные breakpoints.
🔹 Включает встроенную систему отступов, которая автоматически масштабируется.
🔹 Предоставляет удобные context extensions для упрощения работы.
✅ Пакет поддерживает плавные переходы между breakpoints.
✅ Автоматически обрабатывает изменения ориентации экрана.
✅ Учитывает настройки доступности системы, такие как масштаб текста.
👉 Миграция на
👉 Пакет добавляет всего ~50KB к размеру вашего приложения.
В roadmap пакета входят такие интересные функции, как:
⚙️ Анимированные переходы между breakpoints
⚙️ Debug overlay для визуализации текущего breakpoint
⚙️ Поддержка кастомных breakpoints
Оставьте свои отзывы и предложения — автор пакета, Sayed Moataz, открыт к диалогу! 💬
#flutter #dart #flutterpulse #FlutterPulseMedium
🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Читать оригинал
Все подобные новости ищите по хэштегу #FlutterPulseMedium ✨
FlutterPulse — канал о мире Flutter!
Вы когда-нибудь сталкивались с проблемой создания адаптивного дизайна во Flutter, который бы работал на множестве устройств — от смартфонов до телевизоров? Теперь это стало проще с пакетом
advanced_responsive!🔹 Пакет не требует сложной настройки и работает из коробки.
🔹 Основан на Material Design 3, используя стандартные breakpoints.
🔹 Включает встроенную систему отступов, которая автоматически масштабируется.
🔹 Предоставляет удобные context extensions для упрощения работы.
✅ Пакет поддерживает плавные переходы между breakpoints.
✅ Автоматически обрабатывает изменения ориентации экрана.
✅ Учитывает настройки доступности системы, такие как масштаб текста.
👉 Миграция на
advanced_responsive может быть постепенной, один экран за раз.👉 Пакет добавляет всего ~50KB к размеру вашего приложения.
В roadmap пакета входят такие интересные функции, как:
⚙️ Анимированные переходы между breakpoints
⚙️ Debug overlay для визуализации текущего breakpoint
⚙️ Поддержка кастомных breakpoints
Оставьте свои отзывы и предложения — автор пакета, Sayed Moataz, открыт к диалогу! 💬
#flutter #dart #flutterpulse #FlutterPulseMedium
🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Читать оригинал
Все подобные новости ищите по хэштегу #FlutterPulseMedium ✨
FlutterPulse — канал о мире Flutter!
👍3
Обзор пакетов на тему Keyboard
FocusableControlBuilder 1.1.0
FocusableControlBuilder упрощает создание контролов с поддержкой перехода по клавише Tab, состояний фокуса и наведения, изменения курсора мыши, клавиатурных сокращений. Пакет позволяет создавать кастомные контролы, которые будут работать корректно на всех платформах и устройствах ввода.
👍 Лайки: 52, 📥 Скачиваний: 1.9K
📅 Обновлено: 9 месяцев назад
https://pub.dev/packages/focusable_control_builder
keyboard_actions 4.2.1
keyboard_actions позволяет легко добавлять функциональность к стандартной клавиатуре Android и iOS, включая добавление кнопки "Готово" к клавиатуре, переход между полями ввода, настройку внешнего вида панели клавиатуры и добавление пользовательского видажета под панелью клавиатуры.
👍 Лайки: 1180, 📥 Скачиваний: 146K
📅 Обновлено: 4 месяца назад
https://pub.dev/packages/keyboard_actions
math_keyboard 0.3.3
math_keyboard позволяет редактировать математические выражения в Flutter с помощью специального виртуального клавиатуры и поля ввода, поддерживая ввод с физической клавиатуры, режимы ввода чисел и выражений, расширенные операторы и тригонометрические функции.
👍 Лайки: 147, 📥 Скачиваний: 4.9K
📅 Обновлено: 7 месяцев назад
https://pub.dev/packages/math_keyboard
keyboard_height_plugin 0.2.0
keyboard_height_plugin предоставляет размер клавиатуры до ее анимации, позволяя точно позиционировать виджеты, такие как TextField, над клавиатурой, и решает проблему лагов при появлении клавиатуры в Flutter-приложениях.
👍 Лайки: 29, 📥 Скачиваний: 15.8K
📅 Обновлено: 2 месяца назад
https://pub.dev/packages/keyboard_height_plugin
keyboard_service 2.0.4
keyboard_service позволяет автоматически скрывать клавиатуру при нажатии вне поля ввода, без использования плагинов, и имеет более 1340 скачиваний и 43 лайка.
👍 Лайки: 43, 📥 Скачиваний: 1.3K
📅 Обновлено: 7 месяцев назад
https://pub.dev/packages/keyboard_service
keyboard_detection 0.8.1
keyboard_detection позволяет легко определять видимость клавиатуры в Flutter-приложении, используя изменение нижнего отступа для определения видимости клавиатуры и обеспечивая native Flutter-опыт.
👍 Лайки: 29, 📥 Скачиваний: 15.8K
📅 Обновлено: 6 месяцев назад
https://pub.dev/packages/keyboard_detection
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #flutterpulse #FocusableControlBuilder #keyboard_actions #math_keyboard #keyboard_height_plugin #keyboard_service #keyboard_detection
FocusableControlBuilder 1.1.0
FocusableControlBuilder упрощает создание контролов с поддержкой перехода по клавише Tab, состояний фокуса и наведения, изменения курсора мыши, клавиатурных сокращений. Пакет позволяет создавать кастомные контролы, которые будут работать корректно на всех платформах и устройствах ввода.
👍 Лайки: 52, 📥 Скачиваний: 1.9K
📅 Обновлено: 9 месяцев назад
https://pub.dev/packages/focusable_control_builder
keyboard_actions 4.2.1
keyboard_actions позволяет легко добавлять функциональность к стандартной клавиатуре Android и iOS, включая добавление кнопки "Готово" к клавиатуре, переход между полями ввода, настройку внешнего вида панели клавиатуры и добавление пользовательского видажета под панелью клавиатуры.
👍 Лайки: 1180, 📥 Скачиваний: 146K
📅 Обновлено: 4 месяца назад
https://pub.dev/packages/keyboard_actions
math_keyboard 0.3.3
math_keyboard позволяет редактировать математические выражения в Flutter с помощью специального виртуального клавиатуры и поля ввода, поддерживая ввод с физической клавиатуры, режимы ввода чисел и выражений, расширенные операторы и тригонометрические функции.
👍 Лайки: 147, 📥 Скачиваний: 4.9K
📅 Обновлено: 7 месяцев назад
https://pub.dev/packages/math_keyboard
keyboard_height_plugin 0.2.0
keyboard_height_plugin предоставляет размер клавиатуры до ее анимации, позволяя точно позиционировать виджеты, такие как TextField, над клавиатурой, и решает проблему лагов при появлении клавиатуры в Flutter-приложениях.
👍 Лайки: 29, 📥 Скачиваний: 15.8K
📅 Обновлено: 2 месяца назад
https://pub.dev/packages/keyboard_height_plugin
keyboard_service 2.0.4
keyboard_service позволяет автоматически скрывать клавиатуру при нажатии вне поля ввода, без использования плагинов, и имеет более 1340 скачиваний и 43 лайка.
👍 Лайки: 43, 📥 Скачиваний: 1.3K
📅 Обновлено: 7 месяцев назад
https://pub.dev/packages/keyboard_service
keyboard_detection 0.8.1
keyboard_detection позволяет легко определять видимость клавиатуры в Flutter-приложении, используя изменение нижнего отступа для определения видимости клавиатуры и обеспечивая native Flutter-опыт.
👍 Лайки: 29, 📥 Скачиваний: 15.8K
📅 Обновлено: 6 месяцев назад
https://pub.dev/packages/keyboard_detection
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #flutterpulse #FocusableControlBuilder #keyboard_actions #math_keyboard #keyboard_height_plugin #keyboard_service #keyboard_detection
Добавляем биометрическую аутентификацию в наше Flutter-приложение с помощью плагина local_auth 🚀
Привет, друзья! 👋 Сегодня мы поговорим о том, как добавить аутентификацию по биометрии в наше Flutter-приложение. Для этого мы будем использовать плагин local_auth. Этот плагин позволяет проводить локальную аутентификацию с помощью настроек, которые есть на устройстве, таких как пин-код, сканирование отпечатка пальца или идентификация по лицу (FaceID) 📊.
Плагин работает очень просто: он не проверяет код или лицо и отпечаток пальца самостоятельно, а обращается в систему, запрашивает проверку, и возвращает в приложение простое булево значение. Давайте разберем методы плагина подробнее ⬇️.
Для начала нужно создать экземпляр класса
Метод
Еще можно получить список всех доступных на устройстве способов аутентификации по биометрии. Если на устройстве не настроен вход по отпечатку пальца или по лицу, то список придет пустым.
А здесь внимательно:
Дальше самое интересное — проверка. Она выполняется с помощью метода
Когда будете интегрировать этот плагин в проект, уделите особое внимание обработке разных сценариев. Потому что смартфонов на рынке много, и важно, чтобы у каждого пользователя был доступ.
Полную новость читайте здесь.
FlutterPulse — канал о мире Flutter!
#flutter #dart #FlutterPulse #FlutterPulseNews #flutterfriendly #биометрическаяаутентификация #local_auth
Привет, друзья! 👋 Сегодня мы поговорим о том, как добавить аутентификацию по биометрии в наше Flutter-приложение. Для этого мы будем использовать плагин local_auth. Этот плагин позволяет проводить локальную аутентификацию с помощью настроек, которые есть на устройстве, таких как пин-код, сканирование отпечатка пальца или идентификация по лицу (FaceID) 📊.
Плагин работает очень просто: он не проверяет код или лицо и отпечаток пальца самостоятельно, а обращается в систему, запрашивает проверку, и возвращает в приложение простое булево значение. Давайте разберем методы плагина подробнее ⬇️.
Для начала нужно создать экземпляр класса
LocalAuthentication. Через него будут выполняться все операции.
final localAuth = LocalAuthentication();
Метод
isDeviceSupported() проверит наличие любого способа аутентификации на устройстве. А canCheckBiometrics() ответит, доступна ли аутентификация именно по биометрии.
final isDeviceSupported = await localAuth.isDeviceSupported();
final canAuthenticate = await localAuth.canCheckBiometrics;
Еще можно получить список всех доступных на устройстве способов аутентификации по биометрии. Если на устройстве не настроен вход по отпечатку пальца или по лицу, то список придет пустым.
final list = await localAuth.getAvailableBiometrics();
А здесь внимательно:
getAvailableBiometrics вернет список только тех биометрических функций, которые настроены пользователем на устройстве. А флаг canAuthenticate просто покажет их наличие.Дальше самое интересное — проверка. Она выполняется с помощью метода
authenticate(). В него можно добавить строку с описанием причины запроса аутентификации. Этот текст пользователь увидит на экране. Также можно задавать ограничения. Например, установить true флаг biometricOnly. Тогда ввод системного пин-кода не будет запрашиваться.
final successAuth = await localAuth.authenticate(
localizedReason: 'ВОЙДИТЕ',
biometricOnly: true,
);
Когда будете интегрировать этот плагин в проект, уделите особое внимание обработке разных сценариев. Потому что смартфонов на рынке много, и важно, чтобы у каждого пользователя был доступ.
Полную новость читайте здесь.
FlutterPulse — канал о мире Flutter!
#flutter #dart #FlutterPulse #FlutterPulseNews #flutterfriendly #биометрическаяаутентификация #local_auth
Самые лучшие обновлённые пакеты за последние 24 часа
cloudflare 10.0.0 - это SDK для работы с API Cloudflare, позволяющий использовать REST-запросы и протокол tus для загрузки файлов.
В новой версии добавлен полный API для работы с объектным хранилищем Cloudflare R2, совместимым с S3, аутентифицированным с помощью AWS Signature Version 4.
👍 Лайки: 38, 📥 Скачиваний: 567
https://pub.dev/packages/cloudflare
golden_screenshot 11.0.1 - используется для легкого создания скриншотов Flutter-приложений для различных магазинов приложений, включая App Store, Play Store, F-Droid и Flathub.
В новой версии исправлена ошибка с шрифтом заголовка при использовании темы из пакета Yaru.
👍 Лайки: 21, 📥 Скачиваний: 25К
https://pub.dev/packages/golden_screenshot
dio_cache_interceptor 4.0.6 - используется для кэширования HTTP-запросов в приложениях, написанных на Dart, и поддерживает множество хранилищ, включая файловую систему, базы данных и оперативную память.
В новой версии исправлена ошибка с обновлением заголовка Age при повторной проверке ответа 304, а также повышен минимальный требуемый SDK до 3.6.0.
👍 Лайки: 427, 📥 Скачиваний: 167К
https://pub.dev/packages/dio_cache_interceptor
source_helper 1.3.11 - предоставляет утилиты для генерации кода на Dart. Теперь требует analyzer версии 9.0.0 или выше, но ниже 13.0.0.
👍 Лайки: 19, 📥 Скачиваний: 2.67М
https://pub.dev/packages/source_helper
flutter_decorated_text 2.1.0 - позволяет стилизовать и взаимодействовать с разными частями текстовой строки на основе предопределенных правил.
В новой версии улучшена производительность и оптимизирована работа с текстом.
👍 Лайки: 59, 📥 Скачиваний: 371
https://pub.dev/packages/flutter_decorated_text
json_serializable 6.13.1 - используется для генерации кода для сериализации и десериализации JSON в Dart.
В новой версии улучшено сообщение об ошибке при генерации кода для типов Record с неподдерживаемыми полями.
👍 Лайки: 3910, 📥 Скачиваний: 2.59М
https://pub.dev/packages/json_serializable
FlutterPulse — канал о мире Flutter!
Поддержать канал
#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #cloudflare #golden_screenshot #dio_cache_interceptor #source_helper #flutter_decorated_text #json_serializable
cloudflare 10.0.0 - это SDK для работы с API Cloudflare, позволяющий использовать REST-запросы и протокол tus для загрузки файлов.
В новой версии добавлен полный API для работы с объектным хранилищем Cloudflare R2, совместимым с S3, аутентифицированным с помощью AWS Signature Version 4.
👍 Лайки: 38, 📥 Скачиваний: 567
https://pub.dev/packages/cloudflare
golden_screenshot 11.0.1 - используется для легкого создания скриншотов Flutter-приложений для различных магазинов приложений, включая App Store, Play Store, F-Droid и Flathub.
В новой версии исправлена ошибка с шрифтом заголовка при использовании темы из пакета Yaru.
👍 Лайки: 21, 📥 Скачиваний: 25К
https://pub.dev/packages/golden_screenshot
dio_cache_interceptor 4.0.6 - используется для кэширования HTTP-запросов в приложениях, написанных на Dart, и поддерживает множество хранилищ, включая файловую систему, базы данных и оперативную память.
В новой версии исправлена ошибка с обновлением заголовка Age при повторной проверке ответа 304, а также повышен минимальный требуемый SDK до 3.6.0.
👍 Лайки: 427, 📥 Скачиваний: 167К
https://pub.dev/packages/dio_cache_interceptor
source_helper 1.3.11 - предоставляет утилиты для генерации кода на Dart. Теперь требует analyzer версии 9.0.0 или выше, но ниже 13.0.0.
👍 Лайки: 19, 📥 Скачиваний: 2.67М
https://pub.dev/packages/source_helper
flutter_decorated_text 2.1.0 - позволяет стилизовать и взаимодействовать с разными частями текстовой строки на основе предопределенных правил.
В новой версии улучшена производительность и оптимизирована работа с текстом.
👍 Лайки: 59, 📥 Скачиваний: 371
https://pub.dev/packages/flutter_decorated_text
json_serializable 6.13.1 - используется для генерации кода для сериализации и десериализации JSON в Dart.
В новой версии улучшено сообщение об ошибке при генерации кода для типов Record с неподдерживаемыми полями.
👍 Лайки: 3910, 📥 Скачиваний: 2.59М
https://pub.dev/packages/json_serializable
FlutterPulse — канал о мире Flutter!
Поддержать канал
#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #cloudflare #golden_screenshot #dio_cache_interceptor #source_helper #flutter_decorated_text #json_serializable
❤1
🚀 Flutter Add-to-App: Полное руководство по архитектуре
Интегрируете Flutter в существующее приложение? Не переписывайте всё с нуля! 🎯
Делимся глубоким разбором Add-to-App — стратегии постепенной миграции, которую используют Google Pay, Alibaba и BMW.
📌 Зачем это нужно?
🔹 Переписывание 500K+ строк кода = 12–24 месяца простоя
🔹 Потеря знаний: годы оптимизаций уходят в никуда
🔹 Add-to-App позволяет мигрировать экраны по одному, сохраняя стабильность
⚙️ FlutterEngine: что внутри?
🔹 Dart VM (JIT/AOT)
🔹 Isolate — однопоточный event loop
🔹 Platform Channels — мост к нативному коду
🔹 Skia/Impeller — рендеринг на GPU
✨ Ключевая фишка: FlutterEngineGroup
Несколько движков делят ресурсы:
✅ GPU-контекст и шейдеры
✅ Кэш шрифтов
✅ Снимок кода изолятов
→ Экономия памяти до 80%!
🔗 Типы платформенных каналов
👉 MethodChannel: запрос/ответ (~3 мс задержка)
👉 EventChannel: стримы данных (сенсоры, локация)
👉 BasicMessageChannel: кастомные протоколы
⚠️ Важно про производительность
При 60fps бюджет кадра — 16.67 мс:
🔸 1 вызов канала = ~3 мс (18% бюджета)
🔸 5+ вызовов = высокий риск jank
💡 Решение: пакетируйте вызовы, используйте изоляты
🧠 Лучшие практики
🔹 Предварительный прогрев движка при запуске приложения
🔹 Кэширование FlutterEngine для часто используемых экранов
🔹 Всегда вызывайте destroy() при очистке
🔹 Обрабатывайте разрешения на нативной стороне
🔧 Пример: PlatformBridge во Flutter
🎯 Что мониторить в продакшене?
🔹 Время инициализации движка (цель: <150 мс)
🔹 Задержка каналов (<5 мс)
🔹 Процент «битых» кадров (<1%)
🔹 Потребление памяти на движок
💡 Итог
Add-to-App — это не костыль, а прагматичная архитектура. Вы получаете скорость разработки Flutter, сохраняя инвестиции в нативный код.
Мост построен. Готовы перейти? 🚀
🔗 Ссылки на материалы:
Читать на русском языке
Read in English
Читать оригинал
Все подобные новости ищите по хэштегу #FlutterPulseMedium ✨
FlutterPulse — канал о мире Flutter!
Интегрируете Flutter в существующее приложение? Не переписывайте всё с нуля! 🎯
Делимся глубоким разбором Add-to-App — стратегии постепенной миграции, которую используют Google Pay, Alibaba и BMW.
📌 Зачем это нужно?
🔹 Переписывание 500K+ строк кода = 12–24 месяца простоя
🔹 Потеря знаний: годы оптимизаций уходят в никуда
🔹 Add-to-App позволяет мигрировать экраны по одному, сохраняя стабильность
⚙️ FlutterEngine: что внутри?
🔹 Dart VM (JIT/AOT)
🔹 Isolate — однопоточный event loop
🔹 Platform Channels — мост к нативному коду
🔹 Skia/Impeller — рендеринг на GPU
✨ Ключевая фишка: FlutterEngineGroup
Несколько движков делят ресурсы:
✅ GPU-контекст и шейдеры
✅ Кэш шрифтов
✅ Снимок кода изолятов
→ Экономия памяти до 80%!
🔗 Типы платформенных каналов
👉 MethodChannel: запрос/ответ (~3 мс задержка)
👉 EventChannel: стримы данных (сенсоры, локация)
👉 BasicMessageChannel: кастомные протоколы
⚠️ Важно про производительность
При 60fps бюджет кадра — 16.67 мс:
🔸 1 вызов канала = ~3 мс (18% бюджета)
🔸 5+ вызовов = высокий риск jank
💡 Решение: пакетируйте вызовы, используйте изоляты
🧠 Лучшие практики
🔹 Предварительный прогрев движка при запуске приложения
🔹 Кэширование FlutterEngine для часто используемых экранов
🔹 Всегда вызывайте destroy() при очистке
🔹 Обрабатывайте разрешения на нативной стороне
🔧 Пример: PlatformBridge во Flutter
class PlatformBridge {
static const _channel = MethodChannel('com.app/integration');
Future<Map<String, dynamic>?> getNativeData() async {
return await _channel.invokeMethod('getNativeData');
}
}🎯 Что мониторить в продакшене?
🔹 Время инициализации движка (цель: <150 мс)
🔹 Задержка каналов (<5 мс)
🔹 Процент «битых» кадров (<1%)
🔹 Потребление памяти на движок
💡 Итог
Add-to-App — это не костыль, а прагматичная архитектура. Вы получаете скорость разработки Flutter, сохраняя инвестиции в нативный код.
Мост построен. Готовы перейти? 🚀
🔗 Ссылки на материалы:
Читать на русском языке
Read in English
Читать оригинал
Все подобные новости ищите по хэштегу #FlutterPulseMedium ✨
FlutterPulse — канал о мире Flutter!