Flutter Pulse
417 subscribers
270 photos
541 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Обзор пакетов на тему Flutter Framework 🚀

VelocityX - бесплатный, открытый и минималистичный фреймворк для создания пользовательского интерфейса в Flutter. 👍 Лайки: 1450, 📥 Скачиваний: 7300. Последнее обновление: 4.3.1 (3 месяца назад). https://pub.dev/packages/velocity_x

Get - легкое и мощное решение для Flutter, сочетающее в себе высокопроизводительное управление состоянием, умную инъекцию зависимостей и управление маршрутами. 👍 Лайки: 15300, 📥 Скачиваний: 674К. Последнее обновление: 4.7.2 (3 месяца назад). https://pub.dev/packages/get

Stacked - фреймворк для создания производственных приложений на Flutter, позволяющий писать тестируемый и поддерживаемый код. 👍 Лайки: 1470, 📥 Скачиваний: 73.7К. Последнее обновление: 3.4.4 (5 месяцев назад). https://pub.dev/packages/stacked

Flutter Clean Architecture - пакет для реализации Чистой Архитектуры в Flutter, основанной на концепциях Дяди Боба. 👍 Лайки: 410, 📥 Скачиваний: 760. Последнее обновление: 6.0.2 (8 дней назад). https://pub.dev/packages/flutter_clean_architecture

Flutter Modular - решение для модульной структуры вашего проекта на Flutter, предлагающее модульные маршруты и модульную инъекцию зависимостей. 👍 Лайки: 1300, 📥 Скачиваний: 108К. Последнее обновление: 6.3.4 (12 месяцев назад). https://pub.dev/packages/flutter_modular

Get CLI - пакет для автоматизации создания проектов на Flutter, версия 1.9.1. 👍 Лайки: 673, 📥 Скачиваний: 4.2К. Последнее обновление: 9 месяцев назад. https://pub.dev/packages/get_cli

#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #velocityx #get #stacked #fluttercleanarchitecture #fluttermodular #getcli
Лучшие обновленные пакеты за последние 24 часа!

purchases_flutter 8.10.1
Пакет используется для упрощения реализации подписок и покупок в приложениях Flutter. В новой версии обновлены зависимости, включая purchases-hybrid-common до версии 13.35.0.
👍 Лайки: 805, 📥 Скачиваний: 147К
https://pub.dev/packages/purchases_flutter

dcli_core 7.0.3
dcli_core - это набор основных библиотек, используемых в dcli. В новой версии обновлено описание пакета в pubspec для более точного отражения его функциональности.
👍 Лайки: 1, 📥 Скачиваний: 1.06М
https://pub.dev/packages/dcli_core

very_good_analysis 9.0.0
Пакет very_good_analysis предоставляет набор правил линтинга для Dart и Flutter. В новой версии обновлены зависимости и исправлены некоторые ошибки.
👍 Лайки: 699, 📥 Скачиваний: 397К
https://pub.dev/packages/very_good_analysis

flutter_calendar_carousel 2.5.4
Этот пакет позволяет создавать горизонтально прокручиваемые календари для Flutter. В новой версии обновлена зависимость intl.
👍 Лайки: 463, 📥 Скачиваний: 39К
https://pub.dev/packages/flutter_calendar_carousel

go_router 15.1.3
Пакет go_router - это декларативный пакет маршрутизации для Flutter. В новой версии обновлена минимальная поддерживаемая версия SDK и исправлена опечатка в документации API.
👍 Лайки: 5310, 📥 Скачиваний: 1.7М
https://pub.dev/packages/go_router

devtools_shared 3.0.0
Пакет devtools_shared используется для описания формата JSON-файлов, собираемых из Dart VM и Android ADB. В новой версии произошло разделение библиотек расширений на две части.
👍 Лайки: 18, 📥 Скачиваний: 3.7М
https://pub.dev/packages/devtools_shared

#purchases_flutter #dcli_core #very_good_analysis #flutter_calendar_carousel #go_router #devtools_shared #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages
Flutter tips: how to create a responsive layout
Адаптивный макет: советы по Flutter

Привет, разработчики! 👋 Сегодня мы поговорим о создании адаптивного макета в Flutter. 📱💻

Адаптация макета под разные размеры экранов 📐
Чтобы ваше приложение выглядело отлично на разных устройствах, необходимо адаптировать макет под различные размеры экранов. 📊


