uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

Flutter Pulse

Flutter Pulse

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
1 000
Obunachilar
Ma'lumot yo'q24 soatlar
-67 kun
-430 kun
Postlar arxiv
Вложенная навигация с Go_Router Давайте создадим боковую панель с Flutter Web и go_router 🤔 Вместо того, чтобы напрямую добавлять все маршруты (GoRoute), мы обернём их в поднавигацию 📦 Мы обернём все подмаршруты в StatefulShellRoute, чтобы управлять состоянием поднавигации 🔄 Для каждого подмаршрута у нас будет StatefulShellBranch, который может содержать несколько маршрутов 🌐 Каждый элемент будет иметь свой собственный стек навигации 📚


import 'package:go_router/go_router.dart'; // Импорт библиотеки go_router

GoRouter generateRouter() {
  return GoRouter(
    routes: [
      // Страница без боковой панели
      GoRoute(
        name: 'signin',
        path: '/signin',
        builder: (context, state) => const SignInPage(),
      ),
      // Страница с боковой панелью
      StatefulShellRoute(
        parentNavigatorKey: navigatorKey, // Ключ навигатора родительского маршрута
        // Боковая панель будет отображаться слева
        builder: (context, state, navigationShell) => Row(
          children: [
            SideBar(state: state), // Боковая панель
            Expanded(child: navigationShell), // Содержимое навигации
          ],
        ),
        // builder будет вызван, когда маршрут активируется
        // navigationShell - виджет, который отображает содержимое маршрута
        // Он будет показывать текущую последнюю страницу стека навигации для каждой ветки
        navigatorContainerBuilder: (
          BuildContext context,
          StatefulNavigationShell navigationShell,
          List<Widget> children,
        ) {
          if (children.isEmpty) {
            return SizedBox(); // Пустой контейнер, если нет дочерних элементов
          }
          return Scaffold(
            body: children[navigationShell.currentIndex], // Отображение текущего дочернего элемента
          );
        },
        branches: [
          StatefulShellBranch(
            routes: [
              GoRoute(
                name: 'users',
                path: '/users',
                builder: (context, state) => const UsersPage(),
              ),
              GoRoute(
                name: 'user profile',
                path: '/users/:userId',
                builder: (context, state) => const UserProfilePage(),
              ),
            ],
          ),
          StatefulShellBranch(
            routes: [
              GoRoute(
                name: 'notifications',
                path: '/notifications',
                builder: (context, state) => const NotificationsPage(),
              ),
            ],
          ),
        ],
      ),
    ],
  );
}

Оцените новую рубрику 👍👏! Все подобные новости можно найти по хэштегу #FlutterPulseTips. Не забудьте подписаться и следить за новыми советами 🔔 #flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #FlutterTips #GoRouter #NestedNavigation #FlutterWeb

🚀 Расширяем возможности Flutter с помощью FFI: бинарники и компиляция под капотом! 🔥 Готовы погрузиться в мир нативной магии? В новом видео от эксперта Руслана Цицера — ключевые секреты интеграции C/C++ библиотек во Flutter через FFI! Узнайте, как избежать подводных камней и заставить "железо" работать на вас. 👉 СМОТРЕТЬ ВИДЕО 👈 💡 В этом выпуске: 🔧 Две главные проблемы FFI и их элегантные решения: 1️⃣ Выбор компилятора — почему для iOS, Android и macOS нужны разные инструменты и как их настроить 2️⃣ Интеграция бинарников — куда поместить скомпилированные библиотеки, чтобы Flutter их "увидел" 📦 Практические примеры: - Работа с Makefile и скриптами сборки - Особенности подключения под Android (jniLibs) и iOS (Framework + Info.plist) - Автоматизация переноса бинарников 🚨 Внимание, лайфхак! Для iOS показан работающий метод подключения через "кустарные" CocoaPods — минимум конфигурации, максимум результата! 🔗 Ресурсы: - GitHub с примерами кода 💬 "Если вы работаете с нативным кодом — это видео сэкономит вам часы поисков!" 👍 Не пропустите! Узнайте, как: - Собрать универсальные бинарники под любую платформу - Избежать ошибок ABI-совместимости - Оптимизировать процесс сборки 👉 Подписывайтесь на канал, жмите 🔔 колокольчик, чтобы не пропустить новые выпуски! Ваши лайки и комментарии — лучшая мотивация для автора 💙 И про реакции на нашем канале тоже не забывайте!) 👍 #Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube #FFI #Rust #NativeCode #MobileDevelopment

