es
Feedback
Flutter Pulse

Flutter Pulse

Ir al canal en Telegram

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

Mostrar más
1 021
Suscriptores
Sin datos24 horas
Sin datos7 días
+230 días
Archivo de publicaciones
Тестирование с навигацией 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

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

photo content

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

Рисуем и анимируем круглый прогресс-бар с помощью 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

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

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

photo content

Обзор пакетов на тему "Камера" для Flutter 📸 1. Camera Plugin 📸 Пакет для Flutter, позволяющий получить доступ к камерам устройства на iOS, Android и Web. Функции: отображение живого превью камеры, захват и сохранение снимков, запись видео и доступ к потоку изображений из Dart. 👍 Лайки: 2.5К, 📥 Скачиваний: 729К Последнее обновление 📅: 49 дней назад https://pub.dev/packages/camera 2. Camerax 📹 Пакет для работы с аудиовизуальными активами, контролем камер устройства, обработкой аудио и настройкой системных аудио-взаимодействий. 👍 Лайки: 51, 📥 Скачиваний: 389 Последнее обновление 📅: 23 дня назад https://pub.dev/packages/camerax 3. CamerAwesome 📸 Пакет для добавления камеры в приложение на Flutter с полностью настраиваемым интерфейсом. Функции: запись видео, съемка фотографий, мульти-камера, регулировка экспозиции и многое другое! 👍 Лайки: 1.1К, 📥 Скачиваний: 30.9К Последнее обновление 📅: 2 месяца назад https://pub.dev/packages/camerawesome 4. camera_avfoundation 📹 Реализация камеры для iOS, используется автоматически при подключении пакета camera. 👍 Лайки: 11, 📥 Скачиваний: 160К Последнее обновление 📅: 16 дней назад https://pub.dev/packages/camera_avfoundation 5. camera_windows 📹 Реализация камеры для Windows, позволяет использовать камеру на устройствах под управлением Windows. 👍 Лайки: 68, 📥 Скачиваний: 1.5К Последнее обновление 📅: 6 месяцев назад https://pub.dev/packages/camera_windows 6. camera_android_camerax 📹 Реализация камеры для Android на основе библиотеки CameraX, поддерживает одновременную работу с несколькими камерами. 👍 Лайки: 71, 📥 Скачиваний: 301К Последнее обновление 📅: 11 часов назад https://pub.dev/packages/camera_android_camerax #camera #camerax #camerawesome #camera_avfoundation #camera_windows #camera_android_camerax #flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages

Создаем чистую круглую кнопку Как сделать свою собственную круглую кнопку в Flutter? 🤔 В этом совете мы покажем, как создать красивую и простую круглую кнопку для вашего Flutter-приложения. 📱 Давайте разберем пример кода:


const CircleButton({
  super.key,
  required this.bgColor, // Цвет фона кнопки
  required this.borderColor, // Цвет границы кнопки
  required this.iconColor, // Цвет иконки
  required this.onTap, // Обработчик нажатия
  required this.radius, // Радиус кнопки
  required this.iconSize, // Размер иконки
  required this.borderWidth, // Ширина границы
  required this.icon, // Иконка
  this.disabled = false, // Флаг блокировки кнопки
});

@override
Widget build(BuildContext context) {
  return Opacity(
    opacity: disabled ? 0.5 : 1, // Изменяем прозрачность, если кнопка заблокирована
    child: ClipOval(
      child: Material(
        color: Colors.transparent, // Прозрачный фон для эффекта Ink
        // Ink покажет эффект касания, который вы видите на всех кнопках Flutter
        child: Ink(
          width: radius, 
          height: radius, 
          decoration: BoxDecoration(
            shape: BoxShape.circle, // Круглая форма
            color: bgColor, // Цвет фона
            border: Border.all(color: borderColor, width: borderWidth), // Граница кнопки
          ),
          child: InkWell(
            onTap: () {
              if (disabled) {
                return; // Ничего не делаем, если кнопка заблокирована
              }
              // Даем легкую вибрационную обратную связь
              HapticFeedback.lightImpact(); 
              // Вызываем метод onTap
              onTap();
            },
            child: Icon(icon, color: iconColor, size: iconSize), // Иконка внутри кнопки
          ),
        ),
      ),
    ),
  );
}

Оцените новую рубрику и напишите свое мнение в комментариях! 💬 Все подобные новости можно найти по хэштегу #FlutterPulseTips #flutter #dart #flutterpulse #FlutterPulseTips #mobiledevelopment #uiux #fluttertutorial #codingtips

