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

analyzer 8.2.0
Пакет analyzer используется для статического анализа кода на языке Dart и полезен для интеграции с инструментами и встраивания в редакторы.
В новой версии обновлены ограничения SDK, а также deprecated несколько методов и свойств, таких как Diagnostic.data, CatchClauseParameter.declaredElement и другие.
👍 Лайки: 300, 📥 Скачиваний: 12.4М
https://pub.dev/packages/analyzer

Chopper 8.4.0
Теперь доступна поддержка отменяемых запросов и изменен механизм таймаута.
Требуется Dart SDK 3.7.0.
👍 Лайки: 880, 📥 Скачиваний: 137К
https://pub.dev/packages/chopper

intl_phone_number_input 0.7.5
Этот пакет используется для ввода номеров телефонов в международном формате в приложениях Flutter. В новой версии исправлена ошибка в форматировании ввода, добавлены новые тесты и улучшена документация.
👍 Лайки: 897, 📥 Скачиваний: 72.8К
https://pub.dev/packages/intl_phone_number_input

flutter_map 8.2.2
Теперь пакет содержит исправления ошибок, которые влияли на пользователей, включая предотвращение краха из-за использования отрицательного TileLayer.zoomOffset и проверку того, что MapCamera.zoom является конечным.
👍 Лайки: 2050, 📥 Скачиваний: 239К
https://pub.dev/packages/flutter_map

go_router 16.2.2
Этот пакет используется для декларативного маршрутизации в приложениях Flutter, предоставляя удобный, основанный на URL, API для навигации между разными экранами.
В новой версии исправлены сломанные ссылки в readme.
👍 Лайки: 5480, 📥 Скачиваний: 2.1М
https://pub.dev/packages/go_router

analyzer_plugin 0.13.8
Теперь требует версию 8.2.0 пакета analyzer и Dart SDK ^3.9.0. Этот пакет используется для создания плагинов для сервера анализа, написанных на Dart.
👍 Лайки: 44, 📥 Скачиваний: 3.7М
https://pub.dev/packages/analyzer_plugin

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #analyzer #Chopper #intl_phone_number_input #flutter_map #go_router #analyzer_plugin
Builder with Dart
Dart позволяет сделать это без какого-либо шаблонного кода 🚀

В Dart вы можете использовать cascade notation для последовательного выполнения операций над одним и тем же объектом 🔥


class MyModel {
String? name;
String? title;
int? count;

MyModel({
this.name,
this.title,
this.count,
});
}

void main() {
final model = MyModel()
..name = 'John Doe' // Установка имени
..title = 'Software Engineer' // Установка должности
..count = 42; // Установка счетчика

final model2 = MyModel()
..name = 'Jane Doe'
..title = 'Data Scientist'
..count = 100;
}


В этом примере мы используем cascade notation (..), чтобы задать значения полям объекта MyModel последовательно 💡

Зачем это нужно?
- Упрощает код, убирая необходимость в отдельных методах-сеттерах 🔄
- Делает код более читаемым и удобным для поддержки 📖

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

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

#flutter #dart #flutterpulse #FlutterPulseTips #DartTips #MobileDevelopment #CodingTips #SoftwareDevelopment #CascadeNotation
👍6👎1
📊 Обзор пакетов на тему Table в Flutter

🔥 DataTable2 2.6.0
Улучшенная замена стандартных DataTable и PaginatedDataTable в Flutter! Липкие заголовки, автоматическая прокрутка и гибкие настройки ширины колонок.
❤️ 946 лайков | 📥 149K скачиваний
🔄 Обновлено: 6 месяцев назад
https://pub.dev/packages/data_table_2

🚀 Syncfusion Flutter DataGrid
Высокопроизводительная таблица с сортировкой, группировкой, экспортом в Excel/PDF и поддержкой тем.
❤️ 843 лайка | 📥 70.4K скачиваний
🔄 Обновлено: 3 дня назад
https://pub.dev/packages/syncfusion_flutter_datagrid

📊 TrinaGrid 2.0.2
Мощная таблица с сортировкой, фильтрацией и поддержкой всех платформ.
❤️ 90 лайков | 📥 7.4K скачиваний
🔄 Обновлено: 18 дней назад
https://pub.dev/packages/trina_grid

Advanced Table Widget
Таблицы с анимациями, ленивой загрузкой и кастомными стилями.
❤️ 19 лайков | 📥 171 скачивание
🔄 Обновлено: 7 месяцев назад
https://pub.dev/packages/flutter_advanced_table

