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

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

webview_flutter_android 4.9.0
Теперь пакет поддерживает PlatformWebViewController.loadFileWithParams и добавляет AndroidLoadFileParams для загрузки файлов с заголовками на Android.
Пакет имеет 45 лайков и более 2 640 000 скачиваний!
https://pub.dev/packages/webview_flutter_android

webview_flutter_wkwebview 3.23.0
Теперь добавлена поддержка PlatformWebViewController.loadFileWithParams и введен WebKitLoadFileParams для iOS и macOS.
Лайков: 42, Скачиваний: 2 640 000.
https://pub.dev/packages/webview_flutter_wkwebview

built_value 8.11.1
Пакет built_value используется для создания неизменяемых типов значений, классов-ENUM и сериализации JSON в Dart.
В новой версии разрешено использование analyzer 8.0.0 с built_value_generator.
Пакет имеет 759 лайков и более 7 900 000 скачиваний!
https://pub.dev/packages/built_value

flutter_osm_plugin 1.0.0-dev.1
Этот пакет используется для создания карт OpenStreetMap в приложениях Flutter, с функциями zoals отображение текущего положения, создание маркеров, отслеживание местоположения пользователя и многое другое.
В новой версии обновлена документация.
Пакет имеет 485 лайков и 6980 скачиваний.
https://pub.dev/packages/flutter_osm_plugin

workmanager 0.9.0+2
Теперь вы можете выполнять код Dart в фоновом режиме, даже когда ваше приложение закрыто.
Используется для синхронизации данных, загрузки файлов, очистки задач и многое другое.
Лайков: 2280, скачиваний: 86500.
https://pub.dev/packages/workmanager

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #webview_flutter_android #webview_flutter_wkwebview #built_value #flutter_osm_plugin #workmanager #FirebaseMessagingPlugin
Базовый Dart (Часть №1) 🚀💻
Привет, программисты! 👋 Сегодня мы поговорим о базовом Dart и о том, что нужно знать до перехода к объектно-ориентированному программированию 🤔.
Узнаем, что такое runtime и compile-time, и как они отличаются 🕒. Также разберемся с типами данных и их важностью в программировании 📊.
Учимся работать с переменными: присваивание, арифметические операции, конкатенация и логические операции 📝. А также изучаем условные операторы if, else if и else, чтобы принимать решения в программах 🤖.
Узнайте о условных операторах, циклах и функциях в программировании 🔄. Эти инструменты помогут вам создавать гибкие и эффективные программы 🚀.
Функции в программировании - это блоки кода, которые выполняют определенные задачи и могут быть вызваны несколько раз 📈. Они помогают повторно использовать код, организовывать программы и облегчают отладку 🐜.
И, конечно, не забудем про Null Safety - мощный инструмент для безопасного кода 🛡. Узнайте, как избегать ошибок и писать более надежный код с помощью Null Safety 📚.
Читайте статью и начинайте свое путешествие в мир программирования 🌟!
#flutter #dart #flutterpulse #programmirovanie #nullsafety #basics #programming #development #coders #learndart #dartlang #flutterdev #mobileappdevelopment 🚀💻
Спам кнопок: как предотвратить множественные нажатия?

Вы когда-нибудь сталкивались с ситуацией, когда пользователь нажимает кнопку несколько раз подряд, вызывая нежелательные действия? 🤯

Представьте, что пользователь нажимает кнопку "Лайк" 10 раз за 1 секунду! 👍 Как сделать так, чтобы событие сработало только один раз? 🤔

Решение: использование RxDart с debounceTime ⏱️


import 'dart:async';
import 'package:flutter/material.dart';
import 'package:rxdart/subjects.dart';
import 'package:rxdart/rxdart.dart';

class LikeButtonWidget extends StatefulWidget {
final Function onTap;

const LikeButtonWidget({required this.onTap, Key? key}) : super(key: key);

@override
_LikeButtonWidgetState createState() => _LikeButtonWidgetState();
}

class _LikeButtonWidgetState extends State<LikeButtonWidget> {
final pushSubject = BehaviorSubject<void>();
late StreamSubscription<void> pushSubscription;

@override
void initState() {
super.initState();
pushSubscription = pushSubject.stream
.debounceTime(const Duration(milliseconds: 1000))
.listen((_) {
// отправить запрос на сервер или выполнить другое действие
widget.onTap();
});
}

@override
void dispose() {
super.dispose();
pushSubscription.cancel(); // не забудьте отменить подписку на поток
}

@override
Widget build(BuildContext context) {
return InkWell(
onTap: () {
pushSubject.add(null);
},
child: const Icon(Icons.plus_one),
);
}
}