Самые лучшие обновлённые пакеты за последние 24 часа Flame 1.32.0 - движок для создания игр на основе Flutter. В новой версии были внесены следующие изменения: перемещен MutableRSTransform из пакета flame_tiled в пакет flame, добавлен метод renderLine в расширения canvas. Пакет имеет 2210 лайков и более 82.6К скачиваний. 👍 Лайки: 2210, 📥 Скачиваний: 82.6К https://pub.dev/packages/flame json_serializable 6.11.0 - пакет для генерации кода для сериализации и десериализации JSON в Dart. Теперь он поддерживает аннотацию JsonKey на параметрах конструктора. Лайков: 3830, Скачиваний: 2.6М https://pub.dev/packages/json_serializable syncfusion_flutter_charts 30.2.6+1 - пакет для создания красивых и высокопроизводительных графиков в приложениях Flutter. В новой версии исправлена ошибка, связанная с авто-прокруткой при изменении размера экрана. Пакет имеет более 3540 лайков и 266К скачиваний! 👍 Лайки: 3540, 📥 Скачиваний: 266К https://pub.dev/packages/syncfusion_flutter_charts path_provider_android 2.2.18 - пакет для предоставления пути к файлам и директориям в приложениях Android. Теперь с обновлением до com.android.tools.build:gradle 8.12.1 и минимальной поддержкой SDK версии Flutter 3.29/Dart 3.7. Лайков: 18, Скачиваний: 4.9М https://pub.dev/packages/path_provider_android url_launcher_android 6.3.18 - пакет для запуска ссылок в приложениях Android. Теперь с обновлением до com.android.tools.build:gradle 8.12.1 и минимальной поддержкой SDK версии Flutter 3.29/Dart 3.7. Лайков: 19, Скачиваний: 4.5М https://pub.dev/packages/url_launcher_android shared_preferences_android 2.4.12 - пакет для хранения настроек в приложениях Android. Теперь использует обновлённые версии com.android.tools.build:gradle и kotlin_version. Минимальная поддерживаемая версия SDK обновлена до Flutter 3.29/Dart 3.7. Пакет имеет 17 лайков и более 3.9М скачиваний. 👍 Лайки: 17, 📥 Скачиваний: 3.9М https://pub.dev/packages/shared_preferences_android #Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #json_serializable #Flame #syncfusion_flutter_charts #path_provider_android #url_launcher_android #shared_preferences_android

photo content

Обзор пакетов на тему "Датчики" (Sensors) sensors_plus - пакет для доступа к акселерометру, гироскопу, магнитометру и барометру на Android, iOS, MacOS, Linux и Windows. 👍 Лайки: 952, 📥 Скачиваний: 352К Последнее обновление 📅: 14 дней назад https://pub.dev/packages/sensors_plus ir_sensor_plugin - пакет для использования инфракрасного датчика в ваших приложениях Flutter. Поддерживается только Android. 👍 Лайки: 34, 📥 Скачиваний: 158 Последнее обновление 📅: 8 месяцев назад https://pub.dev/packages/ir_sensor_plugin carp_mobile_sensing - пакет для создания кроссплатформенных приложений для сбора данных с мобильных устройств. Поддерживает iOS и Android. 👍 Лайки: 22, 📥 Скачиваний: 1.9К Последнее обновление 📅: 3 месяца назад https://pub.dev/packages/carp_mobile_sensing flutter_compass - пакет для создания компаса в ваших Flutter-приложениях. Возвращает направление от 0 до 360 градусов, где 0 - север. 👍 Лайки: 186, 📥 Скачиваний: 53К Последнее обновление 📅: 9 месяцев назад https://pub.dev/packages/flutter_compass ambient_light - пакет для доступа к данным датчика окружающего света на Android, iOS и macOS. 👍 Лайки: 8, 📥 Скачиваний: 1.8К Последнее обновление 📅: 4 месяца назад https://pub.dev/packages/ambient_light light - пакет для сбора данных о внешнем освещении с помощью датчиков окружающей среды Android. 👍 Лайки: 24, 📥 Скачиваний: 5.1К Последнее обновление 📅: 5 месяцев назад https://pub.dev/packages/light #sensors_plus #ir_sensor_plugin #carp_mobile_sensing #flutter_compass #ambient_light #light #flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages

Изменение яркости системной панели Отобразить системную панель с правильной яркостью на iOS и Android 🚀 При разработке мобильных приложений важно обеспечить корректное отображение системной панели на разных платформах. В этой статье мы рассмотрим, как изменить яркость системной панели в приложениях Flutter для iOS и Android. Код для изменения яркости системной панели: SystemChrome.setSystemUIOverlayStyle( SystemUIOverlayStyle( statusBarColor: Colors.transparent, // Прозрачный цвет статус-бара statusBarBrightness: // Установка яркости статус-бара в зависимости от темы mode == ThemeMode.light ? Brightness.light : Brightness.dark, statusBarIconBrightness: // Установка яркости иконок статус-бара в зависимости от темы mode == ThemeMode.light ? Brightness.dark : Brightness.light, ), ); Обратите внимание: - statusBarBrightness применяется только на Android. - statusBarIconBrightness также применяется только на Android, но с инвертированными значениями для iOS. Особенности для iOS: 🤔 На iOS строка состояния может быть изначально скрыта. Чтобы отобразить ее, откройте ваш проект в Xcode и убедитесь, что свойство status bar initially hidden не отмечено. 👍 Оцените нашу новую рубрику советов по Flutter! Ваши отзывы помогут нам сделать контент еще лучше. Все подобные новости можно найти по хэштегу #FlutterPulseTips #flutter #dart #flutterpulse #FlutterPulseTips #MobileDev #iOS #Android #FlutterTips #DevTips

Самые лучшие обновлённые пакеты за последние 24 часа vector_graphics_compiler 1.1.19 Плагин для компиляции SVG-файлов в формат, который может быть отображен runtime vector_graphics. Теперь поддерживается версия xml до 6.6.1 и минимальная версия SDK Flutter 3.29/Dart 3.7. 👍 Лайки: 107, 📥 Скачиваний: 3.1М https://pub.dev/packages/vector_graphics_compiler flutter_local_notifications 19.4.1 Пакет для отображения локальных уведомлений на различных платформах. В новой версии исправлена проблема с добавлением невидимого флага к действиям уведомлений. 👍 Лайки: 7080, 📥 Скачиваний: 1.36М https://pub.dev/packages/flutter_local_notifications syncfusion_flutter_charts 30.2.6+1 Пакет для создания красивых и высокопроизводительных графиков в приложениях Flutter. В новой версии исправлена ошибка, связанная с авто-прокруткой при изменении размера экрана. 👍 Лайки: 3540, 📥 Скачиваний: 274К https://pub.dev/packages/syncfusion_flutter_charts dwds 25.0.3 Пакет для обеспечения совместимости инструментов разработки Dart с веб-приложениями. В новой версии исправлена ошибка при горячем перезапуске с веб-сокетом. 👍 Лайки: 30, 📥 Скачиваний: 4М https://pub.dev/packages/dwds syncfusion_flutter_datepicker 29.1.39 Пакет для создания удобных виджетов выбора дат в приложениях Flutter. Теперь минимальная версия Dart обновлена до 3.7. 👍 Лайки: 1590, 📥 Скачиваний: 182К https://pub.dev/packages/syncfusion_flutter_datepicker #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #vector_graphics_compiler #flutter_local_notifications #syncfusion_flutter_charts #dwds #syncfusion_flutter_datepicker

photo content

Новые пакеты за неделю flutter_logs_yoer Пакет для логирования в Flutter, который позволяет создавать файлы логов с возможностью фильтрации, сортировки и экспорта в формате zip. 👍 Лайки: 1, 📥 Скачиваний: 307 https://pub.dev/packages/flutter_logs_yoer video_view Пакет для легкого воспроизведения видео в приложениях Flutter, поддерживающий субтитры и переключение аудиодорожек. 👍 Лайки: 3, 📥 Скачиваний: 658 https://pub.dev/packages/video_view komodo_defi_sdk Пакет для создания кроссплатформенных кошельков и приложений DeFi на основе Komodo, включающий функции аутентификации, активации активов и вывода средств. 👍 Лайки: 8, 📥 Скачиваний: 4 https://pub.dev/packages/komodo_defi_sdk anti_intip_variabel Пакет для защиты секретов в приложениях Flutter/Dart, использующий технику XOR-обфускации для защиты API-ключей и токенов. 👍 Лайки: 1, 📥 Скачиваний: 327 https://pub.dev/packages/anti_intip_variabel json_factory_generator Пакет-генератор кода для Dart, создающий централизованные, типобезопасные фабрики JSON для моделей. 👍 Лайки: 7, 📥 Скачиваний: 153 https://pub.dev/packages/json_factory_generator flame_3d Экспериментальная реализация 3D поддержки для Flame, с фокусом на исследовании потенциальных возможностей 3D. 👍 Лайки: 32, 📥 Скачиваний: 160 https://pub.dev/packages/flame_3d #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestNewPackages #firebase_messaging #flutter_logs_yoer #video_view #komodo_defi_sdk #anti_intip_variabel #json_factory_generator #flame_3d

photo content

Обзор пакетов на тему "Аватары, изображения профилей и чат-хеды" 📦 Avatar Plus - создавайте уникальные аватары для ваших приложений на основе текста. Возможности: генерация уникальных аватаров, настройка аватаров, более 12 миллиардов возможных уникальных аватаров. 👍 Лайки: 46, 📥 Скачиваний: 589 📅 Последнее обновление: 11 месяцев назад https://pub.dev/packages/avatar_plus 📦 flutter_boring_avatars - создавайте уникальные аватары на основе имени пользователя и цветовой палитры. Пакет поддерживает анимацию перехода и настраиваемые формы. 👍 Лайки: 34, 📥 Скачиваний: 1.04К 📅 Последнее обновление: 11 месяцев назад https://pub.dev/packages/flutter_boring_avatars 📦 Advanced Avatar - создайте уникальные аватары для вашего приложения с помощью богатого API для настройки виджетов. Включает темы для светлого и темного режимов. 👍 Лайки: 107, 📥 Скачиваний: 3.75К 📅 Последнее обновление: 9 месяцев назад https://pub.dev/packages/flutter_advanced_avatar 📦 Avatar Brick - автоматически отображает инициалы имени, если аватар недоступен. Поддерживает различные форматы изображений и позволяет настраивать размер, цвет и стиль аватара. 👍 Лайки: 30, 📥 Скачиваний: 75 📅 Последнее обновление: 3 месяца назад https://pub.dev/packages/avatar_brick 📦 Avatar Stack - пакет Avatar Stack позволяет визуально представить пользователей, места и объекты в ограниченном пространстве. Он поддерживает анимацию, настройку выравнивания и перекрытия элементов. 👍 Лайки: 182, 📥 Скачиваний: 5.21К 📅 Последнее обновление: 7 месяцев назад https://pub.dev/packages/avatar_stack #AvatarPlus #flutter_boring_avatars #AdvancedAvatar #AvatarBrick #AvatarStack #flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages

Шпаргалка по Dart map Maps are fast - Карты работают быстро Карта - это коллекция пар ключ/значение. Значение извлекается из карты с помощью связанного с ним ключа. В Dart существует 3 типа карт: - HashMap - неупорядоченная - LinkedHashMap - упорядоченная по порядку вставки - SplayTreeMap - упорядоченная по ключам


// Простая карта со строковым ключом: строковым значением
var data = {'name': 'John Doe', 'occupation': 'gardener'};
// карта, типизированная с помощью конструктора Map<String, String>()
var data2 = <int, String>{1: 'sky', 2: 'falcon', 3: 'rock'};

Преобразование списка в карту


// преобразование списка в карту
var resultMap = Map.fromIterable(list, key: (v) => v[0], value: (v) => v[1]);
// или
var result = { for (var v in list) v[0]: v[1] };
// или просто используя метод asMap() для автоматического индексирования
var result = ["test","test2","test3"].asMap(); // {0: test, 1: test2, 2: test3}

Зачем использовать карту? Доступ к элементу в списке с использованием indexOf или contains имеет сложность O(n). Доступ к элементу или проверка его наличия в карте занимает O(1). Карты выигрывают в этом Как создать неизменяемую карту? https://pub.dev/packages/built_collection - Этот пакет предоставляет способы создания неизменяемых карт (разработан командой Dart). Функции карты


var details = {'Usrname': 'bruce', 'Password': 'mypas'};
  // добавление
  details['Uid'] = '3802983209A';
  // обновление
  details.putIfAbsent("Uid", () => "3802983209A");
  // преобразование в другую карту
  details.map((key, value) => MapEntry(key, "$key:$value"));
  // приведение к другому типу
  details.cast<int, int>();
  // проверка наличия ключа
  details.containsKey("key"); // сложность O(1)
  // копирование
  var copy = {...details};
  // обновление
  details.update("Usrname", (value) => "joker");

Оцените новую рубрику! 👍💬 Все подобные новости можно найти по хэштегу #FlutterPulseTips #flutter #dart #flutterpulse #FlutterPulseTips #DartTips #MobileDevelopment #ProgrammingTips #Coding #FlutterCommunity