🔄 material_table_view 5.5.2
Гибкий виджет с фиксированными строками/колонками и поддержкой миллиардов строк.
❤️ 209 лайков | 📥 5.6K скачиваний
🔄 Обновлено: 33 дня назад
https://pub.dev/packages/material_table_view

🌐 Davi 4.0.1
Мощная таблица для веб- и десктоп-приложений с бесконечной прокруткой и объединением ячеек.
❤️ 70 лайков | 📥 778 скачиваний
🔄 Обновлено: 8 месяцев назад
https://pub.dev/packages/davi

#Flutter #Dart #PubDev #FlutterPulse #DataTable #Syncfusion #TrinaGrid #AdvancedTable #MaterialTableView #Davi
Самые лучшие обновлённые пакеты за последние 24 часа

flutter_timezone 5.0.0
Плагин для Flutter, который позволяет работать с часовыми поясами. Теперь минимальная версия MacOS повышена до 10.14, а API возвращает объекты TimezoneInfo с именем часового пояса и локализованным названием (на поддерживаемых платформах).
👍 Лайки: 298, 📥 Скачиваний: 551К
https://pub.dev/packages/flutter_timezone

flutter_polyline_points 3.1.0
Плагин для декодирования polyline-пунктов из Google Maps Directions API и нового Google Routes API. Теперь с версией 3.1.0 добавлена валидация для режимов передвижения на велосипеде и пешком, а также исправлены проблемы с декодированием на веб-страницах и промежуточных местах.
👍 Лайки: 637, 📥 Скачиваний: 61.7К
https://pub.dev/packages/flutter_polyline_points

gql_http_link 1.2.0
Плагин для выполнения запросов GraphQL через HTTP с использованием JSON. В новой версии улучшена производительность декодера JSON, исправлены ошибки и добавлены новые функции.
👍 Лайки: 21, 📥 Скачиваний: 481К
https://pub.dev/packages/gql_http_link

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

google_maps 8.2.0
Плагин для интеграции Google Maps JavaScript API v3 в приложения на Dart. В новой версии обновлено до v3.62 документации.
👍 Лайки: 123, 📥 Скачиваний: 722К
https://pub.dev/packages/google_maps

vibration 3.1.4
Плагин для обработки Vibration API на iOS, Android и web. В новой версии внесены значительные изменения, включая обновление зависимостей и требования к Android Gradle Plugin, Gradle wrapper и Kotlin.
👍 Лайки: 883, 📥 Скачиваний: 247К
https://pub.dev/packages/vibration

#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #flutter_timezone #flutter_polyline_points #gql_http_link #jaspr #google_maps #vibration
Как создать таймер
Создание точного таймера с помощью Flutter

При создании таймера важно помнить, что не стоит полагаться на стандартный Timer, так как задержки и тики могут быть не совсем точными, особенно если процессор загружен.

Проблема с обычным таймером:
- Задержки и тики могут быть не идеально точными, особенно при высокой нагрузке на CPU.

Мы используем специальные колбэки для обновления виджета с анимациями. Обновляем наш виджет каждую секунду и запускаем анимацию соответствующим образом.

Код контроллера таймера:


class TimerController {
Timer? _timer;
DateTime? timerEndTime;
DateTime? timerStartTime;
TimerState state;
Duration duration;
Duration? remaining;
VoidCallback? onInit;
VoidCallback? onStart;
VoidCallback? onPause;
TimerTick? onTick;
List<VoidCallback> onCompleteListener;
List<VoidCallback> _onTickListener;

BasicTimerController({
required this.state,
required this.duration,
required this.timerEndTime,
this.remaining,
this.timerStartTime,
}) : onCompleteListener = [],
_onTickListener = [] {
remaining ??= duration;
}

Duration? get elapsed {
if (remaining == null) {
return null;
}
return duration - remaining!;
}

void start() {
state = TimerState.running;
final isNewTimer = remaining == null;
if (isNewTimer) {
timerStartTime = DateTime.now();
timerEndTime = timerStartTime!.add(duration);
} else {
timerEndTime = DateTime.now().add(remaining!);
timerStartTime = timerEndTime!.subtract(remaining!);
}

onInit?.call();
onStart?.call();
remaining ??= duration;

// Мы могли бы обновлять чаще, но это было бы бесполезно
const timerFrequency = Duration(milliseconds: 1000);
_timer = Timer.periodic(timerFrequency, (timer) {
if (remaining == null || remaining! <= Duration.zero) {
stop();
return;
}
if (timerEndTime == null) {
return;
}
remaining = timerEndTime!.difference(DateTime.now());
onTick?.call(remaining!);
for (final listener in _onTickListener) {
listener();
}
});
}

@override
void pause() {
_timer?.cancel();
state = TimerState.paused;
}
}