Этот код создает кнопку "Лайк", которая срабатывает только один раз в секунду, даже если пользователь нажимает ее несколько раз подряд. 🔥

Оцените нашу новую рубрику и оставьте свои отзывы! 😊

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

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDev #RxDart #DebounceTime #ButtonSpam #SpamProtection
👍2🔥1
Обзор пакетов на тему "Формы" для Flutter 📝

Reactive Forms - это модельный подход к обработке форм и валидации, вдохновленный Angular's Reactive Forms. 👍 Лайки: 912, 📥 Скачиваний: 78.3К
Последнее обновление 📅: 36 дней назад
https://pub.dev/packages/reactive_forms

FForm - это высокоуровневый пакет для создания и управления формами в Flutter-приложениях. 🌟 👍 Лайки: 178, 📥 Скачиваний: 240
Последнее обновление 📅: 2 месяца назад
https://pub.dev/packages/fform

Flutter Form Builder позволяет создавать формы для сбора данных, валидировать поля, реагировать на изменения и собирать пользовательский ввод. 👍 Лайки: 2730, 📥 Скачиваний: 205К
Последнее обновление 📅: 32 дня назад
https://pub.dev/packages/flutter_form_builder

Formz - это унифицированное представление и валидация форм для Dart. 💻 👍 Лайки: 879, 📥 Скачиваний: 120К
Последнее обновление 📅: 9 месяцев назад
https://pub.dev/packages/formz

SurveyKit - это библиотека для создания красивых опросов, вдохновленная iOS ResearchKit Surveys. 📊 👍 Лайки: 124, 📥 Скачиваний: 1.7К
Последнее обновление 📅: 5 месяцев назад
https://pub.dev/packages/survey_kit

form_builder_validators - это набор готовых валидаторов для форм, включая проверку email, телефона, даты, времени и многое другое. 👍 Лайки: 352, 📥 Скачиваний: 174К
Последнее обновление 📅: 47 дней назад
https://pub.dev/packages/form_builder_validators

#ReactiveForms #FForm #FlutterFormBuilder #Formz #SurveyKit #form_builder_validators #flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages
👍1
Самые лучшие обновлённые пакеты за последние 24 часа

syncfusion_flutter_charts 30.1.41 - библиотека визуализации данных для создания красивых и высокопроизводительных графиков в приложениях Flutter. В новой версии исправлена ошибка, вызванная мутациями элементов графика в фазе макета. 👍 Лайки: 3530, 📥 Скачиваний: 280К. https://pub.dev/packages/syncfusion_flutter_charts

dart_style 3.1.2 - автоматический форматтер кода на языке Dart. В новой версии добавлена поддержка синтаксиса dot shorthand, обновлен до последней версии пакета analyzer. 👍 Лайки: 117, 📥 Скачиваний: 6.7М. https://pub.dev/packages/dart_style

analyzer 8.1.0 - используется для статического анализа кода на языке Dart. В новой версии добавлены новые функции и исправлены ошибки. 👍 Лайки: 295, 📥 Скачиваний: 10.9М. https://pub.dev/packages/analyzer

file_picker 10.2.2 - позволяет использовать родной файловый браузер для выбора одного или нескольких файлов. В новой версии исправлена проблема с добавлением расширения .txt при сохранении файлов на Android. 👍 Лайки: 4770, 📥 Скачиваний: 2.1М. https://pub.dev/packages/file_picker

http 1.5.0 - библиотека для работы с HTTP-запросами. В новой версии исправлена ошибка в IOClient, добавлена поддержка отмены запросов. 👍 Лайки: 8280, 📥 Скачиваний: 11.3М. https://pub.dev/packages/http

dio 5.9.0 - мощный инструмент для HTTP-запросов в Dart и Flutter. В новой версии исправлены ошибки и добавлены новые функции. 👍 Лайки: 8039, 📥 Скачиваний: 749К. https://pub.dev/packages/dio

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #syncfusion_flutter_charts #dart_style #analyzer #file_picker #http #dio
Запускайте тесты на нескольких размерах экрана

Предотвратите переполнение для разных размеров экранов 🤯

Это позволит запустить тест с каждой конфигурацией экрана в screenSizeVariants 📱


final screenSizeVariants = ValueVariant<ScreenSize>(basicPhones);