import 'package:flutter/widgets.dart';

// Перечисление типов устройств
enum DeviceType { small, medium, large, xlarge }

// Виджет, который адаптирует свой контент к текущему типу устройства
class ResponsiveLayout extends StatelessWidget {
final Widget? small; // Виджет для маленьких экранов
final Widget? medium; // Виджет для средних экранов
final Widget? large; // Виджет для больших экранов
final Widget? xlarge; // Виджет для очень больших экранов

const ResponsiveLayout({
super.key,
required this.small,
this.medium,
this.large,
this.xlarge,
});

@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, constraints) {
// Определение типа устройства на основе ширины экрана
switch (getDeviceType(constraints)) {
case DeviceType.small:
return small!; // Возвращаем виджет для маленьких экранов
case DeviceType.medium:
return medium ?? small!; // Возвращаем виджет для средних экранов или fallback к маленькому
case DeviceType.large:
return large ?? medium ?? small!; // Возвращаем виджет для больших экранов или fallback
case DeviceType.xlarge:
return xlarge ?? large ?? medium ?? small!; // Возвращаем виджет для очень больших экранов или fallback
}
},
);
}

// Метод для определения типа устройства на основе ограничений
DeviceType getDeviceType(BoxConstraints constraints) {
return switch (constraints.maxWidth) {
> 1200 => DeviceType.xlarge, // Очень большой экран
> 1024 => DeviceType.large, // Большой экран
> 768 => DeviceType.medium, // Средний экран
_ => DeviceType.small, // Маленький экран
};
}
}


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

ResponsiveLayout(
small: SigninForm(), // Форма входа для маленьких экранов
medium: Center( // Центрирование для средних экранов и больше
child: ConstrainedBox(
constraints: BoxConstraints(maxWidth: 600), // Ограничение максимальной ширины
child: SigninForm(), // Форма входа
),
),
)


Этот код позволяет создать адаптивный макет, который будет корректно отображаться на различных устройствах. 📱💻

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

Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #MobileDev #AppDev #UIUX #ProgrammingTips #CodingTips
Обзор пакетов на тему Generic Picker📦

1. Flutter Material Pickers 📈
Пакет Flutter Material Pickers содержит часто используемые диалоги выбора дизайна Material Design.
Включает в себя новые и обёртки существующих пикеров с общим диалогом и функцией доступа.
Лайков: 232, Скачиваний: 2.9К
Последнее обновление: 12 месяцев назад
https://pub.dev/packages/flutter_material_pickers

2. Numeric Selector 🚀
Numeric Selector - это настраиваемый пакет для создания горизонтальных и вертикальных числовых селекторов с плавной прокруткой и опциональной вибрационной обратной связью.
Лайков: 4, Скачиваний: 503
Последнее обновление: 4 месяца назад
https://pub.dev/packages/numeric_selector

3. FilterList
Пакет FilterList позволяет легко реализовать поиск и фильтрацию данных в вашем приложении.
Лайков: 419, Скачиваний: 1.9К
Последнее обновление: 12 месяцев назад
https://pub.dev/packages/filter_list

4. flutter_picker_plus
Это мощный и настраиваемый виджет выбора для приложений Flutter.
Лайков: 47, Скачиваний: 14.1К
Последнее обновление: 40 часов назад
https://pub.dev/packages/flutter_picker_plus

5. Day Month Picker
Этот пакет позволяет пользователям выбирать день и месяц из диалогового окна.
Лайков: 29, Скачиваний: 80
Последнее обновление: 7 месяцев назад
https://pub.dev/packages/day_month_picker

6. Bottom Picker
Теперь поддерживает desktop и web, наряду с mobile.
Лайков: 332, Скачиваний: 12.1К
Последнее обновление: 47 часов назад
https://pub.dev/packages/bottom_picker

#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #fluttermaterialpickers #numericselector #filterlist #flutterpickerplus #daymonthpicker #bottompicker
Лучшие обновленные пакеты за последние 24 часа! 🚀

carousel_slider обновлен до версии 5.1.1! 🎉
Пакет carousel_slider - это виджет слайдера карусели для Flutter, поддерживающий бесконечную прокрутку, автоматическое воспроизведение и кастомные дочерние виджеты.
В новой версии доступны новые функции и улучшения.
👍 Лайки: 5790, 📥 Скачиваний: 845К
https://pub.dev/packages/carousel_slider