Ключевые моменты:
- Если вы знаете, когда таймер должен начаться и закончиться, ваш таймер останется точным, даже если пользователь закроет приложение и вернется.

Оцените нашу новую рубрику! 👍 Оставьте ваши отзывы в комментариях! 💬

Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #AppDevelopment #ProgrammingTips #Таймер #Точность #FlutterРазработка
👍5
📌 Обзор пакетов на тему Form в Flutter

flutter_form_builder
Упрощает создание форм в Flutter с готовыми полями (чекбоксы, слайдеры) и валидацией.
👍 2730 | 📥 215K | 🔄 37 дней назад
pub.dev/packages/flutter_form_builder

formz 0.8.0
Универсальное решение для валидации форм в Dart. Чистый код и удобное управление состояниями.
👍 893 | 📥 123K | 🔄 11 мес. назад
pub.dev/packages/formz

FForm 5.2.5
Мощный инструмент для управления формами с асинхронной валидацией и кастомными ошибками.
👍 181 | 📥 152 | 🔄 4 мес. назад
pub.dev/packages/fform

form_builder_validators 11.2.0
Готовые валидаторы для любых FormField (email, кредитные карты) с поддержкой 20+ языков.
👍 354 | 📥 193K | 🔄 3 мес. назад
pub.dev/packages/form_builder_validators

survey_kit 1.0.2
Создавайте профессиональные опросы с гибкой навигацией и кастомизацией.
👍 124 | 📥 1580+ | 🔄 11 дней назад
pub.dev/packages/survey_kit

reactive_forms 18.1.1
Модель для работы с формами, вдохновлённая Angular Reactive Forms.
👍 917 | 📥 67.2K | 🔄 2 мес. назад
pub.dev/packages/reactive_forms

#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #forms #validation
👍1
Самые лучшие обновлённые пакеты за последние 24 часа

flutter_inapp_purchase 6.8.0
Плагин для Flutter, который позволяет использовать покупки внутри приложения. Теперь пакет полностью интегрирован в экосистему OpenIAP.
Обновлены API продуктов и покупок, удалены устаревшие методы.
👍 Лайки: 428, 📥 Скачиваний: 8.1К
https://pub.dev/packages/flutter_inapp_purchase

flutter_gen 5.12.0
Этот пакет используется для генерации кода для активов, шрифтов, цветов и других ресурсов в приложениях Flutter, что упрощает работу с ними и исключает ошибки, связанные с ручным вводом путей к ресурсам.
В новой версии добавлена поддержка build 4.0.0.
Пакет уже скачали более 140 000 раз и получил 1670 лайков!
https://pub.dev/packages/flutter_gen

flutter_blue_plus 2.0.0
Этот пакет используется для работы с Bluetooth Low Energy в приложениях Flutter. Он поддерживает почти все функции на платформах iOS, macOS, Android, Linux и Web.
В новой версии произошел переход на лицензию FlutterBluePlus.
Пакет набрал 1190 лайков и более 142 000 скачиваний!
https://pub.dev/packages/flutter_blue_plus

drift_dev 2.28.3
Этот пакет используется для генерации кода базы данных из классов таблиц drift.
В новой версии удалены зависимости от устаревших пакетов сборки и исправлены ложные предупреждения о неиспользуемых импортах.
👍 Лайки: 55, 📥 Скачиваний: 264К
https://pub.dev/packages/drift_dev

Drift 2.28.2
Drift - реактивная библиотека персистенции для Flutter и Dart, построенная на основе SQLite.
В обновлении исправлена проблема с кастингом при компиляции с dart2wasm и добавлена возможность включения isolateDebugLog в NativeDatabase.createBackground.
Пакет имеет 2180 лайков и более 448 000 скачиваний.
https://pub.dev/packages/drift

flutter_gen_runner 5.12.0
Этот пакет используется для генерации кода для активов, шрифтов, цветов и других ресурсов в приложениях Flutter, позволяя избежать использования строковых API и снижая риск ошибок.
В новой версии добавлена поддержка build 4.0.0.
Пакет уже скачали более 503 000 раз и получил 290 лайков!
https://pub.dev/packages/flutter_gen_runner