Самые лучшие обновлённые пакеты за последние 24 часа url_launcher_android 6.3.22 Плагин для запуска ссылок на Android. Теперь добавлена поддержка externalNonBrowserApplication на API 30+. 👍 Лайки: 20, 📥 Скачиваний: 4.8М https://pub.dev/packages/url_launcher_android purchases_flutter 9.6.1 Клиент для системы отслеживания подписок и покупок RevenueCat, упрощающий реализацию в-app покупок в Flutter. В обновлении исправлены ошибки, включая крах при вызове функции покупки с параметрами. 👍 Лайки: 838, 📥 Скачиваний: 173К https://pub.dev/packages/purchases_flutter launchdarkly_flutter_client_sdk 4.12.0 Теперь доступна экспериментальная поддержка плагинов и хуков. Исправлены ошибки и обновлены зависимости. 👍 Лайки: 16, 📥 Скачиваний: 311К https://pub.dev/packages/launchdarkly_flutter_client_sdk fl_chart 1.1.1 Теперь с улучшениями в зависимостях vector_math, build_runner, mockito и very_good_analysis. Пакет fl_chart - это высоко настраиваемая библиотека графиков для Flutter, поддерживающая линейные, баровые, круговые, разбросанные и радарные графики. 👍 Лайки: 6900, 📥 Скачиваний: 1.19М https://pub.dev/packages/fl_chart widgetbook 3.17.0 Теперь вы можете настраивать поведение скролла, использовать новую версию Flutter 3.35.0 и многое другое. Уже 699 лайков и 240000 скачиваний! 👍 Лайки: 699, 📥 Скачиваний: 240К https://pub.dev/packages/widgetbook supabase_flutter 2.10.1 Пакет supabase_flutter - это клиентская библиотека для Supabase, позволяющая использовать функции аутентификации, базы данных, хранилища и многое другое в приложениях Flutter. В новой версии исправлена проблема с совместимостью с веб-приложениями из-за импорта dart:io. 👍 Лайки: 871, 📥 Скачиваний: 227К https://pub.dev/packages/supabase_flutter #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #url_launcher_android #purchases_flutter #launchdarkly_flutter_client_sdk #fl_chart #widgetbook #supabase_flutter

photo content

Новые пакеты за неделю emulator_guard Пакет для обнаружения эмуляторов и симуляторов на различных платформах, включая Android, iOS, Linux, macOS и Windows. 👍 Лайки: 7, 📥 Скачиваний: 41 https://pub.dev/packages/emulator_guard printing_ffi Плагин для прямого общения с принтерами в Flutter, позволяет перечислять принтеры, отправлять сырые данные для печати и управлять заданиями печати на macOS и Windows. 👍 Лайки: 8, 📥 Скачиваний: 279 https://pub.dev/packages/printing_ffi dynamic_sdk Пакет для создания простого и гибкого подключения кошельков к нескольким цепочкам. 👍 Лайки: 1, 📥 Скачиваний: 709 https://pub.dev/packages/dynamic_sdk flutter_data_sync_manager Пакет для бесшовной синхронизации данных в режиме offline-first между локальным и удаленным хранилищем. 👍 Лайки: 8, 📥 Скачиваний: 140 https://pub.dev/packages/flutter_data_sync_manager smart_faker Мощный и интеллектуальный генератор фейковых данных для приложений Flutter и Dart. 👍 Лайки: 4, 📥 Скачиваний: 362 https://pub.dev/packages/smart_faker didcomm Пакет для реализации безопасной и частной связи в вашем приложении, используя протокол DIDComm v2 Messaging. 👍 Лайки: 2, 📥 Скачиваний: 673 https://pub.dev/packages/didcomm #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestNewPackages #emulator_guard #printing_ffi #dynamic_sdk #flutter_data_sync_manager #smart_faker #didcomm