talker_logger обновлен до версии 4.8.3! 🚀
Пакет talker_logger - это легкий и настраиваемый логгер для ваших приложений. Он позволяет создавать кастомные логи, фильтровать и форматировать вывод.
В новой версии добавлен фильтр ошибок для talker_riverpod_logger.
👍 Лайки: 49, 📥 Скачиваний: 239К
https://pub.dev/packages/talker_logger

talker_flutter обновлен до версии 4.8.3! 🚀
Пакет talker_flutter - это продвинутый обработчик ошибок и логгер для приложений на Dart и Flutter.
В новой версии добавлен фильтр ошибок для talker_riverpod_logger.
👍 Лайки: 556, 📥 Скачиваний: 168К
https://pub.dev/packages/talker_flutter

Talker обновлен до версии 4.8.3! 🚀
Пакет Talker - это продвинутый обработчик ошибок и логгер для приложений на Dart и Flutter.
В новой версии добавлен фильтр ошибок для Riverpod Logger.
👍 Лайки: 717, 📥 Скачиваний: 236К
https://pub.dev/packages/talker

dcli обновлен до версии 7.0.5! 🚀
dcli - это API и инструментарий для создания кроссплатформенных приложений командной строки (CLI) и скриптов на языке программирования Dart.
В новой версии исправлена ошибка, из-за которой функция sleepAsync возвращала управление сразу же, не дожидаясь окончания задержки.
👍 Лайки: 210, 📥 Скачиваний: 1.07М
https://pub.dev/packages/dcli

flutter_tex обновлен до версии 5.1.3! 🚀
Пакет flutter_tex позволяет отображать математические и химические формулы в приложениях Flutter, используя движок MathJax.
В новой версии исправлена проблема с отображением нескольких TeXView.
👍 Лайки: 319, 📥 Скачиваний: 9.45К
https://pub.dev/packages/flutter_tex

#carousel_slider #talker_logger #talker_flutter #Talker #dcli #flutter_tex #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages
Flutter tips: Расширения для работы с датами

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

Использование расширений для дат

Расширения в Dart позволяют добавлять новые методы к существующим классам. В данном случае мы будем использовать расширение для класса DateTime, чтобы добавить полезные методы для работы с датами.

extension DateExtension on DateTime {
DateTime get firstDayOfWeek {
return subtract(Duration(days: weekday - 1));
}

DateTime get lastDayOfWeek {
return add(Duration(days: 7 - weekday));
}

DateTime get firstDayOfMonth {
return DateTime(year, month);
}

bool isToday() => isSameDay(DateTime.now());

bool isSameDay(DateTime other) {
return day == other.day && month == other.month && year == other.year;
}

bool isAfterDayOrEqual(DateTime other) {
return isAfter(other) || isSameDay(other);
}

bool isBeforeDayOrEqual(DateTime other) {
return isBefore(other) || isSameDay(other);
}

bool isSameWeek(DateTime other) {
final kfirstDayOfTheWeek = firstDayOfWeek;
return other.isAfterDayOrEqual(kfirstDayOfTheWeek) &&
other.isBefore(lastDayOfWeek);
}
}


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

Теперь давайте рассмотрим пример использования этих расширений. Вместо того, чтобы писать громоздкий код для проверки, является ли дата сегодняшней, мы можем использовать метод isToday():

if (!activities.hasActivity(date) && date.isToday()) {
// код
}


Это намного чище и читаемее, чем:

final today = DateTime.now();
if (!activities.hasActivity(date) && date.day == today.day && date.month == today.month && date.year == today.year) {
// код
}


Оцените новую рубрику! Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #MobileDev #CodingTips #AppDev #FlutterTips
CherryPick DI для Dart/Flutter проектов 🚀💻!
Узнайте о новых возможностях DI-контейнера CherryPick для Flutter 📱! Теперь вы можете создавать модульные и иерархичные Scope для каждой области жизни приложения, использовать аннотации и генерацию кода для упрощения работы с зависимостями 🤩!
Читайте подробнее здесь! 📄 #CherryPick #Flutter #Dart #FlutterPulse #DIконтейнер #разработка #мобильные_приложения 🚀💻
Лучшие обновленные пакеты за последние 24 часа! 🚀