#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #flutter_inapp_purchase #flutter_gen #flutter_blue_plus #drift_dev #Drift #flutter_gen_runner
👍1
Рисуем таймер
Создание точного таймера с помощью Flutter часть 2

Мы можем использовать шейдер в нашем кастомном рисовальщике (painter).

Мы рисуем полный круг, который будет отображаться постепенно.

Затем мы рисуем круг, который будет уменьшаться каждую секунду.

Мы перерисовываем только если прогресс изменился.

Ну а если вы хотите протестировать какой-то угол вручную...



class CircleTimerPainter extends CustomPainter {
final double progress;
final Color progressColor;
final Color backgroundColor;

CircleTimerPainter({
super.repaint,
required this.progress,
this.progressColor = Colors.blue,
this.backgroundColor = Colors.grey,
});

@override
void paint(Canvas canvas, Size size) {
final angle = 360 * progress; // примечание: Используйте напрямую радианы для лучшей производительности
final backgroundPaint = Paint()
..color = backgroundColor
..style = PaintingStyle.stroke
..strokeWidth = 28;

final progressPaint = Paint()
..shader = SweepGradient(
colors: [
progressColor,
Colors.red,
],
startAngle: 0 - 90.0.radians,
endAngle: angle.radians,
).createShader(
Rect.fromCircle(
center: Offset(size.width / 2, size.height / 2),
radius: size.width / 2),
)
..color = progressColor
..style = PaintingStyle.stroke
..strokeCap = StrokeCap.round
..strokeWidth = 20;

// Рисуем фоновый круг
canvas.drawCircle(
size.center(Offset.zero),
size.width / 2,
backgroundPaint,
);

canvas.drawArc(
Rect.fromLTWH(0, 0, size.width, size.height),
-90.0.radians,
angle.radians,
false,
progressPaint,
);
}

@override
bool shouldRepaint(covariant CircleTimerPainter oldDelegate) {
return oldDelegate.progress != progress;
}
}

extension RadianExt on double {
double get radians => this * (math.pi / 180);
}



Оцените новую рубрику! 👍💬
Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #AppDevelopment #ProgrammingTips #UIUX #FlutterCommunity
👍4
Обзор пакетов на тему Card & Expansion Tile 🚀

1. FLASH CARD – удобные карточки для запоминания
Пакет flash_card (v0.1.0) помогает создавать интерактивные карточки для обучения. Простое добавление карточек с лицевой и обратной стороной.
👍 28 | 📥 155 | 🔄 11 месяцев назад
🔗 https://pub.dev/packages/flash_card

2. card_stack_widget 0.1.6
Вертикальный стек карточек с возможностью свайпа и кастомизацией. Настройте ориентацию, прозрачность, масштаб и анимацию.
👍 79 | 📥 321 | 🔄 10 месяцев назад
🔗 https://pub.dev/packages/card_stack_widget

3. vertical_card_pager 1.6.3
Создавайте динамичные вертикальные пейджеры с карточками. Идеально для визуально привлекательных интерфейсов!
👍 298 | 📥 529 | 🔄 8 месяцев назад
🔗 https://pub.dev/packages/vertical_card_pager

4. expansion_tile_group 2.3.0
Расширяет стандартный ExpansionTile, добавляя группировку, кастомизацию стилей и управление раскрытием.
👍 90 | 📥 5.8K | 🔄 4 месяца назад
🔗 https://pub.dev/packages/expansion_tile_group

5. expansion_tile_list 2.0.0
Мощный пакет для кастомизируемых списков с раскрывающимися элементами. Поддержка аккордеона, перетаскивания и анимаций.
👍 32 | 📥 1.7K | 🔄 5 месяцев назад
🔗 https://pub.dev/packages/expansion_tile_list

#Flutter #Dart #PubDev #FlutterPulse #CardWidgets #ExpansionTile #UI
Новые пакеты за неделю

bodychart_heatmap для Flutter набирает популярность!
Он используется для визуализации и выделения частей тела в приложениях для фитнеса, медицины или отслеживания.
Уже 9 лайков и 179 скачиваний!
👍 Лайки: 9, 📥 Скачиваний: 179
Подробнее: https://pub.dev/packages/bodychart_heatmap
👍

no_late для Dart - предотвращение ошибок инициализации в runtime. Плагин анализатора Dart, запрещающий небезопасное использование ключевого слова late.
Лайков: 8, Скачиваний: 0.
👍 Лайки: 8, 📥 Скачиваний: 0
Подробности: https://pub.dev/packages/no_late
📈

