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

google_fonts 6.3.1
Плагин для Flutter, который позволяет использовать шрифты из fonts.google.com в приложениях Flutter.
В новой версии обновлена минимальная поддерживаемая версия SDK до Flutter 3.29/Dart 3.7 и исправлены некоторые внутренние настройки.
👍 Лайки: 6260, 📥 Скачиваний: 2.0М
https://pub.dev/packages/google_fonts

introduction_screen 4.0.0
Плагин для создания экранов введения в приложениях Flutter, с возможностью настройки дизайна и добавления собственных элементов.
В новой версии произошли значительные изменения в обработке кнопок "Готово", "Далее", "Пропустить" и "Назад", а также добавлена поддержка кастомных семантических меток для прогресса.
👍 Лайки: 2870, 📥 Скачиваний: 41.2К
https://pub.dev/packages/introduction_screen

supabase_flutter 2.10.0
Плагин для подключения к базе данных Supabase в приложениях Flutter.
В этом обновлении исправлена ошибка с проверкой null-значений и сделан метод Supabase.initialize() идемпотентным.
👍 Лайки: 861, 📥 Скачиваний: 218К
https://pub.dev/packages/supabase_flutter

source_gen 4.0.0
Плагин для автоматизированной генерации исходного кода для Dart.
В новой версии удален метод TypeChecker.fromRuntime, вместо него следует использовать TypeChecker.typeNamed.
👍 Лайки: 179, 📥 Скачиваний: 4.1М
https://pub.dev/packages/source_gen

purchases_flutter 9.2.3
Плагин для реализации в-app покупок в приложениях Flutter.
В обновлении были обновлены зависимости и исправлены некоторые ошибки.
👍 Лайки: 832, 📥 Скачиваний: 167К
https://pub.dev/packages/purchases_flutter

dwds 25.0.4
Плагин для разработчиков, позволяющий использовать инструменты, предназначенные для работы с родным Dart VM, с веб-приложениями Dart.
В новой версии исправлена ошибка, которая вызывала спам ошибок в консоли.
👍 Лайки: 30, 📥 Скачиваний: 4.0М
https://pub.dev/packages/dwds

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #google_fonts #introduction_screen #supabase_flutter #source_gen #purchases_flutter #dwds
1
Ускорим скролл в ListView вместе! 🚀💻
Сегодня мы поговорим о том, как сделать скролл в ListView быстрее и эффективнее 🕒💡. Если ваши элементы списка имеют фиксированную высоту, вы можете дать подсказку Flutter, чтобы он не тратил время на лишние вычисления 🤔.
Есть два варианта:
1️⃣ Через itemExtent: задайте фиксированную высоту в пикселях, и Flutter будет работать быстрее 🚀.
2️⃣ С помощью prototypeItem: укажите прототип элемента, и Flutter сможет оптимизировать скролл 📈.
И если вы хотите убрать лаги при быстром скролле, не забудьте про cacheExtent 📊!
Хотите узнать больше? 🤔 Читайте полную статью здесь
И не забудьте подписаться на flutterpulse, чтобы быть в курсе всех последних новостей и обновлений 📣!
#flutter #dart #flutterpulse 💻👍
Рисуем и анимируем круглый прогресс-бар с помощью Custom Painter

В этом совете мы рассмотрим, как создать анимированный круглый прогресс-бар, используя виджет CustomPaint во Flutter. Такой прогресс-бар можно использовать, например, для индикации загрузки.

Основные моменты:

1️⃣ Передача анимации в конструктор CustomPainter автоматически вызывает перерисовку.

2️⃣ При обновлении прогресса мы изменяем начало и конец анимации, а затем запускаем её. Поскольку время загрузки предсказать невозможно, анимация прогресс-бара продолжается после обновления прогресса.

Пример кода:



class RoundProgressPainter extends CustomPainter {
final double radius;
final double progress;
final Color color;
final Animation<double> animation;
final double strokeWidth;

RoundProgressPainter({
required this.radius,
required this.progress,
required this.color,
required this.animation,
required this.strokeWidth,
}) : super(repaint: animation);

@override
void paint(Canvas canvas, Size size) {
final center = Offset(size.width / 2, size.height / 2);
final progressAngle = math.pi * 2 * progress;
final progressPaint = Paint()
..color = color
..strokeWidth = strokeWidth
..style = PaintingStyle.stroke
..strokeCap = StrokeCap.round;

canvas.drawCircle(
center,
radius - strokeWidth / 2,
Paint()
..color = color.withOpacity(0.1)
..strokeWidth = strokeWidth
..style = PaintingStyle.stroke,
);

canvas.drawArc(
Rect.fromCircle(center: center, radius: radius),
-math.pi / 2,
progressAngle,
false,
progressPaint,
);
}

@override
bool shouldRepaint(RoundProgressPainter oldDelegate) =>
progress != oldDelegate.progress || color != oldDelegate.color;
}





class RoundProgress extends StatefulWidget {
final double radius;
final double progress;
final Color color;
final Widget? child;
final double strokeWidth;

const RoundProgress({
super.key,
required this.radius,
required this.progress,
required this.color,
this.child,
this.strokeWidth = 4.0,
});

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

class _RoundProgressState extends State<RoundProgress> with SingleTickerProviderStateMixin {
late AnimationController _controller;
late Animation<double> _animation;

@override
void initState() {
super.initState();
_controller = AnimationController(
vsync: this,
duration: const Duration(milliseconds: 300),
);
_animation = Tween(begin: 0.0, end: 1.0).animate(
CurvedAnimation(parent: _controller, curve: Curves.decelerate),
);
_controller.forward(from: 0);
}

@override
void dispose() {
_controller.dispose();
super.dispose();
}

@override
void didUpdateWidget(covariant RoundProgress oldWidget) {
super.didUpdateWidget(oldWidget);
if (widget.progress != oldWidget.progress && widget.progress != null) {
_animation = Tween(begin: oldWidget.progress, end: widget.progress).animate(
CurvedAnimation(parent: _controller, curve: Curves.easeIn),
);
_controller.forward(from: 0);
}
}

@override
Widget build(BuildContext context) {
return AnimatedBuilder(
animation: _animation,
builder: (context, child) => CustomPaint(
size: Size(widget.radius * 2, widget.radius * 2),
painter: RoundProgressPainter(
radius: widget.radius,
progress: widget.progress,
color: widget.color,
animation: _animation,
strokeWidth: widget.strokeWidth,
),
child: widget.child,
),
);
}
}



Оцените новую рубрику и напишите в комментариях, что вы хотели бы увидеть в следующих постах! 👍💬

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

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #UI #Animation #CustomPainter #ProgressBar #LoadingAnimation #FlutterTips
👍2
Обзор пакетов на тему Dependency Injection & State Management (Обзор пакетов для внедрения зависимостей и управления состоянием)

Riverpod - реактивный фреймворк для кэширования и связывания данных в Flutter! 🚀
Пакет упрощает работу с асинхронным кодом, автоматически обрабатывая ошибки и состояния загрузки.
👍 Лайки: 3760, 📥 Скачиваний: 2.48М
Последнее обновление 📅: 10 месяцев назад
https://pub.dev/packages/riverpod

Get It - простой локатор сервисов для Flutter и Dart! 📈
Пакет позволяет доступ к объектам из любого места в приложении.
👍 Лайки: 4570, 📥 Скачиваний: 2.16М
Последнее обновление 📅: 25 дней назад
https://pub.dev/packages/get_it

Provider - пакет для упрощения работы с InheritedWidget и управления состоянием приложения! 📊
Пакет позволяет создавать, слушать и удалять ресурсы, а также обеспечивает ленивую загрузку и уменьшает количество boilerplate-кода.
👍 Лайки: 10800, 📥 Скачиваний: 4.92М
Последнее обновление 📅: 8 дней назад
https://pub.dev/packages/provider

Flutter Bloc - пакет для интеграции блоков и кубитов в Flutter! 📈
Пакет упрощает управление состоянием приложения.
👍 Лайки: 7820, 📥 Скачиваний: 2.66М
Последнее обновление 📅: 3 месяца назад
https://pub.dev/packages/flutter_bloc

BLoC - предсказуемая библиотека управления состоянием для реализации шаблона проектирования BLoC! 📊
Пакет помогает разделить представление и бизнес-логику, облегчая тестирование и повторное использование кода.
👍 Лайки: 3100, 📥 Скачиваний: 2.64М
Последнее обновление 📅: 7 месяцев назад
https://pub.dev/packages/bloc

#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #riverpod #getit #provider #flutterbloc #bloc
Самые лучшие обновлённые пакеты за последние 24 часа

google_sign_in_android 7.0.5
Пакет google_sign_in_android используется для реализации аутентификации Google на Android-устройствах. В новой версии добавлена поддержка параметра hostedDomain при аутентификации.
👍 Лайки: 12, 📥 Скачиваний: 908 000
https://pub.dev/packages/google_sign_in_android

flutter_map_marker_popup 8.1.0
Пакет flutter_map_marker_popup имеет 127 лайков и более 38 900 скачиваний. Теперь совместим с flutter_map 8.2.0. Используйте его, чтобы легко добавлять всплывающие подсказки к маркерам на картах в ваших приложениях Flutter.
👍 Лайки: 127, 📥 Скачиваний: 38.9К
https://pub.dev/packages/flutter_map_marker_popup

in_app_review 2.0.11
Пакет in_app_review позволяет показывать всплывающее окно для оставления отзыва о приложении без закрытия приложения, обновлён до версии 2.0.11. В этом обновлении был переработан плагин и перенесён код платформы Android с Java на Kotlin.
👍 Лайки: 2310, 📥 Скачиваний: 860 000
https://pub.dev/packages/in_app_review

Entry 1.0.2
Пакет Entry для Flutter позволяет анимировать появление виджетов.
В обновлении: улучшена работа с анимациями и оптимизирован код.
👍 Лайки: 310, 📥 Скачиваний: 3870
https://pub.dev/packages/entry

infinite_scroll_pagination 5.1.1
Теперь с исправленными ошибками null check в PagedLayoutBuilder, Bloc example state equality и Paging state hash code.
Также обновлено пример использования виджетов.
Пакет infinite_scroll_pagination имеет 3840 лайков и более 415000 скачиваний.
👍 Лайки: 3840, 📥 Скачиваний: 415 000
https://pub.dev/packages/infinite_scroll_pagination

zego_uikit_prebuilt_call 4.18.1
Этот пакет позволяет легко интегрировать голосовые и видеозвонки в ваше приложение.
В новой версии исправлена ошибка, связанная с открытием камеры во время аудиозвонка.
Пакет имеет 168 лайков и 6410 скачиваний.
👍 Лайки: 168, 📥 Скачиваний: 6410
https://pub.dev/packages/zego_uikit_prebuilt_call

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #google_sign_in_android #flutter_map_marker_popup #in_app_review #Entry #infinite_scroll_pagination #zego_uikit_prebuilt_call
Тестирование с навигацией GoRouter
Как запускать тесты с навигацией GoRouter

Иногда вам хочется быть уверенными, что некоторые виджеты перенаправляют на правильный маршрут.
Гораздо проще тестировать ваши страницы вне навигации, но это все равно может помочь в некоторых случаях.

Пример теста:



testWidgets('условие защиты возвращает false => переход на ошибочный url',
(WidgetTester tester) async {
final app = MaterialApp.router(
routerConfig: GoRouter(
initialLocation: '/page1',
routes: [
GoRoute(
path: '/page1',
builder: (context, state) => Guard(
canActivate: future.value(false),
fallbackRoute: '/page2',
),
child: const FakePage(msg: 'page1'),
),
GoRoute(
path: '/page2',
builder: (context, state) => const FakePage(msg: 'page2'),
),
],
),
);

await tester.pumpWidget(app);
await tester.pumpAndSettle(const Duration(milliseconds: 100));

expect(find.text('page2'), findsOneWidget);
});



Дополнительный совет:
Вы можете использовать ваш app router, чтобы получить точно такое же поведение маршрутизации, как и в вашем приложении.
Таким образом, вы действительно можете проверить, работает ли навигация корректно.
Встройте создание GoRouter в функцию с параметром initialLocation, чтобы ваш тест мог начинаться прямо с того места, которое вам нужно.



GoRouter createRouter(final String initialLocation) {
return GoRouter(
initialLocation: initialLocation,
routes: [
GoRoute(
path: '/page1',
builder: (context, state) => const FakePage(msg: 'page1'),
),
GoRoute(
path: '/page2',
builder: (context, state) => const FakePage(msg: 'page2'),
),
],
);
}



Оцените новую рубрику по тестированию Flutter-приложений! 👍
Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #MobileAppDevelopment #FlutterTips #Testing #GoRouter
2👍2
Обзор пакетов на тему "Выбор файлов" для Flutter 📁

Easy Folder Picker 📂
Легкий и удобный способ выбора директорий в вашем приложении. Пакет автоматически запрашивает необходимые разрешения. Поддерживает только Android.
👍 Лайки: 34, 📥 Скачиваний: 266
Последнее обновление 📅: 6 месяцев назад
https://pub.dev/packages/easy_folder_picker

FormBuilder File Picker 📝
Пакет позволяет легко добавлять поля для выбора файлов в ваши формы Flutter. Он поддерживает автоматическое получение разрешений, предварительный просмотр изображений и многое другое.
👍 Лайки: 60, 📥 Скачиваний: 2.7К
Последнее обновление 📅: 4 месяца назад
https://pub.dev/packages/form_builder_file_picker

Full Picker 📸
Пакет позволяет легко выбирать файлы в разных режимах, включая выбор нескольких файлов, сжатие видео, обрезку изображений, использование камеры и многое другое.
👍 Лайки: 37, 📥 Скачиваний: 247
Последнее обновление 📅: 8 месяцев назад
https://pub.dev/packages/full_picker

desktop_drop 🖥️
Позволяет пользователям перетаскивать файлы в ваши десктоп-приложения. Поддерживает Windows, Linux, macOS, Android (preview) и Web.
👍 Лайки: 426, 📥 Скачиваний: 300К
Последнее обновление 📅: 38 дней назад
https://pub.dev/packages/desktop_drop

File Picker 📁
Пакет позволяет использовать системный файловый менеджер для выбора одного или нескольких файлов, с поддержкой фильтрации по расширениям. Поддерживает множество платформ, включая Mobile, Web и Desktop.
👍 Лайки: 4780, 📥 Скачиваний: 2.4М
Последнее обновление 📅: 8 дней назад
https://pub.dev/packages/file_picker

Flutter Dropzone 🌐
Пакет для обработки перетаскивания файлов в Flutter Web. Используйте его для создания зон перетаскивания файлов в ваших веб-приложениях.
👍 Лайки: 212, 📥 Скачиваний: 126К
Последнее обновление 📅: 9 месяцев назад
https://pub.dev/packages/flutter_dropzone

#FilePicker #Flutter #Dart #PubDev #FlutterPulse #FlutterPulseThemedPackages #EasyFolderPicker #FormBuilderFilePicker #FullPicker #desktop_drop #FlutterDropzone
Привет, разработчики! 🤩 Сегодня у нас есть интересная новость для всех, кто работает с Flutter и Dart! 💻📱

Вы знали, что InheritedWidget - это мощный инструмент для передачи данных по дереву виджетов? 🤔 Это виджет, который позволяет вам передавать данные дальше по дереву, без необходимости прокидывать их через конструкторы. 📈

В новой статье подробно рассказывается о том, как работает InheritedWidget и как его использовать. Вы узнаете, как создать свой собственный виджет, который наследует данные от родительского виджета, и как использовать его в своих приложениях. 📚

И самое главное - это только начало! 🎉 Скоро будет рассказано про Provider, который является оберткой для InheritedWidget. Не пропустите! 📣

Хотите быть в курсе всех последних новостей и обновлений в мире Flutter и Dart? 🤔 Тогда обязательно подпишитесь на наш канал flutterpulse! 📲

#flutter #dart #flutterpulse 💻📱👍
Самые лучшие обновлённые пакеты за последние 24 часа

purchases_flutter 9.3.0
Плагин для Flutter, который позволяет автоматически собирать идентификаторы устройств и обновлены зависимости.
👍 Лайки: 833, 📥 Скачиваний: 174К
https://pub.dev/packages/purchases_flutter

go_router 16.2.1
Декларативный пакет маршрутизации для Flutter, который использует Router API для предоставления удобного, основанного на URL, API для навигации между разными экранами.
Теперь пакет имеет более чем 5 450 лайков и 2 020 000 скачиваний.
В новой версии добавлена тема восстановления состояния в документацию.
👍 Лайки: 5 450, 📥 Скачиваний: 2.0М
https://pub.dev/packages/go_router

shadcn_ui 0.29.1
Пакет содержит множество настраиваемых UI-компонентов для Flutter.
Теперь в ShadInput, ShadInputFormField, ShadTextArea и ShadTextAreaFormField добавлен параметр alignment.
👍 Лайки: 705, 📥 Скачиваний: 15.2К
https://pub.dev/packages/shadcn_ui

dwds 25.1.0
Пакет для настройки поведения DDS через DartDevelopmentServiceConfiguration и поддержка службы DevTools.
Старые свойства DebugSettings deprecated.
👍 Лайки: 30, 📥 Скачиваний: 4.1М
https://pub.dev/packages/dwds

go_router_builder 4.0.0
Пакет используется для создания типобезопасных маршрутов в приложениях Flutter с помощью go_router.
Теперь миксины Route стали публичными.
👍 Лайки: 265, 📥 Скачиваний: 174К
https://pub.dev/packages/go_router_builder

health 13.1.4
Пакет позволяет читать и записывать данные о здоровье из/в Apple Health и Google Health Connect.
В новой версии исправлена ошибка, которая вызывала крах на iOS при добавлении данных о медитации, а также добавлена поддержка SPM для iOS.
👍 Лайки: 623, 📥 Скачиваний: 46.5К
https://pub.dev/packages/health

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #purchases_flutter #go_router #shadcn_ui #dwds #go_router_builder #health
Привет, программисты! 🤩 У меня есть супер-крутая новость для вас! 📣 Только что вышло новое видео с практическим примером реализации анимации контента при прокрутке 📌, и это просто МОЛОТ! 🤯 Вы можете найти его по ссылке: #video. Если вы хотите быть в курсе всех последних новостей и обновлений из мира Flutter и Dart, то обязательно стоит подписаться на канал flutterpulse 📊, чтобы не пропустить ничего интересного! 😉 Новость взял отсюда #flutter #dart #flutterpulse 🚀
Правильно называйте свои классы
🤔 Название класса должно отражать его сущность, а не выполняемые им действия! 💡

При именовании классов важно следовать правилу: класс должен называться тем, чем он является, а не тем, что он делает. Это делает ваш код более читаемым и понятным. 📚

👀 Рассмотрим пример на Dart:

class EmailValidator { // Неправильное название, так как оно описывает действие
EmailValidator();

void validate(String email) {
const pattern = r'...'; // Регулярное выражение для проверки email
final regex = RegExp(pattern);
final isValidEmail = regex.hasMatch(email);
if (!isValidEmail) {
throw const EmailException("Email not valid"); // Ошибка, если email не валиден
}
}
}



class Email { // Правильное название, отражает сущность класса
final String _value;
Email(String email) : _value = email.trim();

void validate() {
const pattern = r'...'; // Регулярное выражение для проверки email
final regex = RegExp(pattern);
final isValidEmail = regex.hasMatch(_value);
if (!isValidEmail) {
throw const EmailException("Email not valid"); // Ошибка, если email не валиден
}
}
}


В первом примере класс назван EmailValidator, что указывает на выполняемое действие (валидация email). Это не отражает суть класса. 🔴
Во втором примере класс назван Email, что отражает его сущность (email). Это делает код более логичным и понятным. 🟢

👍 Оцените новую рубрику и напишите своё мнение! 💬

Все подобные советы можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #CodingTips #MobileDevelopment #CleanCode #ProgrammingTips
Обзор пакетов на тему Social Media

Social Media Recorder 📻
Пакет для Flutter, позволяющий легко записывать аудио с микрофона и сохранять его в файл на Android и iOS. Поддерживает различные кодеки, включая AAC, AMR и OPUS.
👍 Лайки: 173, 📥 Скачиваний: 668
📅 Последнее обновление: 7 месяцев назад
https://pub.dev/packages/social_media_recorder

Like Button ❤️
Пакет для Flutter, позволяющий создавать кнопки лайков с анимационными эффектами, похожими на сердечки в Twitter.
👍 Лайки: 1400, 📥 Скачиваний: 17.9К
📅 Последнее обновление: 3 месяца назад
https://pub.dev/packages/like_button

Flutter Link Previewer 🔗
Пакет для рендеринга превью ссылок в Flutter-приложениях. Автоматически извлекает метаданные (заголовок, описание, изображение) и отображает их в анимированной карточке.
👍 Лайки: 350, 📥 Скачиваний: 67.8К
📅 Последнее обновление: 34 дня назад
https://pub.dev/packages/flutter_link_previewer

AnyLinkPreview 🤓
Пакет для Flutter, позволяющий красиво отображать превью ссылок в вашем приложении с возможностью кастомизации.
👍 Лайки: 471, 📥 Скачиваний: 26.1К
📅 Последнее обновление: 7 месяцев назад
https://pub.dev/packages/any_link_preview

tiktoklikescroller 📹
Пакет для Flutter, позволяющий создать полноэкранный вертикальный скроллер, похожий на TikTok, с анимированными переходами между страницами и настраиваемыми параметрами скроллинга.
👍 Лайки: 229, 📥 Скачиваний: 2.4К
📅 Последнее обновление: 11 месяцев назад
https://pub.dev/packages/tiktoklikescroller

Persistent Shopping Cart 🛍️
Пакет для Flutter, предоставляющий простую и персистентную функциональность корзины покупок для вашего мобильного приложения.
👍 Лайки: 271, 📥 Скачиваний: 171
📅 Последнее обновление: 7 месяцев назад
https://pub.dev/packages/persistent_shopping_cart

#SocialMedia #Flutter #Dart #PubDev #FlutterPulse #FlutterPulseThemedPackages #SocialMediaRecorder #LikeButton #FlutterLinkPreviewer #AnyLinkPreview #Tiktoklikescroller #PersistentShoppingCart
Самые лучшие обновлённые пакеты за последние 24 часа

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

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

workmanager_platform_interface 0.9.1+1
Исправлены ошибки инициализации на Android и добавлены аннотации доступности для iOS 14.
Пакет имеет 0 лайков и 41 300 скачиваний.
https://pub.dev/packages/workmanager_platform_interface

fleather 1.25.1
Теперь исправлена проблема с высотой пустых строк.
Пакет fleather используется для создания мягкого и удобного редактирования текста в приложениях Flutter.
Лайков: 168, Скачиваний: 4640
https://pub.dev/packages/fleather

arkit_plugin 1.2.0
Пакет arkit_plugin используется для создания дополненной реальности (AR) в приложениях Flutter для iOS-устройств с процессорами A9 или новее.
В новой версии исправлены проблемы с заморозкой интерфейса пользователя, а также удалена поддержка iOS 12. Кроме того, исправлены предупреждения анализатора кода.
Пакет имеет 490 лайков и 1790 скачиваний.
https://pub.dev/packages/arkit_plugin

workmanager_apple 0.9.1+2
Используется для реализации фоновой работы в приложениях Flutter на iOS и macOS.
Исправлены ошибки инициализации на Android и аннотации доступности на iOS 14.
Лайков: 2, Скачиваний: 27 900
https://pub.dev/packages/workmanager_apple

Televerse 3.0.0
Теперь он поддерживает Bot API 9.2 и содержит важные изменения.
Пакет имеет 93 лайка и 2260 скачиваний.
https://pub.dev/packages/televerse

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #workmanager #firebase_messaging #fleather #arkit_plugin #workmanager_apple #televerse
Эффективная передача стиля текста виджетам

Привет, разработчики Flutter! 👋 Сегодня мы поделимся с вами полезным советом о том, как эффективно передавать стиль текста вашим виджетам. 📝

Вы когда-нибудь сталкивались с ситуацией, когда приходилось копировать стиль текста для дочерних элементов? 🤔 Теперь вы можете этого избежать! 😉

Использование DefaultTextStyle.merge


class MyWidget extends StatelessWidget {
final Widget title;

const TheBestCustomWidget({
super.key,
required this.title,
});

@override
Widget build(BuildContext context) {
return WidgetContainer(
children: [
DefaultTextStyle.merge(
style: Theme.of(context).textTheme.headlineMedium,
child: title,
),
],
);
}
}



MyWidget(
title: Text(
'Signup now',
style: Theme.of(context).textTheme.headlineLarge.copyWith(
color: Theme.of(context).colorScheme.onBackground,
),
),
)



MyWidget(
title: Text(
'Signup now',
style: TextStyle(
color: Theme.of(context).colorScheme.onBackground,
),
),
)


Преимущества использования DefaultTextStyle.merge:

• Позволяет задать только те свойства текста, которые вы хотите переопределить при использовании вашего виджета.
• Упрощает код и делает его более читаемым.

👍 Оцените новую рубрику FlutterPulseTips и поделитесь своими мыслями! 🤔

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

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #UIUX #CodingTips #AppDevelopment
👍1
Обзор пакетов на тему JSON 📦

Yet Another Json Isolate! 🚀
Пакет для быстрого и простого парсинга JSON с использованием изолятов.
👍 Лайки: 13, 📥 Скачиваний: 229К
Последнее обновление 📅: 4 месяца назад
https://pub.dev/packages/yet_another_json_isolate

JSONPath 📈
Пакет для работы с JSON-данными, используя синтаксис запросов JSONPath.
👍 Лайки: 124, 📥 Скачиваний: 332К
Последнее обновление 📅: 55 дней назад
https://pub.dev/packages/json_path

flutter_json_view 📊
Отображайте JSON-модели в виджете Flutter с помощью этого удобного пакета.
👍 Лайки: 139, 📥 Скачиваний: 16.6К
Последнее обновление 📅: 12 месяцев назад
https://pub.dev/packages/flutter_json_view

xml2json 🔄
Пакет для конвертации XML в JSON.
👍 Лайки: 126, 📥 Скачиваний: 277К
Последнее обновление 📅: 5 месяцев назад
https://pub.dev/packages/xml2json

deep_pick 🔍
Пакет для ручного парсинга JSON с типобезопасным API.
👍 Лайки: 154, 📥 Скачиваний: 167К
Последнее обновление 📅: 12 месяцев назад
https://pub.dev/packages/deep_pick

Crimson 🔥
Быстрый и эффективный парсер и сериализатор JSON для Dart.
👍 Лайки: 123, 📥 Скачиваний: 52
Последнее обновление 📅: 7 месяцев назад
https://pub.dev/packages/crimson

#yetanotherjsonisolate #jsonpath #flutterjsonview #xml2json #deeppick #crimson #flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages
Самые лучшие обновлённые пакеты за последние 24 часа

envied 1.2.1 - пакет для упрощения работы с переменными окружения в приложениях Dart и Flutter.
В новой версии обновлена зависимость от пакета analyzer до версии >=7.4.0 <9.0.0.
👍 Лайки: 841, 📥 Скачиваний: 133К
https://pub.dev/packages/envied

nb_utils 7.1.8 - набор полезных методов и расширений для разработки приложений на Flutter.
В новой версии добавлены недостающие типы HTTP-методов и новые расширения для строк, чисел, дат и контекста сборки.
👍 Лайки: 471, 📥 Скачиваний: 8К
https://pub.dev/packages/nb_utils

shadcn_ui 0.29.2 - пакет с настраиваемыми UI-компонентами для Flutter.
Теперь исправлена ошибка ShadResizable при использовании с правосторонним текстом (RTL).
👍 Лайки: 706, 📥 Скачиваний: 15К
https://pub.dev/packages/shadcn_ui

fwfh_webview 0.6.0+1 - пакет для рендеринга IFRAME с помощью официального плагина WebView в Flutter.
Уже 41 лайк и 374К скачиваний!
👍 Лайки: 41, 📥 Скачиваний: 374К
https://pub.dev/packages/fwfh_webview

fl_chart 1.1.0 - высоко настраиваемая библиотека графиков для Flutter.
В новой версии добавлены новые функции: градиентная заливка для бар-графиков, настройка выравнивания боковых заголовков и метки для бар-графиков.
👍 Лайки: 6.9К, 📥 Скачиваний: 1.2М
https://pub.dev/packages/fl_chart

flutter_widget_from_html 0.17.1 - пакет для рендеринга HTML-кода в виджеты Flutter.
В новой версии добавлена поддержка Flutter 3.35, webview_flutter_android@4.8 и атрибута data-src в IFRAME.
👍 Лайки: 1.1К, 📥 Скачиваний: 373К
https://pub.dev/packages/flutter_widget_from_html

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #envied #nb_utils #shadcn_ui #fwfh_webview #fl_chart #flutter_widget_from_html