Flutter Chat UI 2.5.1
Пакет для создания чата в приложениях на Flutter. Исправлена ошибка, связанная с размытием поля ввода сообщения.
👍 1.49К лайков, 📦 70.8К скачиваний
https://pub.dev/packages/flutter_chat_ui

flutter_tex 5.1.5
Пакет для отображения математических и химических формул в приложениях Flutter. Внесены незначительные исправления и изменено имя файла конфигурации MathJax.
👍 319 лайков, 📦 9.43К скачиваний
https://pub.dev/packages/flutter_tex

super_drag_and_drop 0.9.0
Пакет для добавления функции перетаскивания файлов и данных в Flutter-приложениях. Улучшена функциональность и исправлены ошибки.
👍 510 лайков, 📦 19.7К скачиваний
https://pub.dev/packages/super_drag_and_drop

More Dart - Literally! 4.6.0
Коллекция расширений для Dart. Добавлена поддержка Dart 3.8 и WASM, нормализация Unicode-строк и новые методы для работы со строками.
👍 75 лайков, 📦 163К скачиваний
https://pub.dev/packages/more

dcli 7.0.5
API и инструментарий для создания кроссплатформенных приложений командной строки на Dart. Исправлена ошибка, из-за которой функция sleepAsync возвращала управление сразу же.
👍 210 лайков, 📦 1.06М скачиваний
https://pub.dev/packages/dcli

super_context_menu 0.9.0
Пакет для создания контекстного меню в Flutter-приложениях. Добавлены новые функции и улучшения.
👍 236 лайков, 📦 13.5К скачиваний
https://pub.dev/packages/super_context_menu

#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #flutter_chat_ui #flutter_tex #super_drag_and_drop #more #dcli #super_context_menu
Легко направляйте пользователей: наложения туториалов в Flutter с pal_widgets

Хотите улучшить опыт пользователей вашего Flutter-приложения? 🤔 Используйте пакет pal_widgets для создания интерактивных туториалов! 📚

Шаги для реализации туториала:
1. Установите pal-widgets из pub.dev.
2. Добавьте HelperOrchestrator над вашей страницей или приложением.
3. Создайте экран туториала, используя AnchoredHelper.
4. Присвойте уникальный ключ виджету, который хотите показать.
5. Отобразите туториал после загрузки страницы с помощью WidgetsBinding.

Пример кода:


Dart
// Генерация уникального ключа для виджета
Key key = HelperOrchestrator.of(context).generateKey('test1');

// Создание экрана туториала
AnchoredHelper(
helper: AnchoredHelperItem(
// Смещение подсказки
offset: Offset(0, 20),
// Стиль подсказки
style: HelperStyle(
backgroundColor: Colors.blue,
textColor: Colors.white,
),
// Текст подсказки
text: 'Нажмите на эту кнопку, чтобы увеличить счетчик Flutter Demo.',
),
// Фабрика для привязки подсказки к виджету
widgetFactory: (child) => AnchoredHelperWidget(
key: key,
child: child,
),
);

// Отображение туториала после загрузки страницы
WidgetsBinding.instance.addPostFrameCallback((_) {
HelperOrchestrator.of(context).showAnchoredHelper('text2', helper1);
});



Преимущества:
- Легко создавайте многошаговые туториалы.
- Сохраняйте прогресс пользователя.
- Настройте внешний вид и поведение туториала.

Улучшите опыт пользователей вашего приложения с помощью туториалов! 👍

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

#flutter #dart #flutterpulse #FlutterPulseTips #mobiledevelopment #appdevelopment #tutorial #uiux #FlutterTips #coding #programming #userexperience
Лучшие обновленные пакеты за последние 24 часа! 🚀

material_table_view 5.5.0
Добавлены новые виджеты: ExpandableTableRow и TableRowAnimatedSize. Новая функциональность popupCellPadding для TableColumnControlHandlesPopupRoute. Новый аргумент physicsHorizontal для TableView и SliverTableView.
👍 Лайки: 183, 📥 Скачиваний: 3.7К
https://pub.dev/packages/material_table_view