photo content

Сделайте текст выбираемым По умолчанию текст не является выбираемым. 🤔 Почему? Виджет SelectionArea позволяет выбирать текст, указывая Flutter обрабатывать отрисовку и взаимодействие для выбора текста. 📝

return MaterialApp(
  home: SelectionArea(
    child: Scaffold(
      appBar: AppBar(title: const Text('SelectionArea Sample')),
      body: const Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('Row 1'),
            Text('Row 2'),
            Text('Row 3'),
          ],
        ),
      ),
    ),
  ),
);
ИЛИ 🔄

const SelectableText(
  'Hello! How are you?',
  textAlign: TextAlign.center,
  style: TextStyle(fontWeight: FontWeight.bold),
)
Используйте SelectableText вместо Text 🔁 Как выбрать между SelectionArea и SelectableText? 🤔 Используйте selectionArea, если вы хотите включить выбор на нескольких виджетах, а не только на тексте. 📚 Для одного текста просто используйте SelectableText 👍 Оцените новую рубрику и напишите своё мнение! 💬 Все подобные новости можно найти по хэштегу #FlutterPulseTips 🔍 #flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #UIUX #CodingTips #AppDevelopment #FlutterTips

Самые лучшие обновлённые пакеты за последние 24 часа jovial_svg 1.1.28 - пакет для эффективного рендеринга статических SVG-изображений и анимации. В новой версии добавлен метод `onLoaded` для асинхронного `ScalableImageWidget`, исправлена ошибка с перерисовкой виджета и встроенными изображениями, а также добавлен метод `ScalableImage.imagesAreLoaded` для оптимизации отображения виджета. 👍 Лайки: 233, 📥 Скачиваний: 191К https://pub.dev/packages/jovial_svg hux 0.8.4 - современный набор компонентов интерфейса для Flutter, предназначенный для создания чистых и последовательных пользовательских интерфейсов. В новой версии обновлены README и визуальная иерархия, добавлены новые функции, такие как показ метрик загрузок и интеграция с Figma. 👍 Лайки: 48, 📥 Скачиваний: 943 https://pub.dev/packages/hux awesome_extensions 2.0.26 - комплект расширений для Map, включая безопасный доступ, фильтрацию, преобразование и операции с вложенными картами. 👍 Лайки: 214, 📥 Скачиваний: 4.2К https://pub.dev/packages/awesome_extensions upgrader 12.0.0 - пакет для уведомления пользователей о необходимости обновить приложение, когда в магазине появляется новая версия. В новой версии удалено использование device_info_plus, переименована основная ветка в main, а минимальная поддерживаемая версия Flutter теперь 3.27.0. 👍 Лайки: 2.4К, 📥 Скачиваний: 186К https://pub.dev/packages/upgrader grouped_scroll_view 0.2.3+1 - пакет для отображения группированных списков элементов и поддерживает различные виды представлений, включая ListView и GridView, а также checkbox и radio в scrollView. В новой версии исправлены предупреждения статического анализа кода, чтобы соответствовать правилам Lints. 👍 Лайки: 56, 📥 Скачиваний: 626 https://pub.dev/packages/grouped_scroll_view dart_pubspec_licenses 3.0.9 - пакет для сбора и сборки информации о лицензиях открытого исходного кода (OSS) с помощью pubspec.lock. В новой версии исправлена ошибка с генерацией thisPackage и добавлено поле devDependencies в класс Package в сгенерированном выводе. 👍 Лайки: 1, 📥 Скачиваний: 249К https://pub.dev/packages/dart_pubspec_licenses #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #jovial_svg #hux #awesome_extensions #upgrader #grouped_scroll_view #dart_pubspec_licenses

photo content

Пора памперс менять?

Локальная база данных Когда вы хотите, чтобы ваше приложение работало офлайн 🔄 Шаг 1: Использование пакета Drift Для работы с локальной базой данных мы будем использовать пакет Drift. 📦


dart pub add drift
dart pub add drift_flutter
dart pub add drift_dev

Шаг 2: Создание базы данных


