Flutter Pulse
501 subscribers
314 photos
668 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Понимание ключей во Flutter

Ключи играют важную роль в управлении состоянием виджетов и оптимизации производительности приложения. В этой статье мы рассмотрим два основных случая использования ключей: доступ к состоянию stateful виджета и изменение родителя виджета без потери состояния.

GlobalKey
- Уникален во всём приложении. Не должен пересоздаваться при каждой сборке.
- Долгоживущий объект, которым владеет объект состояния.

Пример использования 1: Доступ к состоянию stateful виджета (например, для формы)



// для формы
final GlobalKey<FormState> _formKey = GlobalKey(debugLabel: 'form');

// используем ключ, чтобы получить FormState и вызвать функцию validate
isFormValid() {
if (_formKey.currentState == null) {
return false;
}
return _formKey.currentState?.validate();
}



Пример использования 2: Разрешение виджетам менять своих родителей в любом месте приложения без потери состояния.

Используйте KeyedSubtree, прикрепляя ключ к существующему виджету и пересобирая его потомка.

Пример использования во Flutter виджетах: => Hero



class _HeroState extends State<Hero> {
final GlobalKey _key = GlobalKey();

@override
Widget build(BuildContext context) {
// ...
return SizedBox(
width: _placeholderSize?.width,
height: _placeholderSize?.height,
child: Offstage(
offstage: !showPlaceholder,
child: TickerMode(
enabled: !showPlaceholder,
child: KeyedSubtree(key: _key, child: widget.child),
),
),
);
}
}



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

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #FlutterTips #AppDevelopment #ProgrammingTips
👍2
Обзор пакетов на тему "Эффекты фона, градиенты и шейдеры"

📦 O'Mesh - создавайте анимированные градиенты сетки для ваших приложений Flutter с помощью этого быстрого и настраиваемого пакета. 👍 Лайки: 140, 📥 Скачиваний: 7.6К, Версия: 0.5.0, Последнее обновление: 2 месяца назад. https://pub.dev/packages/mesh

📦 flutter_shaders - облегчите работу с FragmentProgram API с помощью этого пакета! Включает в себя набор утилит и шейдеров для создания эффектов в ваших Flutter-приложениях. 👍 Лайки: 107, 📥 Скачиваний: 786К, Версия: 0.1.3, Последнее обновление: 9 месяцев назад. https://pub.dev/packages/flutter_shaders

📦 Mesh Gradient - создавайте красивые, плавные градиенты в своих приложениях с помощью этого мощного и гибкого инструмента. 👍 Лайки: 243, 📥 Скачиваний: 10.7К, Версия: 1.3.8, Последнее обновление: 9 месяцев назад. https://pub.dev/packages/mesh_gradient

📦 Particles Flutter - добавьте анимацию частиц в ваш проект с помощью этого простого и удобного пакета. 👍 Лайки: 169, 📥 Скачиваний: 1.4К, Версия: 1.0.1, Последнее обновление: 10 месяцев назад. https://pub.dev/packages/particles_flutter

📦 Patterns Canvas - обновление библиотеки! Позволяет рисовать различные узоры на элементах Canvas или виджетах Flutter. 👍 Лайки: 106, 📥 Скачиваний: 5.9К, Версия: 0.5.0, Последнее обновление: 11 месяцев назад. https://pub.dev/packages/patterns_canvas

📦 weather_animation - создавайте анимированные погодные сцены без использования gif/png. Бесплатно и просто! 🆓 👍 Лайки: 122, 📥 Скачиваний: 741, Версия: 1.1.2, Последнее обновление: 5 месяцев назад. https://pub.dev/packages/weather_animation

#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #OMesh #flutter_shaders #MeshGradient #ParticlesFlutter #PatternsCanvas #weather_animation
Самые лучшие обновлённые пакеты за последние 24 часа

purchases_flutter 9.0.0 - клиент для системы отслеживания подписок и покупок RevenueCat, позволяет легко реализовывать в-app покупки в приложениях Flutter.
В новой версии обновлена библиотека Google Play Billing до версии 8, удалены некоторые устаревшие API, а также увеличены минимальные требования к версии Flutter и Dart.
👍 Лайки: 816, 📥 Скачиваний: 165К
https://pub.dev/packages/purchases_flutter

appwrite 17.0.2 - пакет для интеграции с сервером Appwrite, который упрощает разработку приложений за счет абстракции сложных задач и предоставления простого REST API.
В новой версии добавлена поддержка формата gif в перечислении ImageFormat, а также исправлен метод convertTo() в моделях Document и Preferences для корректной обработки Map<String, dynamic>.
👍 Лайки: 566, 📥 Скачиваний: 7.1К
https://pub.dev/packages/appwrite