Dart Sass 1.89.2
Исправлена ошибка компиляции, вызванная устаревшей зависимостью buf. Dart Sass - это реализация Sass на языке Dart, позволяющая сделать CSS более интересным и удобным в использовании.
👍 Лайки: 18, 📥 Скачиваний: 184К
https://pub.dev/packages/sass

live_activities 2.4.0
Добавлена поддержка Android Live Activities, исправлены ошибки и обновлена документация. Теперь live-активности доступны не только на iOS, но и на Android!
👍 Лайки: 501, 📥 Скачиваний: 9.4К
https://pub.dev/packages/live_activities

sqlite3_flutter_libs 0.5.34
Обновлена библиотека SQLite до версии 3.50.1. Этот пакет позволяет использовать библиотеку SQLite в Flutter-приложениях на Android, iOS, macOS, Linux и Windows.
👍 Лайки: 160, 📥 Скачиваний: 257К
https://pub.dev/packages/sqlite3_flutter_libs

pdfrx 1.1.34
Добавлена поддержка Windows ARM64, исправлены ошибки с кэшированием и обработкой параметров, обновлена документация. pdfrx - это быстрый и функциональный просмотрщик PDF.
👍 Лайки: 216, 📥 Скачиваний: 144К
https://pub.dev/packages/pdfrx

Flutter Chat UI 2.5.2
Обновлена зависимость до последней версии. Пакет Flutter Chat UI - это открытый исходный код для создания чата в приложениях на Flutter.
👍 Лайки: 1490, 📥 Скачиваний: 69.4К
https://pub.dev/packages/flutter_chat_ui

#material_table_view #DartSass #live_activities #sqlite3_flutter_libs #pdfrx #FlutterChatUI #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages
Flutter Tip: Как сделать нижние всплывающие окна точно по размеру контента (без лишнего пространства!)

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

Проблема: По умолчанию высота вашего модального окна будет больше, чем содержимое. 🤷‍♂️

Решение: Используйте виджет IntrinsicHeight, чтобы установить высоту всплывающего окна точно по размеру контента. 📏

Вот пример кода:

showCupertinoModalPopup<void>(
context: context,
builder: () => const IntrinsicHeight(
child: RecordChoiceSelector(), // Ваш виджет содержимого
),
);



Что делает IntrinsicHeight? 🔍
- Этот виджет устанавливает размер своего потомка в соответствии с его внутренней высотой. 📐

Результат: 🎉
- Всплывающее окно будет отображаться точно по размеру содержимого, без лишнего пространства. 👍


Оцените эту рубрику и напишите в комментариях, насколько она была для вас полезна! 🤗

Все подобные советы вы можете найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #FlutterTips #AppDevelopment #UIUX #CodingTips
Делаем простой навигатор с помощью google maps на flutter своими руками 📍📱
Узнайте, как создать удобный навигатор с помощью Google Maps на Flutter! 🚀 В статье мы расскажем о реализации функционала построения маршрута, отслеживания позиции, расчёта времени и расстояния 🕒.
Flutter и Dart помогут вам создать базовое решение для логистики и доставки 📦.
Читать здесь: https://habr.com/ru/articles/917134/ 📄
#flutter #dart #flutterpulse 🚀💻
Обзор пакетов на тему "Выбор даты и времени" для Flutter 🕰️

EasyDateTimelinePicker 📆
Удобный и настраиваемый виджет для выбора даты и времени с горизонтальной временной шкалой.
Версия: 2.0.9
👍 Лайки: 539, 📥 Скачиваний: 11.4К
Последнее обновление: 3 месяца назад
https://pub.dev/packages/easy_date_timeline

month_picker_dialog 📆
Диалоговое окно для выбора месяца, диапазона месяцев или года в стиле Material Design.
Версия: 6.2.3
👍 Лайки: 156, 📥 Скачиваний: 35.2К
Последнее обновление: 10 дней назад
https://pub.dev/packages/month_picker_dialog

Bottom Picker 📊
Популярный пакет для выбора даты и времени, теперь поддерживающий desktop и web.
Версия: 3.2.1
👍 Лайки: 332, 📥 Скачиваний: 11.8К
Последнее обновление: 4 дня назад
https://pub.dev/packages/bottom_picker

CalendarDatePicker2 📆
Легкий и настраиваемый календарь для выбора дат, поддерживающий режимы выбора одиночной даты, диапазона дат и нескольких дат.
Версия: 2.0.1
👍 Лайки: 613, 📥 Скачиваний: 187К
Последнее обновление: 15 дней назад
https://pub.dev/packages/calendar_date_picker2

