fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

Flutter Pulse

Flutter Pulse

رفتن به کانال در Telegram

На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.

نمایش بیشتر
1 000
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-67 روز
-430 روز
آرشیو پست ها
Обзор пакетов на тему Multimedia Utilities 📢 Пакет vector_graphics_codec - кодек для векторной графики, тесно связанный с пакетами vector_graphics и vector_graphics_compiler. 👉 4 лайка, 2 790 000 скачиваний 📅 Обновлён 8 месяцев назад ➡️ https://pub.dev/packages/vector_graphics_codec Пакет vector_graphics - рендерер векторной графики для Flutter. Этот пакет предназначен для работы с выходными данными из vector_graphics_compiler и кодированными с помощью тесно связанного варианта vector_graphics_codec. 👉 https://pub.dev/packages/vector_graphics 📈 104 лайка, 3 140 000 скачиваний 📅 Обновлён 3 месяца назад (версия 1.1.19) Пакет flutter_screen_recording - плагин для записи экрана на устройствах Android и iOS. 👍 163 лайка, 2050 скачиваний. https://pub.dev/packages/flutter_screen_recording Версия: 2.0.24 Обновлён: 4 месяца назад Пакет vector_graphics_compiler - компилятор SVG для рендеринга векторной графики в Flutter. Поддерживает группы, пути, базовые фигуры, ссылки, градиенты, текст, символы, изображения и паттерны. 👍 110 | 📥 3,410,000 https://pub.dev/packages/vector_graphics_compiler v1.1.19, обновлён 30 дней назад. Пакет image_size_getter - позволяет получить размеры (ширина и высота) изображений (jpeg, gif, png, webp, bmp) без полной декодировки файла. 🚀 Преимущества: * Быстрый: Не нужно декодировать整个 файл, только читаем метаданные. * Универсальный: Работает с файлами, памятью и даже HTTP-запросами. * Расширяемый: Можно добавлять свои собственные декодеры и источники изображений. 👍 Статистика: * Лайков: 149 * Скачиваний: 720 000 https://pub.dev/packages/image_size_getter 📅 Обновлён: 50 дней назад Пакет photo_manager - предоставляет API для работы с активами (изображениями, видео, аудио) на Android, iOS, macOS и OpenHarmony без интеграции с UI. 📈 751 ❤️, 141000+ скачиваний https://pub.dev/packages/photo_manager (v3.7.1, обновлено 4 месяца назад) #flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #vectorgraphics #vectorgraphicscodec #vectorsgraphicscompiler #imagesizegetter #photomanager

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


InteractiveViewer(
  transformationController: TransformationController()
    ..value = (Matrix4.identity()..scale(scale)),
  scaleEnabled: false,
  constrained: false,
  panEnabled: false,
  onInteractionStart: (details) => print('Начало взаимодействия'),
  onInteractionUpdate: (details) => print('Обновление взаимодействия'),
  onInteractionEnd: (details) => print('Конец взаимодействия'),
  child: Image.asset("name_of_your_image.png"),
)

* scaleEnabled: * Позволяет пользователю масштабировать с помощью жестов сжатия (по умолчанию: true). * Установите значение false, чтобы отключить масштабирование. * constrained: * Ограничивает дочерний элемент в пределах границ просмотра (по умолчанию: true). * Установите значение false для неограниченного перемещения/масштабирования за пределами границ просмотра. * panEnabled: * Позволяет перетаскивать/перемещать дочерний элемент с помощью касания (по умолчанию: true). * Установите значение false, чтобы отключить перемещение. * onInteractionStart: * Callback, срабатывающий при начале взаимодействия (перемещение или масштабирование). * Предоставляет детали, такие как фокусная точка и масштаб. * onInteractionUpdate: * Callback, вызываемый непрерывно при перемещении или масштабировании пользователем. * Полезно для отслеживания обновлений жестов в реальном времени. Оцените новую рубрику и напишите своё мнение! 👍✍️ Все подобные новости можно найти по хэштегу #FlutterPulseTips #flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #UIUX #FlutterTips #CodingCheatsheet