testWidgets('''клик на кнопку => отображается закрепленный виджет наложения''', (
WidgetTester tester,
) async {
await tester.setScreenSize(screenSizeVariants.currentValue!);

await tester.pumpWidget(const MyAppWithCircleAnchored());
expect(find.byType(AnchoredHelper), findsNothing);
await tester.tap(find.byType(OutlinedButton).first);
await tester.pump(const Duration(seconds: 2));
expect(find.byType(AnchoredHelper), findsOneWidget);
}, variant: screenSizeVariants);



import 'dart:ui';
import 'package:flutter_test/flutter_test.dart';

// это определяет конфигурацию размера конкретного устройства
class ScreenSize {
// имя этой конфигурации
final String name;

// конфигурация размера и плотность пикселей
final double width, height, pixelDensity;

const ScreenSize(this.name, this.width, this.height, this.pixelDensity);

@override
String toString() => name;
}

extension ScreenSizeManager on WidgetTester {
Future<void> setScreenSize(ScreenSize screenSize) async {
return _setScreenSize(
width: screenSize.width,
height: screenSize.height,
pixelDensity: screenSize.pixelDensity,
);
}

Future<void> _setScreenSize({
double width = 540,
double height = 960,
double pixelDensity = 1,
}) async {
final size = Size(width, height);
await binding.setSurfaceSize(size);
binding.window.physicalSizeTestValue = size;
binding.window.devicePixelRatioTestValue = pixelDensity;
}
}


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

Оцените новую рубрику в комментариях! 💬

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #TestingTips #ScreenSize #FlutterTips
👍1
Обзор пакетов на тему Глубокие ссылки (Deep Linking) 🚀

uni_links_desktop 📈
Ускорьте разработку своих Flutter-приложений с помощью uni_links_desktop! Этот пакет позволяет легко работать с ссылками на macOS и Windows.
👍 Лайки: 28, 📥 Скачиваний: 213К
Последнее обновление 📅: 4 месяца назад
https://pub.dev/packages/uni_links_desktop

flutter_facebook_app_links 📊
Пакет Flutter Facebook App Links: уловите отложенные ссылки из Facebook ADS! Пакет позволяет получать отложенные ссылки из Facebook ADS после установки приложения.
👍 Лайки: 41, 📥 Скачиваний: 3.1К
Последнее обновление 📅: 7 месяцев назад
https://pub.dev/packages/flutter_facebook_app_links

app_links 📈
Пакет App Links - универсальный обработчик ссылок для Android, iOS, Linux, macOS и Windows! Открывайте ваше приложение из HTTPS-ссылок, а не из браузера, и используйте кастомные схемы.
👍 Лайки: 1120, 📥 Скачиваний: 1.04М
Последнее обновление 📅: 5 месяцев назад
https://pub.dev/packages/app_links

flutter_branch_sdk 📈
Обновление пакета Flutter Branch SDK! Пакет для интеграции Branch SDK в приложения на Flutter. Позволяет создавать глубокие ссылки, отслеживать пользователей и анализировать их поведение.
👍 Лайки: 217, 📥 Скачиваний: 151К
Последнее обновление 📅: 16 дней назад
https://pub.dev/packages/flutter_branch_sdk

referrer 📊
Новый пакет для Flutter: Referrer! Пакет позволяет читать информацию о реферере (URL-адрес страницы, которая открыла ваше приложение через глубокую ссылку).
👍 Лайки: 30, 📥 Скачиваний: 1.4К
Последнее обновление 📅: 9 месяцев назад
https://pub.dev/packages/referrer

appsflyer_sdk 📈
Обновление пакета AppsFlyer Flutter Plugin! Пакет используется для интеграции сервиса AppsFlyer в приложения на Flutter. Пакет позволяет отслеживать события в приложении, работать с глубокими ссылками и многое другое.
👍 Лайки: 156, 📥 Скачиваний: 497К
Последнее обновление 📅: 21 часа назад
https://pub.dev/packages/appsflyer_sdk

#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #uni_links_desktop #flutter_facebook_app_links #app_links #flutter_branch_sdk #referrer #appsflyer_sdk #deeplinking
Улучши свой Flutter-код! 🚀💻
Устали от громоздких конструкций для обработки касаний в ваших Flutter-приложениях? 🤯👀
Теперь есть решение! 🎉 Представляем вам TapRegion - элегантный виджет, который упрощает обработку касаний и делает ваш код чище! 🌟

🔵 Узнайте, что такое TapRegion и как он работает
🔵 Изучите все плюсы и минусы его использования
🔵 Получите готовый пример кода для вашего проекта