@DriftDatabase(tables: [TaskTable])
class Database extends $Database {
  Database([QueryExecutor? e]) : super(e ?? driftDatabase(
    name: 'todo-app',
    native: const DriftNativeOptions(),
    databaseDirectory: getApplicationSupportDirectory,
  ));

  @override
  int get schemaVersion => 2; // Версия базы данных

  @override
  MigrationStrategy get migration {
    return MigrationStrategy(
      onCreate: (m) async {
        await m.createAll();
        // Добавьте миграции здесь, если версия новая
      },
    );
  }
}

Шаг 3: Создание таблицы


@DataClassName('TaskEntry')
class TaskTable extends Table {
  IntColumn get id => integer().autoIncrement()();
  TextColumn get description => text()();

  // Добавьте ваши запросы здесь
  static Stream<List<TaskEntry>> getAllItems(Database database) =>
      database.select(database.taskTable).watch();
}

Шаг 3: Создание или редактирование build.yaml в корневой папке вашего Flutter-приложения 📁
targets:
  $default:
    builders:
      drift_dev:
        # Эти опции изменяют способ генерации кода
        options:
          databases:
            default: lib/modules/drift/database.dart
            sql:
              dialect: sqlite
              options:
                version: "3.38"
                modules: [fts5]

Запустите сборщик, чтобы регенерировать схему базы данных 🔄 Оцените новую рубрику! 👍💬 Все подобные новости можно найти по хэштегу #FlutterPulseTips #flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #LocalDatabase #DriftPackage #FlutterTips #AppDevelopment

Самые лучшие обновлённые пакеты за последние 24 часа flutter_webrtc Пакет для работы с WebRTC в приложениях Flutter, получил обновление. Этот пакет позволяет использовать функции аудио- и видео-связи, обмена данными и другие возможности WebRTC в приложениях для мобильных устройств, настольных компьютеров и веб-приложений. 👍 Лайки: 1270, 📥 Скачиваний: 66.5К https://pub.dev/packages/flutter_webrtc flutter_blue_plus Пакет используется для работы с Bluetooth Low Energy в приложениях Flutter. Он поддерживает почти все функции на платформах iOS, macOS, Android, Linux и Web. В новой версии исправлена ошибка компиляции на Android. 👍 Лайки: 1180, 📥 Скачиваний: 129К https://pub.dev/packages/flutter_blue_plus flutter_local_notifications Исправлена проблема с отображением не-ASCII символов в названии приложения уведомлений на Windows. 👍 Лайки: 7100, 📥 Скачиваний: 1.4М https://pub.dev/packages/flutter_local_notifications flutter_appauth Пакет используется для аутентификации и авторизации пользователей в приложениях Flutter. Теперь он требует минимум Flutter 3.29 и Dart 3.7. 👍 Лайки: 399, 📥 Скачиваний: 183К https://pub.dev/packages/flutter_appauth flutter_local_notifications_windows Исправлена проблема с отображением не-ASCII символов в названии приложения уведомлений. 👍 Лайки: 2, 📥 Скачиваний: 562К https://pub.dev/packages/flutter_local_notifications_windows jaspr Jaspr - современный фреймворк для создания веб-сайтов на Dart с поддержкой рендеринга на клиентской и серверной стороне. В новой версии исправлена проблема с рендерингом фрагментов. 👍 Лайки: 544, 📥 Скачиваний: 10.2К https://pub.dev/packages/jaspr #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #flutter_webrtc #flutter_blue_plus #flutter_local_notifications #flutter_appauth #flutter_local_notifications_windows #jaspr

photo content

Загрузка байтов изображения и отображение на холсте Не так сложно сделать с помощью Flutter 😉 Вы когда-нибудь задумывались, как можно загрузить изображение и отобразить его на холсте в Flutter? 🤔 Давайте разберемся в этом вместе! 💡 Шаг 1: Загрузка изображения Сначала нам нужно загрузить изображение из наших ресурсов. Для этого мы используем метод load класса rootBundle:


import 'dart:ui' as ui;
import 'package:flutter/services.dart';