built_value 8.11.0 - пакет для создания неизменяемых типов значений, классов-ENUM и сериализации JSON в Dart.
В новой версии обновлены зависимости: теперь используется build ^3.0.0 и source_gen ^3.0.0.
👍 Лайки: 759, 📥 Скачиваний: 8.7М
https://pub.dev/packages/built_value

freezed 3.2.0 - пакет для автоматического генерации кода для данных классов, помеченных объединений, вложенных классов и клонирования в Dart.
В новой версии 3.2.0 обновлены зависимости до build 3.0.0-dev и source_gen 3.0.0-dev, а также добавлена поддержка Dart 3.8.0 и analyzer 7.5.9.
👍 Лайки: 4290, 📥 Скачиваний: 1.9М
https://pub.dev/packages/freezed

dart_style 3.1.1 - автоматический форматтер для кода на языке Dart, который помогает поддерживать единый стиль кода и делает его более читабельным.
В новой версии обновлены зависимости до последней версии анализатора и включена поддержка языковой версии 3.9.
👍 Лайки: 116, 📥 Скачиваний: 7М
https://pub.dev/packages/dart_style

awesome_snackbar_content 0.1.7 - пакет, который позволяет улучшить опыт использования SnackBar или MaterialBanner в вашем приложении.
Изменения: обновление SDK до 3.8.1, применены линтеры (MISC).
👍 Лайки: 956, 📥 Скачиваний: 15.1К
https://pub.dev/packages/awesome_snackbar_content

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #purchases_flutter #appwrite #built_value #freezed #dart_style #awesome_snackbar_content
Как мы переписали мобильное приложение с React Native на Flutter 📱💻
Разработчики мобильного приложения перешли с React Native на Flutter из-за проблем с производительностью и отсутствием необходимых инструментов 🤔. Теперь они оценивают преимущества Flutter в разработке кроссплатформенных приложений 📈. Команда из 3 разработчиков переписала существующее приложение на Flutter за полгода, добившись стабильности и высокой производительности 🚀. Теперь приложение работает плавно и отзывчиво на всех платформах 📊.
Узнайте, как эти две технологии справляются с потреблением оперативной памяти и другими задачами 🤔. Перевод приложения с React Native на Flutter оказался большим, но оправданным шагом 🔄. Разработчики улучшили архитектуру, UX и получили стабильный продукт 📈. Flutter стал самым актуальным инструментом для разработки кроссплатформенных мобильных приложений в СНГ 🌟.
Читать здесь 📄
#flutter #dart #flutterpulse 🚀💻📱
Отображение оверлея
Привет, Flutter-разработчики! 👋 Сегодня мы рассмотрим интересную тему: как отобразить оверлей поверх вашего контента в приложении. 📱💻

Что такое оверлей?
Оверлей позволяет отображать контент поверх других элементов вашего приложения. Это может быть полезно для создания уведомлений, подсказок или других интерактивных элементов. 🔔💡

Как это работает?
`Overlay.of` работает под `MaterialApp` или `navigator`. Это означает, что вы можете использовать его внутри этих виджетов для отображения оверлея. 🌟

Пример кода:


overlayEntry = OverlayEntry(
opaque: false, // Определяет, перекрывает ли эта запись весь оверлей
builder: (context) => Container(...), // Что вы хотите отобразить
);
final overlay = Overlay.of(context);
if (overlay != null) {
overlay.insert(overlayEntry!);
}



В этом примере мы создаем `OverlayEntry` с нужным нам контентом и добавляем его в оверлей с помощью `Overlay.of(context).insert(overlayEntry)`. 📝👍

Оцените нашу новую рубрику! 🤔💬 Мы будем рады вашим отзывам о новых материалах. Оставляйте свои комментарии и предложения! 💬👇

Все подобные новости вы можете найти по хэштегу #FlutterPulseTips. 🔍👉

#flutter #dart #flutterpulse #FlutterPulseTips #mobiledevelopment #appdevelopment #programmingtips #uiux #technews
1
Обзор пакетов на тему Видео 📹

fwfh_chewie - расширение для WidgetFactory, использующее плагин chewie для воспроизведения видео. 👍 Лайки: 10, 📥 Скачиваний: 243К
Последнее обновление 📅: 4 дня назад
https://pub.dev/packages/fwfh_chewie

Chewie - видеоплеер с Material или Cupertino интерфейсом, построенный на основе video_player. 👍 Лайки: 2250, 📥 Скачиваний: 789К
Последнее обновление 📅: 18 дней назад
https://pub.dev/packages/chewie

media_kit - кроссплатформенный видео- и аудиоплеер. 👍 Лайки: 759, 📥 Скачиваний: 90К
Последнее обновление 📅: 3 месяца назад
https://pub.dev/packages/media_kit