Читайте полную статью здесь, а также не забудьте подписаться на flutterpulse, чтобы быть в курсе всех последних новостей и обновлений из мира Flutter! 📚💻 #flutter #dart #flutterpulse 👍💯
Самые лучшие обновлённые пакеты за последние 24 часа

widgetbook 3.16.0
Плагин для Flutter, который позволяет использовать Widgetbook. Теперь минимальная версия SDK - 3.7.0, а минимальная версия Flutter - 3.29.0.
Добавлен новый тип контрола - object.segmented, а также проведена рефакторизация некоторых компонентов.
👍 Лайки: 646, 📥 Скачиваний: 255К
https://pub.dev/packages/widgetbook

dds 5.1.0
Пакет для запуска Dart Developer Service (DDS), который обеспечивает расширенную функциональность для взаимодействия с экземпляром Dart VM Service.
В новой версии обновлен протокол DDS до версии 2.1, а также устарели некоторые RPC и параметры.
👍 Лайки: 17, 📥 Скачиваний: 3.7М
https://pub.dev/packages/dds

intercom_flutter 9.4.4
Пакет является оберткой для Intercom Android, iOS и Web-проектов, позволяя интегрировать функции Intercom в свои приложения.
В новой версии обновлен Intercom iOS SDK до версии 19.1.1.
👍 Лайки: 145, 📥 Скачиваний: 87.5К
https://pub.dev/packages/intercom_flutter

wechat_assets_picker 9.6.0
Пакет используется для выбора изображений, видео и аудио в приложениях Flutter, с интерфейсом, вдохновленным WeChat.
В новой версии добавлена поддержка персидского (фарси) языка, улучшено управление маршрутами и исправлены ошибки.
👍 Лайки: 829, 📥 Скачиваний: 39К
https://pub.dev/packages/wechat_assets_picker

dds_service_extensions 2.1.0
Пакет расширяет интерфейс package:vm_service, добавляя поддержку RPC из протокола Dart Developer Service (DDS).
В новой версии устарели методы DdsExtension.getAvailableCachedCpuSamples и DdsExtension.getCachedCpuSamples.
👍 Лайки: 5, 📥 Скачиваний: 4.2М
https://pub.dev/packages/dds_service_extensions

file_picker 10.2.3
Пакет позволяет использовать родной файловый менеджер для выбора одного или нескольких файлов с поддержкой фильтрации по расширениям.
В новой версии исправлены ошибки сборки на Flutter 3.24, вызванные изменениями для устранения предупреждений о устаревании Win32 в Windows.
👍 Лайки: 4770, 📥 Скачиваний: 2.1М
https://pub.dev/packages/file_picker

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #widgetbook #dds #intercom_flutter #wechat_assets_picker #dds_service_extensions #file_picker
Исчерпывающее руководство по высокопроизводительному рендерингу Canvas’а — Часть 1 🚀💻
Из этой статьи Вы узнаете:
🔵 Как создавать высокопроизводительные приложения Flutter на основе Canvas с помощью эффективных стратегий рендеринга, пакетной обработки на GPU и продвинутых методов отладки 📊💡.
🔵 Как оптимизировать рендеринг и перерисовку в своих приложениях с помощью CustomPaint, LeafRenderObjectWidget и пакета RePaint 🎨🖌️.
🔵 Как правильно использовать виджеты канваса в Flutter, чтобы избежать ненужных перестроек дерева виджетов и повысить производительность 🚀💻.
🔵 Как использовать обрезку и создать систему камеры для сложных визуализаций и игр" 📸👾.
🔵 Как создать удобную камеру и эффективно организовать сцену с помощью составных отрисовщиков" 📺👍.
🔵 Как оптимизировать производительность канваса Flutter с помощью ускорения графического процессора и умного повторного использования объектов Paint 🎨🖌️.
🔵 Как оптимизировать производительность вашего приложения Flutter, сводя к минимуму ненужные пересчеты и используя эффективные флаги для контроля перерисовки 📈💻.
🔵 Как группировать операции перерисовки, использовать модульность и управлять состоянием для достижения максимальной производительности 🚀💡.
🔵 Как ускорить производительность вашего приложения Flutter с помощью пакетных методов рендеринга: drawAtlas, drawRawAtlas и drawRawPoints 🚀👍.
🔵 Как эффективно реализовывать пользовательские шейдеры и управляйте пространством с помощью QuadTree для достижения значительного повышения производительности 🚀👍.
Это и многое другое в статье на хабре
#Flutter #Dart #FlutterPulse #Canvas #Рендеринг #Производительность #Оптимизация #МобильнаяРазработка #Программирование 🚀💻
👍1