Flutter Pulse
1.02K subscribers
634 photos
1 file
1.78K links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Самые лучшие обновлённые пакеты за последние 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
👍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!
Самые лучшие обновлённые пакеты за последние 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
🚀 Раскройте нативную мощь во 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
👍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 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
Самые лучшие обновлённые пакеты за последние 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
👍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
Фёдор Благодырь - Грокаем 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 идёт в директорию hook и смотрит на файл build.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
😁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
👍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
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
👍1
Продвинутая адаптивность во Flutter с advanced_responsive

Вы когда-нибудь сталкивались с проблемой создания адаптивного дизайна во 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
Добавляем биометрическую аутентификацию в наше Flutter-приложение с помощью плагина 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
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
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!