Самые лучшие обновлённые пакеты за последние 24 часа image_cropper_platform_interface 8.0.0 Плагин для Flutter, который позволяет обрезать изображения на платформах Android, iOS и Web. Теперь минимальная версия Flutter составляет 3.28.0, что добавляет поддержку toARGB32(). 👍 Лайки: 1, 📥 Скачиваний: 386К https://pub.dev/packages/image_cropper_platform_interface Realm 20.2.0 Пакет для создания мобильных баз данных, которые работают напрямую на устройствах. В обновлении добавлена поддержка страницы размером 16 КБ для Android. 👍 Лайки: 703, 📥 Скачиваний: 30.6К https://pub.dev/packages/realm image_cropper 11.0.0 Плагин для Flutter, который позволяет обрезать изображения на платформах Android, iOS и Web. В новой версии обновлен TOCropViewController до v2.8.0 и повышен минимум версии Flutter до 3.28. 👍 Лайки: 2390, 📥 Скачиваний: 383К https://pub.dev/packages/image_cropper flutter_vlc_player 7.4.4 Популярный пакет для воспроизведения видео в Flutter, с поддержкой устройств с PAGE_SIZE 16k на Android. 👍 Лайки: 527, 📥 Скачиваний: 8.3К https://pub.dev/packages/flutter_vlc_player google_sign_in_android 7.2.0 Пакет для реализации входа в систему Google на Android-устройствах. В новой версии добавлена поддержка функции "disconnect". 👍 Лайки: 14, 📥 Скачиваний: 903К https://pub.dev/packages/google_sign_in_android google_fonts 6.3.2 Пакет для использования шрифтов из fonts.google.com в приложениях Flutter. В новой версии сделана карта, ключом которой является FontWeight, неконстантной для совместимости с предложенными изменениями в реализации FontWeight в движке. 👍 Лайки: 6290, 📥 Скачиваний: 2.1М https://pub.dev/packages/google_fonts #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #image_cropper_platform_interface #Realm #image_cropper #flutter_vlc_player #google_sign_in_android #google_fonts

photo content