dire_di_flutter - пакет, предоставляющий функционал внедрения зависимостей для Dart и Flutter, вдохновленный Spring.
Он включает в себя поддержку аннотаций, конструкторного внедрения, кодогенерации и многое другое.
Уже 413 скачиваний и 1 лайк!
👍 Лайки: 1, 📥 Скачиваний: 413
Узнайте больше: https://pub.dev/packages/dire_di_flutter
📊

fquery - пакет, предоставляющий легкое и эффективное решение для управления асинхронным состоянием, кэширования и обновления данных.
Уже 79 лайков и 6330 скачиваний!
👍 Лайки: 79, 📥 Скачиваний: 6.3К
Узнайте больше: https://pub.dev/packages/fquery
🚀

isar_plus - расширенная версия базы данных Isar с дополнительными функциями и улучшениями. Подходит для разработки приложений на Flutter.
Уже 300 скачиваний и 1 лайк!
👍 Лайки: 1, 📥 Скачиваний: 300
Подробнее: https://pub.dev/packages/isar_plus
📁

loader_pro для Flutter набирает популярность!
Он предлагает множество современных индикаторов загрузки.
Лайков - 10, скачиваний - 79.
👍 Лайки: 10, 📥 Скачиваний: 79
Узнать больше: https://pub.dev/packages/loader_pro
🔄
#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestNewPackages #bodychart_heatmap #no_late #dire_di_flutter #fquery #isar_plus #loader_pro
Самые лучшие обновлённые пакеты за последние 24 часа

firebase_core 4.1.1
Плагин для Flutter, который позволяет подключать несколько приложений Firebase. Убраны устаревшие зависимости.
👍 Лайки: 3950, 📥 Скачиваний: 3.1М
https://pub.dev/packages/firebase_core

firebase_core_web 3.1.1
Используйте его для интеграции Firebase в ваши веб-приложения. Теперь с обновленной зависимостью.
👍 Лайки: 54, 📥 Скачиваний: 3.2М
https://pub.dev/packages/firebase_core_web

cloud_firestore 6.0.2
Плагин для Flutter, который позволяет использовать Cloud Firestore API. Убраны устаревшие зависимости.
👍 Лайки: 3720, 📥 Скачиваний: 960К
https://pub.dev/packages/cloud_firestore

firebase_auth 6.1.0
Теперь доступна поддержка TOTP на macOS. Пакет для аутентификации в приложениях Flutter.
👍 Лайки: 4200, 📥 Скачиваний: 1.1М
https://pub.dev/packages/firebase_auth

firebase_messaging 16.0.2
Плагин для Flutter, который позволяет использовать Firebase Cloud Messaging API. Убраны устаревшие зависимости.
👍 Лайки: 3830, 📥 Скачиваний: 1.9М
https://pub.dev/packages/firebase_messaging

shared_preferences_android 2.4.13
Теперь использует androidx.datastore:datastore версии 1.1.7. Пакет для хранения данных в приложениях Android.
👍 Лайки: 17, 📥 Скачиваний: 4.2М
https://pub.dev/packages/shared_preferences_android

#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #firebase_core #firebase_core_web #cloud_firestore #firebase_auth #firebase_messaging #shared_preferences_android
Получение данных с использованием http-клиента
Как получить данные с удаленного сервера, используя http-клиент 🤔

Шаг 1: Установите пакет http 📦


Future<T> request<T>({
required String endpoint,
Map<String, String>? headers,
Map<String, String>? queryParams,
}) async {
final url = Uri(
scheme: config.baseUrlScheme, // http или https
host: config.baseUrlHost, // localhost или mydomain.com
path: endpoint, // /api/articles
queryParameters: queryParams,
port: config.baseUrlPort, // порт вашего бэкенда
);

final response = await http.get(
url,
headers: {
...?headers, // Предоставление пользовательских заголовков, например, токена API
},
);

if (response.statusCode != 200) {
throw Exception('Запрос к API завершился неудачей: ${response.statusCode} ${response.reasonPhrase}');
}

return json.decode(response.body) as T; // Возвращение обобщенного типа T
}


* Возвращение обобщенного типа T, чтобы можно было напрямую возвращать другой тип. Рекомендуется использовать пакет json_serializable для легкого парсинга объектов 📄
* Предоставление пользовательских заголовков, таких как токен API 🔒
* Улучшение: отправка пользовательских ошибок в зависимости от кода состояния ⚠️

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

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

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #AppDevelopment #ProgrammingTips #Coding #SoftwareDevelopment
👎1