Обновлённые пакеты за последние 24 часа, скачанные наибольшее число раз
dart-webrtc обновился! 🚀
Интерфейс WebRTC, обёрнутый в язык Dart. Используется для создания плагина Flutter Web и адаптации к различным браузерам. В новой версии исправлены ошибки и улучшена производительность.
👍 Лайки: 10, 📥 Скачиваний: 107К
https://pub.dev/packages/dart_webrtc
riverpod_test обновился до версии 0.1.8! 🚀
Этот пакет позволяет тестировать провайдеры Riverpod, увеличивая покрытие кода. В новой версии исправлены ошибки статического анализа.
👍 Лайки: 21, 📥 Скачиваний: 181К
https://pub.dev/packages/riverpod_test
mqtt5_client обновился до версии 4.8.0! 🚀
Пакет используется для создания клиентов MQTT версии 5 в браузере и на сервере. Он поддерживает подписку и публикацию на всех уровнях QOS, аутентификацию, поддержку keep alive и синхронное подключение. В обновлении исправлена ошибка #134.
👍 Лайки: 51, 📥 Скачиваний: 31.6К
https://pub.dev/packages/mqtt5_client
google_api_headers обновился до версии 2.0.0! 🚀
Пакет Google API Headers позволяет получить необходимые заголовки для вызова Google API с ограниченным ключом API в приложениях на Flutter. В новой версии обновлена версия компилятора Android до 33, добавлена совместимость с Android Gradle Plugin 8.0 и обновлено ограничение версии Dart SDK.
👍 Лайки: 28, 📥 Скачиваний: 72.6К
https://pub.dev/packages/google_api_headers
yaml_writer обновился до версии 2.1.0! 🚀
Эта библиотека используется для записи YAML-документов и поддерживает кодирование объектов и конвертеры dart:convert. В новой версии улучшена обработка строк без кавычек, решена проблема с пустыми строками и добавлен новый конструктор YamlWriter.config() и класс YamlWriterConfig.
👍 Лайки: 25, 📥 Скачиваний: 77.6К
https://pub.dev/packages/yaml_writer
#dart #flutter #pubdev #flutterpulse #dart-webrtc #riverpod_test #mqtt5_client #google_api_headers #yaml_writer
dart-webrtc обновился! 🚀
Интерфейс WebRTC, обёрнутый в язык Dart. Используется для создания плагина Flutter Web и адаптации к различным браузерам. В новой версии исправлены ошибки и улучшена производительность.
👍 Лайки: 10, 📥 Скачиваний: 107К
https://pub.dev/packages/dart_webrtc
riverpod_test обновился до версии 0.1.8! 🚀
Этот пакет позволяет тестировать провайдеры Riverpod, увеличивая покрытие кода. В новой версии исправлены ошибки статического анализа.
👍 Лайки: 21, 📥 Скачиваний: 181К
https://pub.dev/packages/riverpod_test
mqtt5_client обновился до версии 4.8.0! 🚀
Пакет используется для создания клиентов MQTT версии 5 в браузере и на сервере. Он поддерживает подписку и публикацию на всех уровнях QOS, аутентификацию, поддержку keep alive и синхронное подключение. В обновлении исправлена ошибка #134.
👍 Лайки: 51, 📥 Скачиваний: 31.6К
https://pub.dev/packages/mqtt5_client
google_api_headers обновился до версии 2.0.0! 🚀
Пакет Google API Headers позволяет получить необходимые заголовки для вызова Google API с ограниченным ключом API в приложениях на Flutter. В новой версии обновлена версия компилятора Android до 33, добавлена совместимость с Android Gradle Plugin 8.0 и обновлено ограничение версии Dart SDK.
👍 Лайки: 28, 📥 Скачиваний: 72.6К
https://pub.dev/packages/google_api_headers
yaml_writer обновился до версии 2.1.0! 🚀
Эта библиотека используется для записи YAML-документов и поддерживает кодирование объектов и конвертеры dart:convert. В новой версии улучшена обработка строк без кавычек, решена проблема с пустыми строками и добавлен новый конструктор YamlWriter.config() и класс YamlWriterConfig.
👍 Лайки: 25, 📥 Скачиваний: 77.6К
https://pub.dev/packages/yaml_writer
#dart #flutter #pubdev #flutterpulse #dart-webrtc #riverpod_test #mqtt5_client #google_api_headers #yaml_writer
Обновлённые пакеты за последние 24 часа, получившие наибольшее число лайков
Riverpod_lint обновился до версии 2.6.5!
Пакет для выявления и исправления общих проблем при работе с Riverpod. Обновление включает в себя обновление зависимостей.
👍 Лайки: 281, 📥 Скачиваний: 307К
https://pub.dev/packages/riverpod_lint
Extended_image обновился до версии 10.0.0!
Мощная библиотека, которая расширяет функциональность компонента Image в Flutter. Добавлена поддержка WebHtmlElementStrategy для ExtendedNetworkImageProvider на Web и миграция на 3.29.0.
👍 Лайки: 1920, 📥 Скачиваний: 259К
https://pub.dev/packages/extended_image
Riverpod_generator обновился до версии 2.6.5!
Пакет для упрощения работы с провайдерами в Riverpod. Обновлена зависимость riverpod_analyzer_utils до 0.5.10.
👍 Лайки: 391, 📥 Скачиваний: 397К
https://pub.dev/packages/riverpod_generator
Flutter_sound обновился до версии 9.4.10!
Набор библиотек для работы с аудио в приложениях Flutter. Исправлены ошибки и добавлены новые функции, такие как поддержка регулирования скорости воспроизведения аудио и управление буфером.
👍 Лайки: 1530, 📥 Скачиваний: 74.8К
https://pub.dev/packages/flutter_sound
Dart_jsonwebtoken обновился до версии 3.1.1!
Простая в использовании реализация JSON Web Token (JWT) для языка Dart. Исправлена совместимость с более старыми версиями Flutter.
👍 Лайки: 309, 📥 Скачиваний: 258К
https://pub.dev/packages/dart_jsonwebtoken
#Riverpod_lint #Extended_image #Riverpod_generator #Flutter_sound #Dart_jsonwebtoken #flutter #dart #pubdev #flutterpulse
Riverpod_lint обновился до версии 2.6.5!
Пакет для выявления и исправления общих проблем при работе с Riverpod. Обновление включает в себя обновление зависимостей.
👍 Лайки: 281, 📥 Скачиваний: 307К
https://pub.dev/packages/riverpod_lint
Extended_image обновился до версии 10.0.0!
Мощная библиотека, которая расширяет функциональность компонента Image в Flutter. Добавлена поддержка WebHtmlElementStrategy для ExtendedNetworkImageProvider на Web и миграция на 3.29.0.
👍 Лайки: 1920, 📥 Скачиваний: 259К
https://pub.dev/packages/extended_image
Riverpod_generator обновился до версии 2.6.5!
Пакет для упрощения работы с провайдерами в Riverpod. Обновлена зависимость riverpod_analyzer_utils до 0.5.10.
👍 Лайки: 391, 📥 Скачиваний: 397К
https://pub.dev/packages/riverpod_generator
Flutter_sound обновился до версии 9.4.10!
Набор библиотек для работы с аудио в приложениях Flutter. Исправлены ошибки и добавлены новые функции, такие как поддержка регулирования скорости воспроизведения аудио и управление буфером.
👍 Лайки: 1530, 📥 Скачиваний: 74.8К
https://pub.dev/packages/flutter_sound
Dart_jsonwebtoken обновился до версии 3.1.1!
Простая в использовании реализация JSON Web Token (JWT) для языка Dart. Исправлена совместимость с более старыми версиями Flutter.
👍 Лайки: 309, 📥 Скачиваний: 258К
https://pub.dev/packages/dart_jsonwebtoken
#Riverpod_lint #Extended_image #Riverpod_generator #Flutter_sound #Dart_jsonwebtoken #flutter #dart #pubdev #flutterpulse
Как показать уведомление Toast с Riverpod
Избавляемся от требования BuildContext
При разработке Flutter-приложений часто возникает необходимость отображать уведомления или сообщения Toast. Использование Riverpod для управления состоянием приложения позволяет упростить этот процесс. В этой статье мы рассмотрим, как показать уведомление Toast, используя Riverpod, и избавимся от необходимости передавать BuildContext.
Для начала нам нужно создать провайдер, который будет отвечать за отображение Toast-уведомлений. Мы будем использовать пакет
Далее, нам нужно создать глобальный ключ навигации, чтобы избавиться от требования BuildContext:
Теперь мы можем использовать наш провайдер
Таким образом, мы можем легко отображать Toast-уведомления в нашем Flutter-приложении, используя Riverpod и пакет
Оцените новую рубрику и напишите в комментариях, что бы вы хотели видеть в следующих выпусках! 👍💬
Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #MobileDev #Riverpod #ToastNotifications #FlutterTips
Избавляемся от требования BuildContext
При разработке Flutter-приложений часто возникает необходимость отображать уведомления или сообщения Toast. Использование Riverpod для управления состоянием приложения позволяет упростить этот процесс. В этой статье мы рассмотрим, как показать уведомление Toast, используя Riverpod, и избавимся от необходимости передавать BuildContext.
Для начала нам нужно создать провайдер, который будет отвечать за отображение Toast-уведомлений. Мы будем использовать пакет
another_flushbar
для отображения уведомлений.
import 'package:another_flushbar/flushbar.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
// Это наш провайдер из riverpod для вызова метода toast из любой функции riverpod
final toastProvider = Provider<ToastBuilder>((ref) => ToastBuilder());
class ToastBuilder {
void success({
required String title,
required String text,
}) {
// Продолжительность показа уведомления
Duration duration = const Duration(seconds: 3);
_showSuccessToast(
context: navigatorKey.currentContext!, // Используем глобальный ключ навигации
title: title,
text: text,
duration: duration,
);
}
void _showSuccessToast({
required BuildContext context,
required String title,
required String text,
required Duration duration,
}) {
// Хак, чтобы предотвратить показ toast во время тестов
if (Platform.environment.containsKey('FLUTTER_TEST')) {
return;
}
if (!context.mounted) {
return; // Проверяем, смонтирован ли контекст
}
// Используем пакет another_flushbar, но есть много других отличных решений
Flushbar(
flushbarPosition: FlushbarPosition.TOP,
title: title,
message: text,
// Здесь можно добавить стили
).show(context);
}
}
Далее, нам нужно создать глобальный ключ навигации, чтобы избавиться от требования BuildContext:
/// Не забудьте создать этот глобальный ключ и добавить его в ваш основной маршрутизатор
final navigatorKey = GlobalKey<NavigatorState>();
Теперь мы можем использовать наш провайдер
toastProvider
в любом месте приложения, где доступен Riverpod, чтобы показать Toast-уведомление:
import 'package:flutter_riverpod/flutter_riverpod.dart';
@Riverpod(keepAlive: false)
class EditAlbumNotifier extends _$EditAlbumNotifier {
// ...
Future<void> save() async {
// ...
// Например, после сохранения альбома
ref.read(toastProvider).success(
title: "Успех",
text: "Журнал архивирован",
);
}
}
Таким образом, мы можем легко отображать Toast-уведомления в нашем Flutter-приложении, используя Riverpod и пакет
another_flushbar
, а также избавиться от необходимости передавать BuildContext, используя глобальный ключ навигации.Оцените новую рубрику и напишите в комментариях, что бы вы хотели видеть в следующих выпусках! 👍💬
Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #MobileDev #Riverpod #ToastNotifications #FlutterTips
Шаблон Riverpod: упрощаем работу с состоянием приложения
Привет, разработчики Flutter! 👋 Сегодня мы рассмотрим полезный совет по использованию Riverpod - популярной библиотеки для управления состоянием приложения. 📈
Проблема: при использовании Riverpod часто приходится писать повторяющийся код, например,
Решение: использование расширений Dart для создания удобных шорткатов. 🔥
Эти расширения позволяют легко получать экземпляр
Пример использования:
Такой подход делает код чище и читабельнее. 📚
Оцените новую рубрику и напишите в комментариях, насколько она вам полезна! 🤔
Все подобные новости можно найти по хэштегу #FlutterPulseTips 👍
#flutter #dart #flutterpulse #FlutterPulseTips #Riverpod #StateManagement #FlutterTips #MobileDevelopment #CodingTips
Привет, разработчики Flutter! 👋 Сегодня мы рассмотрим полезный совет по использованию Riverpod - популярной библиотеки для управления состоянием приложения. 📈
Проблема: при использовании Riverpod часто приходится писать повторяющийся код, например,
ref.read(myProvider).xxx
. Это может быть утомительно и привести к ошибкам. 😩Решение: использование расширений Dart для создания удобных шорткатов. 🔥
extension UserSessionRepositoryProvider on Ref {
UserSessionRepository get userSessionRepository =>
read(userSessionRepositoryProvider);
UserSessionRepository get userSessionRepository$ =>
watch(userSessionRepositoryProvider);
}
Эти расширения позволяют легко получать экземпляр
UserSessionRepository
, используя ref.userSessionRepository
или следить за его изменениями с помощью ref.userSessionRepository$
. 🔄Пример использования:
Future<UserSession> startSession({
required Session session,
}) async {
final activeSession = await ref.userSessionRepository
.getActiveSession(idOrThrow);
if (activeSession != null) {
throw AlreadyRunningSessionException();
}
return ref.userSessionRepository.start(
idOrThrow,
UserSession.fromSession(session),
);
}
Такой подход делает код чище и читабельнее. 📚
Оцените новую рубрику и напишите в комментариях, насколько она вам полезна! 🤔
Все подобные новости можно найти по хэштегу #FlutterPulseTips 👍
#flutter #dart #flutterpulse #FlutterPulseTips #Riverpod #StateManagement #FlutterTips #MobileDevelopment #CodingTips