Persian DateTime Picker 🕰️
Пакет для интеграции персидского календаря в ваши Flutter-приложения.
Версия: 3.1.0
👍 Лайки: 282, 📥 Скачиваний: 2.86К
Последнее обновление: 5 месяцев назад
https://pub.dev/packages/persian_datetime_picker

Syncfusion Flutter Date Range Picker 📆
Легковесный виджет для выбора одной даты, нескольких дат или диапазона дат.
Версия: 29.2.10
👍 Лайки: 1580, 📥 Скачиваний: 203К
Последнее обновление: 5 часов назад
https://pub.dev/packages/syncfusion_flutter_datepicker

#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #easydatetimelinepicker #month_picker_dialog #bottom_picker #calendar_date_picker2 #persian_datetime_picker #syncfusion_flutter_datepicker
Лучшие обновленные пакеты за последние 24 часа!

Firebase Auth для Flutter обновился до версии 5.6.0!
Пакет позволяет использовать API аутентификации Firebase в ваших Flutter-приложениях.
В новой версии добавлена поддержка инициализации конфигурации reCAPTCHA.
👍 Лайки: 4130, 📥 Скачиваний: 1.02М
https://pub.dev/packages/firebase_auth

Flutter Launcher Icons обновился до версии 0.14.4!
Этот пакет упрощает процесс обновления иконки запуска вашего приложения Flutter.
В новой версии удалены устаревшие правила, исправлена ошибка в генерации шаблона команды generate и стандартизировано использование асинхронного ввода/вывода и ожидания завершения работы.
👍 Лайки: 7640, 📥 Скачиваний: 1.47М
https://pub.dev/packages/flutter_launcher_icons

Firebase Core обновился до версии 3.14.0!
Пакет позволяет подключаться к нескольким приложениям Firebase в вашем Flutter-приложении.
В новой версии обновлена Firebase iOS SDK до 11.13.0.
👍 Лайки: 3870, 📥 Скачиваний: 2.63М
https://pub.dev/packages/firebase_core

_flutterfire_internals обновился до версии 1.3.56!
Пакет используется для хранения общего кода на Dart между плагинами FlutterFire.
В новой версии обновлена зависимость до последнего релиза.
👍 Лайки: 3, 📥 Скачиваний: 2.55М
https://pub.dev/packages/_flutterfire_internals

Firebase Cloud Messaging обновился до версии 15.2.7!
Пакет позволяет использовать API Firebase Cloud Messaging в ваших Flutter-приложениях.
В новой версии обновлена зависимость до последнего релиза.
👍 Лайки: 3780, 📥 Скачиваний: 1.6М
https://pub.dev/packages/firebase_messaging

Vector Graphics обновился до версии 1.1.19!
Этот пакет используется для рендеринга векторной графики в Flutter.
В новой версии обновлена минимальная поддерживаемая версия SDK и улучшена обработка изображений.
👍 Лайки: 89, 📥 Скачиваний: 2.16М
https://pub.dev/packages/vector_graphics

#firebase_auth #flutter_launcher_icons #firebase_core #_flutterfire_internals #firebase_messaging #vector_graphics #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages
🔥 ТОП самых просматриваемых видео по Flutter за неделю! 🔥
Собрали для вас самые полезные, просматриваемые и обсуждаемые видео последних дней. Обучение, код-ревью, конференции и даже магия AI в UI — всё в одном месте! 🎯

1. 🕒📊 Dart Code Metrics | Observable Flutter #63
📊 Узнайте, как Dart Code Metrics может помочь вашей команде писать более чистый код.
1 час 50 мин | 📲 5,101 просмотров
▶️ https://www.youtube.com/watch?v=ftPD7jTTsjg

2. 🕒📱 Const vs Final в Dart и Flutter
📊 В этом видео мы обсудим ключевые слова const и final, их использование и разницу между ними.
7 мин | 📲 4,425 просмотров
▶️ https://www.youtube.com/watch?v=ySVpiyc6vqo