Детали для улучшения формы Ничто не раздражает так сильно, как невозможность закрыть клавиатуру. Пользователь нажимает в любом месте... и клавиатура остаётся. Вместо этого вы можете просто сделать так: final _formKey = GlobalKey<FormState>(); class SigninPage extends StatelessWidget { const SigninPage({super.key, this.canDismiss = true}); @override Widget build(BuildContext context) { final translations = Translations.of(context).signin; return GestureDetector( onTap: () => FocusScope.of(context).unfocus(), // Убираем фокус с полей при нажатии вне их child: PopScope( canPop: canDismiss, child: TopImgBackground( bgImagePath: 'assets/images/signin/signin_background.png', child: Scaffold( backgroundColor: Colors.transparent, appBar: AppBar( backgroundColor: Colors.transparent, automaticallyImplyLeading: canDismiss, foregroundColor: context.colors.background, ), resizeToAvoidBottomInset: false, body: Form( autovalidateMode: AutovalidateMode.disabled, key: _formKey, child: Padding( padding: const EdgeInsets.symmetric(horizontal: 24.0), child: ListView( children: [ const SizedBox(height: 150), Text( translations.title, style: Theme.of(context).textTheme.titleLarge?.copyWith( fontWeight: FontWeight.bold, ), ), ], ), ), ), ), ), ), ); } } Решение: Оберните всю страницу в GestureDetector, а затем снимите фокус со всех элементов, используя функцию FocusScope. Это позволит автоматически убрать клавиатуру при нажатии вне текстовых полей. Оцените новую рубрику и напишите своё мнение! 👍💬 Все подобные новости можно найти по хэштегу #FlutterPulseTips #flutter #dart #flutterpulse #FlutterPulseTips #MobileDev #UIUX #AppDev #CodingTips #DevTips #FlutterTips

🎨 Vibe coding: Создаём приложение для скетчей с нуля вместе с ИИ! Привет, Flutter-разработчики! 👋 Сегодня мы делимся крутым видео, которое точно стоит вашего внимания. Руслан Цицер начинает новый практический цикл по созданию приложения для скетчей с использованием ИИ. 🚀 Что ждет в этом выпуске? • Чистый проект с нуля: от flutter create до первого коммита • Работа с Cursor IDE и генерация кода через промпты • Верстка экранов в стиле Cupertino (iOS) • Создание компонентов: SketchCanvas, GenerateButton, навигация • Подготовка к интеграции с GPT API и генерацией изображений (в следующей части!) 💡 Почему это стоит посмотреть? 👉 Реальный процесс работы с ИИ-инструментами 👉 Практические приемы организации кода 👉 Подготовка базы для сложных фич с генерацией контента 👉 Живой процесс принятия решений при разработке 📂 Ресурсы: 🔗 Репозиторий с примерами 🔗 Смотреть видео на YouTube Не пропустите продолжение! В следующем выпуске — добавление AI-логики и генерации изображений через Gemini. #Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube Смотрите другие наши видео по хэштегу #FlutterPulseYoutube!

Самые лучшие обновлённые пакеты за последние 24 часа go_router 16.2.4 Плагин для декларативного маршрутизации в Flutter, обеспечивая удобный, основанный на URL, API для навигации между разными экранами. В новой версии исправлена проблема с глубокими ссылками на Android при холодном старте с пустым путем, которая приводила к потере схемы и авторитета. 👍 Лайки: 5490, 📥 Скачиваний: 1.9М https://pub.dev/packages/go_router dart_pubspec_licenses 3.0.12 Пакет используется для сбора и сборки информации о лицензиях открытого исходного кода (OSS) с помощью pubspec.lock. В новой версии исправлена ошибка, при которой основной пакет отображался как один из своих собственных зависимостей в сгенерированных выходных данных. 👍 Лайки: 2, 📥 Скачиваний: 231К https://pub.dev/packages/dart_pubspec_licenses mobile_scanner 7.1.2 Пакет используется для быстрого и лёгкого сканирования штрих-кодов и QR-кодов в приложениях Flutter. В новой версии исправлена проблема с параметром `initialZoom`. 👍 Лайки: 2140, 📥 Скачиваний: 517К https://pub.dev/packages/mobile_scanner firebase_messaging 15.2.1 Плагин для Flutter, который позволяет использовать Firebase Cloud Messaging API. Убрано устаревшее сообщение (#16995). 👍 Лайки: 3690, 📥 Скачиваний: 1.1М https://pub.dev/packages/firebase_messaging fluent_ui 4.13.0 Пакет предназначен для создания красивых и родных приложений для Windows с помощью Flutter. В обновлении исправлены ошибки, добавлены новые виджеты, включая CalendarView и CalendarDatePicker. 👍 Лайки: 3110, 📥 Скачиваний: 10.1К https://pub.dev/packages/fluent_ui flutter_inapp_purchase 6.8.3 Пакет для обработки покупок внутри приложения. Теперь исправлена ошибка на iOS, которая вызывала дублирование событий ошибок при покупке. 👍 Лайки: 428, 📥 Скачиваний: 7.4К https://pub.dev/packages/flutter_inapp_purchase #Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #go_router #dart_pubspec_licenses #mobile_scanner #firebase_messaging #fluent_ui #flutter_inapp_purchase

photo content

**📢 Обзор пакетов на тему Responsive UI в Flutter** **1️⃣ Sizer — идеальное решение для адаптивного дизайна** Пакет **Sizer** (v3.1.3) упрощает создание адаптивного интерфейса для любых экранов, используя проценты от ширины/высоты и ориентацию устройства. 👍 **1740** | 📥 **166K** | 🔄 **28 дней назад** 🔗 [pub.dev/packages/sizer](https://pub.dev/packages/sizer) **2️⃣ Easy Sidemenu 0.7.1 — удобное боковое меню** Идеально для навигации в приложениях, особенно на больших экранах. Поддержка вложенных пунктов и кастомизация стилей. 👍 **446** | 📥 **7350** | 🔄 **3 месяца назад** 🔗 [pub.dev/packages/easy_sidemenu](https://pub.dev/packages/easy_sidemenu) **3️⃣ flutter_admin_scaffold — Scaffold для админ-панелей** Гибкий SideBar, AppBar и поддержка вложенных пунктов для сложных интерфейсов. 👍 **205** | 📥 **805** | 🔄 **9 месяцев назад** 🔗 [pub.dev/packages/flutter_admin_scaffold](https://pub.dev/packages/flutter_admin_scaffold) **4️⃣ simple_grid — динамическая сетка** Вдохновлён Bootstrap, но с брейкпоинтами Material UI. Поддержка сортировки и кастомизации. 👍 **78** | 📥 **367** | 🔄 **8 месяцев назад** 🔗 [pub.dev/packages/simple_grid](https://pub.dev/packages/simple_grid) **5️⃣ overflow_view 0.5.0 — виджет для переполнения** Отображает элементы в ряд с индикатором, если места не хватает. Гибкие настройки отступов. 👍 **218** | 📥 **17.9K** | 🔄 **4 месяца назад** 🔗 [pub.dev/packages/overflow_view](https://pub.dev/packages/overflow_view) **6️⃣ Responsive Framework 1.5.1 — адаптивные интерфейсы** Автоматическое масштабирование, кастомные брейкпоинты и гибкие макеты. 👍 **3.3K** | 📥 **98.2K** | 🔄 **13 месяцев назад** 🔗 [pub.dev/packages/responsive_framework](https://pub.dev/packages/responsive_framework) #Flutter #Dart #PubDev #FlutterPulse #ResponsiveUI #Sizer #EasySidemenu #FlutterAdminScaffold #SimpleGrid #OverflowView #ResponsiveFramework

Получение данных с использованием 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

Самые лучшие обновлённые пакеты за последние 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

photo content

Новые пакеты за неделю 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

photo content

**Обзор пакетов на тему Card & Expansion Tile 🚀** **1. FLASH CARD – удобные карточки для запоминания** Пакет **flash_card** (v0.1.0) помогает создавать интерактивные карточки для обучения. Простое добавление карточек с лицевой и обратной стороной. 👍 28 | 📥 155 | 🔄 11 месяцев назад 🔗 [pub.dev/packages/flash_card](https://pub.dev/packages/flash_card) **2. card_stack_widget 0.1.6** Вертикальный стек карточек с возможностью свайпа и кастомизацией. Настройте ориентацию, прозрачность, масштаб и анимацию. 👍 79 | 📥 321 | 🔄 10 месяцев назад 🔗 [pub.dev/packages/card_stack_widget](https://pub.dev/packages/card_stack_widget) **3. vertical_card_pager 1.6.3** Создавайте динамичные вертикальные пейджеры с карточками. Идеально для визуально привлекательных интерфейсов! 👍 298 | 📥 529 | 🔄 8 месяцев назад 🔗 [pub.dev/packages/vertical_card_pager](https://pub.dev/packages/vertical_card_pager) **4. expansion_tile_group 2.3.0** Расширяет стандартный `ExpansionTile`, добавляя группировку, кастомизацию стилей и управление раскрытием. 👍 90 | 📥 5.8K | 🔄 4 месяца назад 🔗 [pub.dev/packages/expansion_tile_group](https://pub.dev/packages/expansion_tile_group) **5. expansion_tile_list 2.0.0** Мощный пакет для кастомизируемых списков с раскрывающимися элементами. Поддержка аккордеона, перетаскивания и анимаций. 👍 32 | 📥 1.7K | 🔄 5 месяцев назад 🔗 [pub.dev/packages/expansion_tile_list](https://pub.dev/packages/expansion_tile_list) #Flutter #Dart #PubDev #FlutterPulse #CardWidgets #ExpansionTile #UI

Рисуем таймер Создание точного таймера с помощью 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

Самые лучшие обновлённые пакеты за последние 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

photo content

📌 Обзор пакетов на тему 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

Как создать таймер Создание точного таймера с помощью 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Разработка