// Загружаем изображение из ресурсов
final ByteData data = await rootBundle.load(path);
// Преобразуем в Uint8List
final Uint8List bytes = data.buffer.asUint8List();
// Преобразуем в ui.Image
final ui.Image image = await decodeImageFromList(bytes);

Шаг 2: Отображение на холсте Теперь, когда у нас есть изображение в формате ui.Image, мы можем отобразить его на холсте. Для этого создадим собственный класс CustomPainter:


// Создаем новый CustomPainter
class MyPainter extends CustomPainter {
  final ui.Image image;

  MyPainter(this.image);

  @override
  void paint(Canvas canvas, Size size) {
    // Рисуем изображение на холсте
    canvas.drawImageRect(image, srcRect, dstRect, Paint());
  }
}

Вот и все! Теперь вы знаете, как загрузить байты изображения и отобразить их на холсте во Flutter. Просто и эффективно, не правда ли? 😊 Оцените нашу новую рубрику и оставьте свои комментарии! 👇 Все подобные новости можно найти по хэштегу #FlutterPulseTips #flutter #dart #flutterpulse #FlutterPulseTips #mobiledev #appdev #codingtips #FlutterTips

Самые лучшие обновлённые пакеты за последние 24 часа Melos 7.1.1 - инструмент для управления проектами на Dart с несколькими пакетами. Убрана ошибка, не позволяющая использовать подчеркивание в названии пакета. 👍 Лайки: 842, 📥 Скачиваний: 605К https://pub.dev/packages/melos syncfusion_flutter_datepicker 31.1.19 - пакет для выбора дат, диапазонов дат или нескольких дат в приложениях Flutter. Несмотря на отсутствие изменений, пакет остается популярным: 👍 Лайки: 1600, 📥 Скачиваний: 190К https://pub.dev/packages/syncfusion_flutter_datepicker syncfusion_flutter_charts 30.2.6+1 - пакет для создания красивых и высокопроизводительных графиков в приложениях Flutter. Исправлена ошибка, связанная с авто-прокруткой при изменении размера экрана. 👍 Лайки: 3540, 📥 Скачиваний: 291К https://pub.dev/packages/syncfusion_flutter_charts device_info_plus 12.1.0 - пакет для получения информации о текущем устройстве из приложения Flutter. Теперь поддерживает новые модели iPhone 17 серии. 👍 Лайки: 2910, 📥 Скачиваний: 2.9М https://pub.dev/packages/device_info_plus syncfusion_flutter_calendar 31.1.19 - пакет для создания календарей с различными представлениями и функциями для планирования и отображения событий. В новой версии нет изменений. 👍 Лайки: 1530, 📥 Скачиваний: 61.7К https://pub.dev/packages/syncfusion_flutter_calendar syncfusion_flutter_core 31.1.19 - пакет, являющийся зависимым для различных виджетов Flutter от Syncfusion. Пакет набрал 👍 Лайки: 245, 📥 Скачиваний: 682К https://pub.dev/packages/syncfusion_flutter_core #Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #melos #syncfusion_flutter_datepicker #syncfusion_flutter_charts #device_info_plus #syncfusion_flutter_calendar #syncfusion_flutter_core

photo content

Принудительный портретный режим Когда вы в последний раз использовали приложение в ландшафтном режиме? 🤔 Фиксация ориентации экрана в Flutter Чтобы заставить приложение работать только в портретном режиме, добавьте следующий код в функцию main() перед запуском приложения:


SystemChrome.setPreferredOrientations([
  DeviceOrientation.portraitUp, // Портретная ориентация вверх
  DeviceOrientation.portraitDown, // Портретная ориентация вниз
]);

Теперь приложение не сможет перейти в ландшафтный режим 📱💻 Результат: Приложение останется в портретном режиме 👍 Оцените нашу новую рубрику FlutterPulseTips! 👍 Ваши отзывы помогут нам улучшать контент. 💬 Все подобные новости можно найти по хэштегу #FlutterPulseTips #flutter #dart #flutterpulse #FlutterPulseTips #MobileDev #AppDev #ProgrammingTips #UIUX #DevTips