3. 🕒📱 Код-ревью успешного Flutter-приложения с 100к+ загрузок... И вот что я нашел! 😱
📊 Разбор приложения Cashew на GitHub. Интересные находки, архитектура и полезные фишки.
30 мин | 📲 1,979 просмотров
▶️ https://www.youtube.com/watch?v=KNsYFMmHfkg

4. 🕒📱 Клонирование UI Airbnb за СЕКУНДЫ с помощью AI | Flutter Tutorial
📊 Используем Prompt2Flutter — генератор UI через ИИ. Быстро и эффективно!
5 мин | 📲 1,832 просмотров
▶️ https://www.youtube.com/watch?v=mxcZcLW71y4

5. 🕒📱 Flutter для начинающих • Tutorial
📊 Разработка приложений в стиле TikTok, Noon, YouTube — идеальный старт!
1 час 14 мин | 📲 1,109 просмотров
▶️ https://www.youtube.com/watch?v=K05a4S7n-G8

6. 🕒📱 Flutter Global Summit 25 - Flutter Day
📊 Всё самое важное с крупнейшего события для Flutter-разработчиков!
5 часов 50 мин | 📲 646 просмотров
▶️ https://www.youtube.com/watch?v=L2uJ5iXm4O8

7. 🕒📱 Создание адаптивного дашборда Flutter с помощью AI за секунды | Prompt2Flutter
📊 Пример, как быстро собрать адаптивный дашборд с помощью генерации интерфейса.
5 мин | 📲 385 просмотров
▶️ https://www.youtube.com/watch?v=Q_9IjbkqwKo

8. 🕒📱 Humpday Q&A/AMA и живое кодирование!
📊 Общение с командой Flutter, обсуждение Dart и сессия живого кодинга.
3 часа 2 мин | 📲 378 просмотров
▶️ https://www.youtube.com/watch?v=DfMHiEs5j2o

9. 🕒📱 Получение данных из подколлекций Firebase Firestore в Flutter
📊 Как правильно извлекать и структурировать данные в вашем Firestore-проекте.
9 мин | 📲 296 просмотров
▶️ https://www.youtube.com/watch?v=uf-IEqWXcfw

🧠 Смотрите самые интересные и полезные видео по Flutter, Dart и мобильной разработке!
📲 Подписывайтесь, чтобы не пропустить свежие подборки и гайды!

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseYouTube #МобильнаяРазработка #Программирование #РазработкаПриложений
Адаптивный конструктор одного виджета с помощью DeviceSizeBuilder

В этой статье мы рассмотрим, как использовать DeviceSizeBuilder для адаптации небольших частей экрана под разные типы устройств.

@override
Widget build(BuildContext context) {
return DeviceSizeBuilder(
builder: (device) => Column(
children: [
switch (device) {
DeviceType.small => const Spacer(),
// игнорируем остальные случаи
},
ElevatedButton(
onTap: () {},
child: Text('tap me'),
),
],
),
);
}

Чтобы иметь доступ к методу didChangeMetrics, нам нужно использовать WidgetsBinding:

class DeviceSizeBuilder extends StatefulWidget {
const DeviceSizeBuilder({
super.key,
required this.builder,
});

@override
State<DeviceSizeBuilder> createState() => _DeviceSizeBuilderState();
}

class _DeviceSizeBuilderState extends State<DeviceSizeBuilder> with WidgetsBindingObserver {
late DeviceType _lastSize;

@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
_lastSize = widget.builder;
}

@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}

@override
void didChangeMetrics() {
super.didChangeMetrics();
final newSize = DeviceType.fromWidth(viewportWidth);
if (_lastSize != newSize) {
setState(() {});
}
}

double get viewportWidth => MediaQuery.of(context).size.width;

@override
Widget build(BuildContext context) {
_lastSize = DeviceType.fromWidth(viewportWidth);
return widget.builder(_lastSize);
}
}

Мы хотим перестроить дочерний элемент только при изменении типа устройства.
Наши точки останова:

enum DeviceType {
small(0),
medium(600),
large(1024),
Xlarge(2200);

final double breakpoint;

const DeviceType(this.breakpoint);

static DeviceType fromWidth(double width) {
return switch (width) {
< 600 => DeviceType.small,
< 1024 => DeviceType.medium,
< 2200 => DeviceType.large,
_ => DeviceType.Xlarge,
};
}
}


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

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

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #ResponsiveDesign #UI #UX #Widgets #CodingTips