video_player - позволяет проигрывать видео на устройствах iOS, Android, macOS и веб-страницах. 👍 Лайки: 3580, 📥 Скачиваний: 2.8М
Последнее обновление 📅: 46 дней назад
https://pub.dev/packages/video_player

youtube_explode_dart - библиотека для извлечения метаданных видео, плейлистов и каналов YouTube. 👍 Лайки: 653, 📥 Скачиваний: 42.7К
Последнее обновление 📅: 16 дней назад
https://pub.dev/packages/youtube_explode_dart

youtube_player_flutter - позволяет проигрывать или транслировать видео с YouTube прямо в вашем приложении. 👍 Лайки: 1630, 📥 Скачиваний: 155К
Последнее обновление 📅: 9 месяцев назад
https://pub.dev/packages/youtube_player_flutter

#fwfh_chewie #chewie #media_kit #video_player #youtube_explode_dart #youtube_player_flutter #flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages
Самые лучшие обновлённые пакеты за последние 24 часа

flutter_chat_ui 2.8.1 - плагин для Flutter, который позволяет создавать чаты. Теперь с исправлением composer inputClearMode и возможностью использования кастомного редактора.
👍 Лайки: 1510, 📥 Скачиваний: 69.9К
https://pub.dev/packages/flutter_chat_ui

google_api_headers 2.0.0 - пакет для получения заголовков, необходимых для вызова Google API с ограниченным ключом. Теперь с совместимостью с Android Gradle Plugin 8.0 и обновленными версиями SDK.
👍 Лайки: 30, 📥 Скачиваний: 82.7К
https://pub.dev/packages/google_api_headers

jaspr 0.20.0 - современный фреймворк для построения веб-сайтов на Dart, поддерживающий как клиентскую, так и серверную отрисовку. В новой версии удалены устаревшие параметры и методы, добавлены новые html-методы и улучшена обработка ошибок.
👍 Лайки: 533, 📥 Скачиваний: 15.9К
https://pub.dev/packages/jaspr

background_downloader 9.2.3 - пакет для скачивания и загрузки файлов в фоновом режиме на платформах iOS, Android, MacOS, Windows и Linux. В новой версии исправлены незначительные ошибки, улучшены разрешения на iOS и добавлена возможность использования символа $ в уведомлениях на Android.
👍 Лайки: 416, 📥 Скачиваний: 73.3К
https://pub.dev/packages/background_downloader

pdfrx 1.3.5 - быстрый и функциональный просмотрщик PDF-файлов, поддерживающий множество платформ, включая Android, iOS, Windows, macOS, Linux и Web. В новой версии улучшена поддержка прогрессивной загрузки для PdfDocumentViewBuilder, а также исправлена ошибка с прокруткой колесом мыши.
👍 Лайки: 233, 📥 Скачиваний: 178К
https://pub.dev/packages/pdfrx

Tostore 2.2.2 - единственный распределенный векторный базовый движок хранения в экосистеме Dart/Flutter с исключительной производительностью. В новой версии удалено автоматическое управление кэшем запросов, оптимизирована плавность и отзывчивость интерфейса для крупномасштабных операций с данными, улучшена производительность для limit, сортировки и постраничного вывода.
👍 Лайки: 31, 📥 Скачиваний: 131К
https://pub.dev/packages/tostore

#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #firebase_messaging #flutter_chat_ui #google_api_headers #jaspr #background_downloader #pdfrx #Tostore
Как использовать Isolates во Flutter

Привет, разработчики Flutter! 👋 Сегодня мы рассмотрим одну из ключевых тем в разработке высокопроизводительных приложений — использование Isolates для выполнения фоновых задач. Isolates позволяют выполнять тяжелые вычисления в отдельных потоках, не блокируя основной поток приложения. 📈

Зачем нужны Isolates?

Isolates помогают избежать зависания интерфейса пользователя при выполнении сложных операций, таких как обработка больших объемов данных или сложные вычисления. Они позволяют распределить нагрузку между несколькими потоками, обеспечивая плавную работу приложения. 💻

Пример использования Isolates

Давайте рассмотрим пример, как отправлять и получать данные из Isolates. В этом примере мы создадим Isolate и организуем двустороннюю связь между основным потоком и Isolate.



static void _update(String data) async {
// создаем канал ответа для основного потока
var _toIsolate = ReceivePort();
// отправляем этот канал ответа
data.sendPort.send(_toIsolate.sendPort);
// слушаем данные, отправленные из основного потока, чтобы их обработать
_toIsolate.listen((message) {
// выполняем тяжелую работу здесь
data.sendPort.send("Мой потрясающий результат...");
});
}





Isolate? isolate;
StreamController<String>? _streamController;
Stream<String>? _stream;