Самые лучшие обновлённые пакеты за последние 24 часа device_info_plus 12.0.0 Плагин для Flutter, который позволяет получить информацию о устройстве. Теперь пакет требует Android Gradle Plugin >=8.12.1, Gradle wrapper >=8.13 и Kotlin 2.2.0. Удалено свойство serialNumber из AndroidDeviceInfo. 👍 Лайки: 2910, 📥 Скачиваний: 2.9М https://pub.dev/packages/device_info_plus share_plus 12.0.0 Плагин для Flutter, который позволяет делиться контентом из вашего приложения через диалоговое окно платформы. В новой версии исправлены ошибки, обновлены зависимости и внесены изменения в конфигурацию сборки для Android. 👍 Лайки: 3820, 📥 Скачиваний: 2.3М https://pub.dev/packages/share_plus mustache_template 2.0.1 Пакет для парсинга и рендеринга шаблонов Mustache в Dart. В обновлении пакет был перенесен в новый репозиторий, а также обновлена минимальная поддерживаемая версия SDK до Dart 3.7. 👍 Лайки: 83, 📥 Скачиваний: 4.3М https://pub.dev/packages/mustache_template file_picker 10.3.3 Пакет для использования родного файлового менеджера для выбора одного или нескольких файлов с поддержкой фильтрации по расширениям. В новой версии обновлена компиляция для Android и исправлена проблема с указанием начального каталога для Linux. 👍 Лайки: 4790, 📥 Скачиваний: 2.4М https://pub.dev/packages/file_picker connectivity_plus 7.0.0 Пакет для обнаружения типов сетевого подключения в приложениях Flutter. Обновление включает в себя изменения в требованиях для Android, а также исправления и улучшения. Теперь пакет требует Android Gradle Plugin >=8.12.1, Gradle wrapper >=8.13 и Kotlin 2.2.0. 👍 Лайки: 3890, 📥 Скачиваний: 2.4М https://pub.dev/packages/connectivity_plus package_info_plus 9.0.0 Пакет для Flutter, который позволяет получить информацию о пакете приложения, включая имя приложения, имя пакета, версию и номер сборки. В новой версии обновлены требования для Android: теперь требуется Android Gradle Plugin >=8.12.1, Gradle wrapper >=8.13 и Kotlin 2.2.0. 👍 Лайки: 27.6К, 📥 Скачиваний: 3.6М https://pub.dev/packages/package_info_plus #Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #device_info_plus #share_plus #mustache_template #file_picker #connectivity_plus #package_info_plus

photo content

Самые лучшие обновлённые пакеты за последние 24 часа code_builder 4.11.0 Плагин для генерации валидного кода на языке Dart с помощью fluent-интерфейса. В новой версии добавлена поддержка новых типов, исправлены ошибки и улучшена генерация кода. 👍 Лайки: 272, 📥 Скачиваний: 5.2M https://pub.dev/packages/code_builder Riverpod 3.0.0 Реактивный фреймворк для кэширования и привязки данных, облегчающий работу с асинхронным кодом. Уже 2.7M скачиваний и 3770 лайков! https://pub.dev/packages/riverpod flutter_riverpod 3.0.0 Реактивный фреймворк для кэширования и привязки данных, упрощающий работу с асинхронным кодом. Более 2.6M скачиваний и 2740 лайков! https://pub.dev/packages/flutter_riverpod Freezed 3.2.3 Пакет для автоматического генерации кода для данных классов, помеченных объединений, вложенных классов и клонирования в Dart. В новой версии 3.2.3 расширен диапазон версий для analyzer, source_gen и build. 👍 Лайки: 4330, 📥 Скачиваний: 2М https://pub.dev/packages/freezed leak_tracker 11.0.2 Фреймворк для обнаружения проблем с памятью в приложениях Dart и Flutter. Пакет имеет 171 лайк и более 4.47M скачиваний. https://pub.dev/packages/leak_tracker url_launcher_android 6.3.21 Теперь минимальная поддерживаемая версия SDK - Flutter 3.35. Удален устаревший код для поддержки SDK <24. Пакет имеет 20 лайков и более 4.8M скачиваний. https://pub.dev/packages/url_launcher_android #Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #code_builder #Riverpod #flutter_riverpod #Freezed #leak_tracker #url_launcher_android