void runIsolate() {
// создаем канал связи для ответов Isolate
var fromIsolate = ReceivePort();
// контроллер потока для отправки данных и отображения их в UI
_streamController = StreamController<String>();
// первый канал ответа — это канал связи, по которому мы можем снова отправлять данные
fromIsolate.listen((data) {
if (data is SendPort) {
_toIsolate = data;
}
// обработанные данные (здесь это String, но можно использовать и другие типы
// или классы с базовыми типами)
if (data is String) {
_streamController!.sink.add(data);
}
});
// запускаем Isolate
Isolate.spawn(_update, initialData).then((value) => isolate = value);
// используем этот поток, чтобы слушать данные из нашего UI или откуда угодно еще
_stream = _streamController!.stream.asBroadcastStream();
// не забудьте закрыть его, когда закончите
}



В этом примере мы создаем Isolate и организуем двустороннюю связь между основным потоком и Isolate. Это позволяет выполнять тяжелые задачи в фоновом режиме и получать результаты в основном потоке. 🔄

Не забудьте остановить Isolate, когда закончите работу с ним, чтобы избежать утечек памяти. 💡

Оцените новую рубрику и напишите в комментариях, какие темы вам интересны! 👇

Все подобные новости можно найти по хэштегу #FlutterPulseTips

#flutter #dart #flutterpulse #FlutterPulseTips #mobiledevelopment #appdevelopment #performanceoptimization #isolates #concurrency #multithreading
👍2
Обзор пакетов на тему "Музыка и Аудио"

audio_session 0.2.2
Пакет для настройки аудиосессии вашего приложения. 👍 Лайки: 329, 📥 Скачиваний: 700К
Последнее обновление 📅: 2 месяца назад
https://pub.dev/packages/audio_session

audioplayers 6.5.0
Плагин для проигрывания нескольких аудиофайлов одновременно. 👍 Лайки: 3300, 📥 Скачиваний: 502К
Последнее обновление 📅: 34 дня назад
https://pub.dev/packages/audioplayers

just_audio 0.10.4
Популярный пакет для проигрывания аудио на различных платформах. 👍 Лайки: 3980, 📥 Скачиваний: 661К
Последнее обновление 📅: 44 дня назад
https://pub.dev/packages/just_audio

Audio Waveforms 1.3.0
Пакет для генерации волновых форм аудиозаписей. 👍 Лайки: 787, 📥 Скачиваний: 43.5К
Последнее обновление 📅: 4 месяца назад
https://pub.dev/packages/audio_waveforms

Flutter Sound 9.28.0
Пакет для проигрывания и записи аудио в ваших Flutter-приложениях. 👍 Лайки: 1570, 📥 Скачиваний: 69.4К
Последнее обновление 📅: 3 месяца назад
https://pub.dev/packages/flutter_sound

audio_service 0.18.18
Пакет для управления аудио в фоновом режиме. 👍 Лайки: 1280, 📥 Скачиваний: 96.1К
Последнее обновление 📅: 3 месяца назад
https://pub.dev/packages/audio_service

#audioplayers #justaudio #audiowaveforms #fluttersound #audioservice #audiosession #flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages
Самые лучшие обновлённые пакеты за последние 24 часа

logger 2.6.1
Плагин для создания красивых и удобных логов в приложениях. Убрана проблема с гонкой при сбросе буфера в AdvancedFileOutput.
👍 Лайки: 3560, 📥 Скачиваний: 1.8М
https://pub.dev/packages/logger

openfoodfacts 1.3.8
Плагин для доступа к API Open Food Facts, предоставляющий информацию о более чем 2,9 миллионах пищевых продуктов. Изменения в API KnowledgePanel.
👍 Лайки: 137, 📥 Скачиваний: 2.8К
https://pub.dev/packages/openfoodfacts

Vania 1.0.0
Мощный фреймворк для создания высокопроизводительных веб-приложений на Dart. Улучшен QueryBuilder, добавлена полная функциональность ORM.
👍 Лайки: 160, 📥 Скачиваний: 183
https://pub.dev/packages/vania

Masamune Framework 3.3.3
Инструмент для ускорения разработки приложений, позволяющий автоматически генерировать код. Исправлены незначительные ошибки.
👍 Лайки: 21, 📥 Скачиваний: 13.9К
https://pub.dev/packages/masamune

sqlite3_flutter_libs 0.5.37
Плагин для использования native sqlite3 библиотек в Flutter-приложениях. Включает sqlite3 версии 3.50.3.
👍 Лайки: 162, 📥 Скачиваний: 292К
https://pub.dev/packages/sqlite3_flutter_libs

fluwx 5.7.0
Плагин для Flutter, позволяющий вызывать родные API WeChatSDK. Исправлена проблема с debug_logging на Android.
👍 Лайки: 252, 📥 Скачиваний: 6.6К
https://pub.dev/packages/fluwx

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #logger #openfoodfacts #Vania #MasamuneFramework #sqlite3_flutter_libs #fluwx