Flutter Pulse
前往频道在 Telegram
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
显示更多1 000
订阅者
无数据24 小时
-67 天
-630 天
帖子存档
1 000
Обновлённые пакеты за последние 24 часа
js_widget_runtime 0.4.198
Пакет для запуска JavaScript-виджетов и рендеринга нативного UI в Flutter. Автоматический патч-релиз.
👍 Лайки: 0, 📥 Скачиваний: 11.2K
https://pub.dev/packages/js_widget_runtime
video_player_avplay 0.8.23
Плагин для воспроизведения видео (включая DRM) на Tizen TV. Использование Tizen Core display API для устройств с Tizen 11.0 и новее.
👍 Лайки: 8, 📥 Скачиваний: 4.7K
https://pub.dev/packages/video_player_avplay
trust_tasks 0.9.33
Dart-биндинги для фреймворка Trust Tasks. Поддержка мультиплексинга DID через медиатор и версионированная память с optimistic concurrency.
👍 Лайки: 1, 📥 Скачиваний: 4.8K
https://pub.dev/packages/trust_tasks
ftp_server 2.4.0
Стандартный FTP/FTPS-сервер на Dart. Zero-Config TLS с генерацией самоподписанных сертификатов и исправление критических багов mTLS.
👍 Лайки: 9, 📥 Скачиваний: 469
https://pub.dev/packages/ftp_server
Codelessly SDK 20.0.0
Flutter-пакет для динамического UI и live-обновлений. Поддержка нового формата проектов ("schema": 2) из редактора v2.
👍 Лайки: 29, 📥 Скачиваний: 2.4K
https://pub.dev/packages/codelessly_sdk
dox_core 3.1.2
Ядро веб-фреймворка Dox для Dart. Использование dox_validation для применения аннотации @Describe('...') к полям DTO.
👍 Лайки: 10, 📥 Скачиваний: 2.3K
https://pub.dev/packages/dox_core
Поддержать канал
FlutterPulse — канал о мире Flutter!
#js_widget_runtime #video_player_avplay #trust_tasks #ftp_server #codelessly_sdk #dox_core #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages
1 000
Обзор пакетов на тему API
pub_api_client 4.0.0
Неофициальный клиент API для Pub.dev, обеспечивающий полный доступ к данным о пакетах, метрикам и поиску. Позволяет получать информацию о версиях, безопасности и издателях, а также выполнять поиск с сортировкой и пагинацией.
👍 Лайки: 70, 📥 Скачиваний: 179K
📅 Обновлено: 2 months ago
https://pub.dev/packages/pub_api_client
google_api_headers 5.4.5
Позволяет получать необходимые заголовки для вызова Google API с использованием ключей, ограниченных конкретным приложением. Функция возвращает пары ключ-значение, адаптированные под текущую платформу iOS или Android.
👍 Лайки: 31, 📥 Скачиваний: 73.2K
📅 Обновлено: 7 days ago
https://pub.dev/packages/google_api_headers
pusher_channels_flutter 2.6.0
Клиент Pusher Channels для Flutter, позволяющий подключаться к каналам и обмениваться событиями в реальном времени. Пакет поддерживает платформы Android, iOS и Web.
👍 Лайки: 169, 📥 Скачиваний: 73.1K
📅 Обновлено: 10 months ago
https://pub.dev/packages/pusher_channels_flutter
shopify_flutter 4.2.0
Мост между вашим магазином Shopify и Flutter-приложением, упрощающий создание мобильного клиента. Пакет предоставляет инструменты для работы с Storefront API, включая управление каталогом товаров, корзинами и аутентификацией пользователей.
👍 Лайки: 81, 📥 Скачиваний: 2.4K
📅 Обновлено: 45 days ago
https://pub.dev/packages/shopify_flutter
openfoodfacts 3.31.1
Предоставляет Dart-интерфейс для работы с API Open Food Facts, содержащим информацию о более чем 2,9 миллионах продуктов питания. Позволяет не только искать и получать данные о продуктах, но и редактировать существующие записи или загружать новые в базу.
👍 Лайки: 160, 📥 Скачиваний: 11.4K
📅 Обновлено: 20 days ago
https://pub.dev/packages/openfoodfacts
googleapis 18.0.0
Предоставляет сгенерированные Dart-библиотеки для доступа к Google API. Эти библиотеки можно использовать как в Flutter-приложениях, так и в консольных или серверных приложениях на Dart.
👍 Лайки: 1.1K, 📥 Скачиваний: 1.4M
📅 Обновлено: 16 hours ago
https://pub.dev/packages/googleapis
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #FlutterPulse #FlutterPulseThemedPackages #pub_api_client #google_api_headers #pusher_channels_flutter #shopify_flutter #openfoodfacts #googleapis
1 000
Обновлённые пакеты за последние 24 часа
network_tools 6.0.16
Кроссплатформенный инструмент для работы с сетью (сканер хостов, портов, mDNS). Добавлена поддержка сканирования портов по IPv6-адресам.
👍 Лайки: 57, 📥 Скачиваний: 10.9K
https://pub.dev/packages/network_tools
gamepads 0.1.15
Flutter-плагин для работы с геймпадами на всех платформах. Исправлена поддержка триггеров и дросселей на Android.
👍 Лайки: 37, 📥 Скачиваний: 27.6K
https://pub.dev/packages/gamepads
native_workmanager 1.2.0
Запуск фоновых задач на чистом Kotlin и Swift без Flutter Engine. Улучшена надежность DartWorker, добавлены Task Graphs и HMAC верификация.
👍 Лайки: 27, 📥 Скачиваний: 2.3K
https://pub.dev/packages/native_workmanager
ml_algo 16.18.2
Нативная реализация алгоритмов машинного обучения для Dart. Исправлены ошибки в отображении времени выполнения бенчмарков.
👍 Лайки: 118, 📥 Скачиваний: 3.2K
https://pub.dev/packages/ml_algo
ultralytics_yolo 0.7.2
Официальный плагин YOLO для Flutter. Добавлена визуализация в фирменных цветах, ускорение отрисовки и исправления NMS IoU.
👍 Лайки: 84, 📥 Скачиваний: 3.7K
https://pub.dev/packages/ultralytics_yolo
cancelation_token 1.2.0
Управление отменой длительных операций в Dart/Flutter. Добавлен геттер CancelationToken.none для неотменяемых токенов.
👍 Лайки: 2, 📥 Скачиваний: 31.5K
https://pub.dev/packages/cancelation_token
Поддержать канал
FlutterPulse — канал о мире Flutter!
#network_tools #gamepads #native_workmanager #ml_algo #ultralytics_yolo #cancelation_token #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages
1 000
Обзор пакетов на тему Backend, Web Server & Web Framework
functions_client 2.7.1
Dart-библиотека для взаимодействия с Supabase Edge Functions. Является портом supabase/functions-js и распространяется под лицензией MIT.
👍 Лайки: 7, 📥 Скачиваний: 1.3M
📅 Обновлено: 3 months ago
https://pub.dev/packages/functions_client
jaspr 0.23.5
Современный веб-фреймворк на Dart для создания сайтов с поддержкой серверного и клиентского рендеринга. Использует модель компонентов, похожую на Flutter, но генерирует стандартный HTML и CSS.
👍 Лайки: 773, 📥 Скачиваний: 58.9K
📅 Обновлено: 43 days ago
https://pub.dev/packages/jaspr
universal_html 2.3.0
Кроссплатформенная замена dart:html, позволяющая работать с DOM и CSS-запросами в браузерах, на мобильных, десктопе и сервере. Также поддерживает парсинг HTML/XML и стриминг EventSource.
👍 Лайки: 516, 📥 Скачиваний: 652K
📅 Обновлено: 11 months ago
https://pub.dev/packages/universal_html
serverpod 4.1.1
Полнофункциональный бэкенд для Flutter, позволяющий писать серверный код на Dart с автоматической генерацией API и интеграцией базы данных. Включает встроенный ORM, кэширование, аутентификацию и систему миграций.
👍 Лайки: 747, 📥 Скачиваний: 109K
📅 Обновлено: 42 hours ago
https://pub.dev/packages/serverpod
shelf_proxy 1.0.5
Обработчик для Shelf, который проксирует запросы на внешний сервер. Можно использовать как самостоятельный прокси-сервер или подключить к существующему приложению для перенаправления определенных URL.
👍 Лайки: 94, 📥 Скачиваний: 9.8M
📅 Обновлено: 6 months ago
https://pub.dev/packages/shelf_proxy
dart_frog 1.2.6
Быстрый и минималистичный бэкенд-фреймворк для Dart, разработанный Very Good Ventures. Позволяет создавать проекты, запускать dev-сервер и генерировать production-сборки с Dockerfile.
👍 Лайки: 864, 📥 Скачиваний: 240K
📅 Обновлено: 12 months ago
https://pub.dev/packages/dart_frog
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #FlutterPulse #FlutterPulseThemedPackages #functions_client #jaspr #universal_html #serverpod #shelf_proxy #dart_frog
1 000
Обновлённые пакеты за последние 24 часа
GraphFlow 1.0.1
Быстрый node-based редактор для Flutter. Исправлена проблема с загрузкой изображений в документации.
👍 Лайки: 8, 📥 Скачиваний: 13
https://pub.dev/packages/graph_flow
Hive CE 2.3.0
Лёгкая NoSQL база данных на Dart. Добавлена поддержка компиляции Flutter Web в WASM и исправлены проблемы статического анализа.
👍 Лайки: 574, 📥 Скачиваний: 1.37M
https://pub.dev/packages/hive_ce
googleapis_auth 2.3.7
Пакет для аутентификации в Google API (OAuth 2.0). Исправлено форматирование предупреждений в README.
👍 Лайки: 244, 📥 Скачиваний: 2.16M
https://pub.dev/packages/googleapis_auth
test_rocket 1.2.1
Ускоритель тестов для Flutter, запускающий их параллельно через изоляты. Добавлена поддержка very_good_test_runner 0.4.0 и обновлены ссылки в метаданных.
👍 Лайки: 6, 📥 Скачиваний: 7.9K
https://pub.dev/packages/test_rocket
just_game_engine 2.0.0
Игровой движок для Flutter с архитектурой ECS. Унифицировано именование компонентов, удалён устаревший API и обеспечена совместимость с Flutter 3.47.
👍 Лайки: 9, 📥 Скачиваний: 457
https://pub.dev/packages/just_game_engine
Sass 1.108.1
Dart-реализация препроцессора Sass. Исправлена ошибка в процессе релиза, из-за которой OS-специфичные пакеты для Node.js Embedded Host теряли снапшоты Dart Sass.
👍 Лайки: 21, 📥 Скачиваний: 85.9K
https://pub.dev/packages/sass
Поддержать канал
FlutterPulse — канал о мире Flutter!
#graph_flow #hive_ce #googleapis_auth #test_rocket #just_game_engine #sass #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages
1 000
Вход через VK ID во Flutter: полный разбор настройки SDK 🚀
Продолжаем серию о подключении внешних аккаунтов! После Яндекс ID пришло время разобраться с VK ID с помощью пакета
vkid_flutter_sdk. Это не просто «подключил и забыл», здесь есть нюансы, которые часто ломают голову разработчикам. Давайте разберем по полочкам, как правильно настроить все под Android и iOS. 🛠
Сначала о главном: бизнес-логика и регистрация приложения на стороне VK — это зона ответственности бэкенда. От них мы получаем два ключевых параметра: client_id и client_secret. Без них никуда. 🔑
Начнем с Android 🤖
1. Добавляем Maven-репозиторий VK в android/settings.gradle (или .kts). Важно: ссылка на репозиторий может меняться, поэтому всегда проверяйте актуальную.
maven(url = "https://nexus-external.vkteam.ru/repository/vkid-sdk-android/");
2. В android/build.gradle.kts подключаем специальный плагин для обработки манифеста:
plugins {
id("vkid.manifest.placeholders") version "1.1.0"
}
3. Там же прописываем наши секреты:
vkidManifestPlaceholders {
init(
clientId = "YOUR_CLIENT_ID",
clientSecret = "YOUR_CLIENT_SECRET",
)
}
4. И не забываем применить плагин в android/app/build.gradle.kts:
plugins {
…
id("vkid.manifest.placeholders")
}
*Совет:* Если плагин не сработал, можно попробовать старый добрый способ — вручную подставить manifestPlaceholders в android/app/build.gradle.kts.
Теперь iOS 🍏
Здесь все немного проще, но требует внимательности. Добавляем ключи в ios/Runner/Info.plist:
<key>VK_APP_CLIENT_ID</key>
<string>YOUR_CLIENT_ID</string>
<key>VK_APP_CLIENT_SECRET</key>
<string>YOUR_CLIENT_SECRET</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>vkauthorize-silent</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>auth_callback</string>
<key>CFBundleURLSchemes</key>
<array>
<string>vkYOUR_CLIENT_ID</string>
</array>
</dict>
</array>
Также нужно обработать возврат ссылки. Поскольку SceneDelegate становится стандартом, вот что добавить туда:
override func scene(
_ scene: UIScene,
openURLContexts URLContexts: Set<UIOpenURLContext>
) {
let unhandled = Set(URLContexts.filter {
!VkidFlutterSdkPlugin.vkid.open(url: $0.url)
})
if !unhandled.isEmpty {
super.scene(
scene,
openURLContexts: unhandled
)
}
}
И финальный штрих для iOS — настройка Universal Links (в Info.plist и в кабинете VK).
Вызов из Flutter 💻
SDK работает через колбэки, поэтому обернем это в удобную Future функцию:
Future<AuthData?> signInWithVk() async {
final vkid = await VKID.getInstance();
final completer = Completer<AuthData?>();
vkid.authorize(
onAuth: (data) {
completer.complete(data);
},
onError: (error) {
if (error is AuthCancelledError) {
completer.complete(null);
} else {
completer.completeError(error);
}
},
);
return completer.future;
}
При успехе получаем AuthData с токеном, при отмене — null. Чисто и предсказуемо. ✅
А как вы подходите к выбору методов входа? Оставляете пользователю выбор из нескольких соцсетей или делаете ставку на один основной способ? Делитесь в комментариях! 👇
Полную новость читайте здесь.
FlutterPulse — канал о мире Flutter!
#flutter #dart #FlutterPulse #FlutterPulseNews #flutter_amiga #auth #mobiledev1 000
Обновлённые пакеты за последние 24 часа
Ack 1.7.1
Инструмент валидации данных для Dart/Flutter. Обновление для согласования версий с экосистемой Ack, без изменений в коде.
👍 Лайки: 58, 📥 Скачиваний: 7.2K
https://pub.dev/packages/ack
flutter_lucide 1.69.0
Библиотека иконок Lucide для Flutter. Синхронизация с релизом Lucide, добавлены 4 новые иконки.
👍 Лайки: 94, 📥 Скачиваний: 25.9K
https://pub.dev/packages/flutter_lucide
auth0_flutter_platform_interface 1.2.1
Платформенный интерфейс аутентификации Auth0. Исправлена ошибка передачи параметров audience и scope при инициализации.
👍 Лайки: 2, 📥 Скачиваний: 174K
https://pub.dev/packages/auth0_flutter_platform_interface
desktop_webview_window 0.4.2
Открытие веб-страниц в нативных окнах на десктопе. Исправлены зависания getAllCookies на Linux и ошибка с NUL-символом в куках на Windows.
👍 Лайки: 222, 📥 Скачиваний: 707K
https://pub.dev/packages/desktop_webview_window
firebase_storage_mocks 0.9.0
Мокирование Firebase Storage для юнит-тестов. Обновлена зависимость до firebase_storage 14.0.0.
👍 Лайки: 41, 📥 Скачиваний: 30K
https://pub.dev/packages/firebase_storage_mocks
Sass 1.108.0
Dart-реализация препроцессора Sass. Отменены непреднамеренные breaking changes из версии 1.106.0.
👍 Лайки: 21, 📥 Скачиваний: 86.8K
https://pub.dev/packages/sass
Поддержать канал
FlutterPulse — канал о мире Flutter!
#ack #flutter_lucide #auth0_flutter_platform_interface #desktop_webview_window #firebase_storage_mocks #sass #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages
1 000
Обзор пакетов на тему Flutter Framework
flutter_modular 7.1.1
Предлагает умную модульную структуру для Flutter, объединяя управление маршрутами и внедрение зависимостей. Позволяет организовать код по фичам, обеспечивая независимые маршруты и инъекции для каждого модуля.
👍 Лайки: 1.3K, 📥 Скачиваний: 8.2K
📅 Обновлено: 46 days ago
https://pub.dev/packages/flutter_modular
get 4.7.3
Легкое и мощное решение, объединяющее управление состоянием, маршрутизацию и внедрение зависимостей. Обеспечивает высокую производительность и простоту синтаксиса, позволяя полностью развязать бизнес-логику от слоя представления.
👍 Лайки: 15.6K, 📥 Скачиваний: 127K
📅 Обновлено: 11 months ago
https://pub.dev/packages/get
flutter_clean_architecture 6.2.0
Упрощает реализацию чистой архитектуры в Flutter, предоставляя базовые классы для разделения ответственности и масштабируемости. Структурирует приложение на модули App, Domain, Data и Device, обеспечивая независимость бизнес-логики от деталей реализации платформы.
👍 Лайки: 422, 📥 Скачиваний: 59
📅 Обновлено: 9 months ago
https://pub.dev/packages/flutter_clean_architecture
elementary 3.2.1
Реализует паттерн MVVM для Flutter, обеспечивая четкое разделение кода на слои View, ViewModel и Model. Использует наблюдательный паттерн для свойств, что позволяет минимизировать лишние перерисовки и упрощает написание тестов.
👍 Лайки: 189, 📥 Скачиваний: 462
📅 Обновлено: 15 months ago
https://pub.dev/packages/elementary
flutter_meedu 9.2.2
Мощный инструмент для управления состоянием, внедрения зависимостей и реактивного программирования в Flutter-приложениях. Позволяет управлять состоянием без лишнего кода, генераторов или InheritedWidget, а также обеспечивает простоту тестирования.
👍 Лайки: 137, 📥 Скачиваний: 153
📅 Обновлено: 3 months ago
https://pub.dev/packages/flutter_meedu
stacked 3.5.0
Фреймворк для Flutter, представляющий собой полную архитектуру фронтенда для создания тестируемого и поддерживаемого кода в production-приложениях.
👍 Лайки: 1.4K, 📥 Скачиваний: 12.3K
📅 Обновлено: 14 months ago
https://pub.dev/packages/stacked
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #FlutterPulse #FlutterPulseThemedPackages #flutter_modular #get #flutter_clean_architecture #elementary #flutter_meedu #stacked
1 000
Обновлённые пакеты за последние 24 часа
foodb 0.13.7
CouchDB-совместимая обёртка для Dart/Flutter. Исправлена ошибка в методе find: теперь ключи индекса корректно декодируются в порядке map.fields, если порядок полей в индексе отличался от порядка в options.def.fields.
👍 Лайки: 9, 📥 Скачиваний: 147
https://pub.dev/packages/foodb
ApolloVM 2.36.0
Портативная VM для Dart, Java, Kotlin и других языков. Добавлены labeled loops, collection if/for/spread, пользовательские операторы и generic функции для Dart; улучшен Wasm-бэкенд с поддержкой перехвата исключений.
👍 Лайки: 56, 📥 Скачиваний: 328
https://pub.dev/packages/apollovm
tostore 3.6.1
Движок данных для AGI и edge-интеллекта, объединяющий реляционные данные, векторы и текст. Добавлены лексические текстовые индексы, нейросетевые разреженные индексы с fusion, настройка вытеснения данных (FIFO/LRU) и нормализованные оценки соответствия.
👍 Лайки: 143, 📥 Скачиваний: 217K
https://pub.dev/packages/tostore
firebase_pagination 4.3.0
Пакет для пагинации данных в Flutter (Firestore и Realtime Database). Обновлены зависимости до cloud_firestore: ^7.1.0 и firebase_database: ^13.0.1, пакет адаптирован под шаблон Flutter 3.47.
👍 Лайки: 92, 📥 Скачиваний: 588
https://pub.dev/packages/firebase_pagination
koolbase_flutter 12.52.6
Flutter SDK для BaaS-платформы Koolbase. Добавлена поддержка офлайн-тестирования: метод initializeForTesting(offline: true) позволяет эмулировать работу офлайн-слоя в памяти и проверять сценарии конфликтов в виджет-тестах.
👍 Лайки: 8, 📥 Скачиваний: 1.1K
https://pub.dev/packages/koolbase_flutter
smap_flutter 1.6.2
Пакет для интеграции карт sMap в Flutter-приложения (Android/iOS). Версия синхронизирована с Web SDK 1.6.2, изменений в самом SDK не было.
👍 Лайки: 0, 📥 Скачиваний: 944
https://pub.dev/packages/smap_flutter
Поддержать канал
FlutterPulse — канал о мире Flutter!
#foodb #apollovm #tostore #firebase_pagination #koolbase_flutter #smap_flutter #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages
1 000
Обзор пакетов на тему Music & Audio
media_kit 1.2.6
Кроссплатформенный видеоплеер и аудиоплеер для Flutter и Dart. Поддерживает воспроизведение видео и аудио на Android, iOS, macOS, Windows, Linux и Web с аппаратным ускорением.
👍 Лайки: 918, 📥 Скачиваний: 378K
📅 Обновлено: 10 months ago
https://pub.dev/packages/media_kit
flutter_sound 9.30.0
Пакет для воспроизведения и записи аудио на iOS, Android и Web. Поддерживает работу с локальными файлами, ассетами, удаленными URL и Dart-потоками данных.
👍 Лайки: 1640, 📥 Скачиваний: 79.6K
📅 Обновлено: 11 months ago
https://pub.dev/packages/flutter_sound
record 7.1.2
Пакет для записи аудио с микрофона в файл или поток на Android, iOS, macOS, Windows, Linux и Web. Он поддерживает различные кодеки, выбор устройств и функции обработки звука, такие как автоусиление и шумоподавление.
👍 Лайки: 899, 📥 Скачиваний: 1.5M
📅 Обновлено: 25 days ago
https://pub.dev/packages/record
audioplayers 6.8.1
Позволяет воспроизводить несколько аудиофайлов одновременно в Flutter-приложениях. Плагин поддерживает платформы Android, iOS, Linux, macOS, Windows и web.
👍 Лайки: 3450, 📥 Скачиваний: 1.6M
📅 Обновлено: 4 months ago
https://pub.dev/packages/audioplayers
audio_session 0.2.4
Позволяет уведомлять операционную систему о характере аудио-приложения и управлять обработкой прерываний звука. Он предоставляет доступ к возможностям AVAudioSession на iOS и AudioManager на Android для настройки аудиооборудования.
👍 Лайки: 366, 📥 Скачиваний: 1.7M
📅 Обновлено: 4 months ago
https://pub.dev/packages/audio_session
just_audio 0.10.6
Функциональный аудиоплеер для Android, iOS, macOS, web, Linux и Windows. Пакет поддерживает воспроизведение URL, работу с плейлистами, нарезку клипов и кэширование аудио.
👍 Лайки: 4150, 📥 Скачиваний: 1.5M
📅 Обновлено: 4 months ago
https://pub.dev/packages/just_audio
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #FlutterPulse #FlutterPulseThemedPackages #media_kit #flutter_sound #record #audioplayers #audio_session #just_audio
1 000
Обновлённые пакеты за последние 24 часа
async_task 1.1.4
Асинхронные задачи и параллельные исполнители для Dart. Исправлены критические ошибки в работе с Isolate, устранены утечки портов и зависания.
👍 Лайки: 106, 📥 Скачиваний: 37.2K
https://pub.dev/packages/async_task
flutter_lucide 1.67.0
Библиотека иконок Lucide для Flutter. Синхронизация с последним релизом, добавлены 4 новые иконки.
👍 Лайки: 94, 📥 Скачиваний: 24.6K
https://pub.dev/packages/flutter_lucide
multi_dropdown 4.0.0
Виджет для мульти-выбора, поиска и валидации форм. Переход на material_ui, исправлены баги в режиме bottom-sheet.
👍 Лайки: 384, 📥 Скачиваний: 41.9K
https://pub.dev/packages/multi_dropdown
async_extension 1.2.24
Расширения для асинхронных операций в Dart. Исправлена логика обработки ошибок в asyncTry и FutureOrExtension, увеличено покрытие тестами.
👍 Лайки: 16, 📥 Скачиваний: 43.6K
https://pub.dev/packages/async_extension
ApolloVM 2.32.0
Портативная виртуальная машина для исполнения кода на Dart и других языках. Добавлена поддержка именованных конструкторов, factory-конструкторов и списков инициализации.
👍 Лайки: 56, 📥 Скачиваний: 6.6K
https://pub.dev/packages/apollovm
lucide_icons_flutter 4.0.2
Пакет иконок Lucide для Flutter. Добавлены 129 новых иконок, оптимизирована структура шрифтовых весов для ускорения компиляции.
👍 Лайки: 212, 📥 Скачиваний: 357K
https://pub.dev/packages/lucide_icons_flutter
Поддержать канал
FlutterPulse — канал о мире Flutter!
#async_task #flutter_lucide #multi_dropdown #async_extension #ApolloVM #lucide_icons_flutter #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages
1 000
Вход через Яндекс ID в Flutter: пошаговый гайд 🚀
Привет, друзья! 👋 Сегодня разбираем, как правильно и без боли подключить авторизацию через Яндекс ID с помощью пакета
yandex_login_sdk. Это первая часть серии о работе с внешними аккаунтами, так что держимся за стулья! 🪑
Начнем с базы: вам понадобится applicationId, SHA256-отпечатки сертификатов для Android и App ID для iOS. После настройки личного кабинета вы получите готовый Client ID — он нам очень пригодится. 🔑
Настройка Android 🤖
В MainActivity.kt меняем FlutterActivity на FlutterFragmentActivity. А в android/app/build.gradle.kts прописываем параметры SDK:
android {
defaultConfig {
manifestPlaceholders["YANDEX_CLIENT_ID"] =
"YOUR_CLIENT_ID"
manifestPlaceholders["YANDEX_OAUTH_HOST"] =
"oauth.yandex.ru"
}
}
Настройка iOS 🍏
Схема похожая, но магия происходит в ios/Runner/Info.plist. Добавляем URL-схему для возврата в приложение и схемы, которые запрашивает SDK:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>YandexLoginSDK</string>
<key>CFBundleURLSchemes</key>
<array>
<string>yxYOUR_CLIENT_ID</string>
</array>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>primaryyandexloginsdk</string>
<string>secondaryyandexloginsdk</string>
</array>
⚠️ Важно: вместо yxYOUR_CLIENT_ID вставляем ваш реальный Client ID с префиксом yx (без пробелов!).
Если у вас проект на SceneDelegate, не забудьте передать URL обратного вызова в плагин:
override func scene(
_ scene: UIScene,
openURLContexts URLContexts: Set<UIOpenURLContext>
) {
var handled = false
for context in URLContexts {
if YandexLoginSdkPlugin.handle(
openURL: context.url
) {
handled = true
}
}
if !handled {
super.scene(
scene,
openURLContexts: URLContexts
)
}
}
Финальный штрих: вызов из Dart 🐍
Теперь самое интересное. Пишем функцию для получения токена:
Future<String?> getYandexToken() async {
try {
final result = await YandexLoginSdk.signIn(
clientId: YOUR_CLIENT_ID,
);
return result.token;
} on YandexAuthCancelledException {
return null;
} on YandexAuthInProgressException {
return null;
}
}
Логика проста: если пользователь отменил вход или попытался войти повторно — возвращаем null. Остальные ошибки обрабатываем в UI. Полученный токен отправляем на бэкенд для создания сессии. Готово! ✅
А вы уже пробовали подключать вход через Яндекс ID? Делитесь опытом в комментариях! 👇
Полную новость читайте здесь.
FlutterPulse — канал о мире Flutter!
#flutter #dart #FlutterPulse #FlutterPulseNews #flutter_amiga #auth #mobiledev1 000
Обзор пакетов на тему Live Streaming & Real-time Communication
signalr_netcore 1.4.4
Клиент для Flutter, позволяющий подключаться к серверам ASP.NET Core SignalR для реализации функций реального времени. Поддерживает вызов серверных функций, получение сообщений, автоматическое переподключение и протоколы WebSocket, Server-Sent Events и Long Polling.
👍 Лайки: 234, 📥 Скачиваний: 104K
📅 Обновлено: 14 months ago
https://pub.dev/packages/signalr_netcore
dart_webrtc 1.8.2
Интерфейс WebRTC, обёрнутый в Dart для адаптации к общим браузерам. Библиотека используется как основа для плагина flutter-webrtc в Flutter Web.
👍 Лайки: 17, 📥 Скачиваний: 640K
📅 Обновлено: 60 days ago
https://pub.dev/packages/dart_webrtc
flutter_webrtc 1.6.3
Плагин для реализации аудио/видеозвонков, передачи данных и захвата экрана в Flutter-приложениях на мобильных, десктопных и веб-платформах.
👍 Лайки: 1360, 📥 Скачиваний: 285K
📅 Обновлено: 8 days ago
https://pub.dev/packages/flutter_webrtc
agora_rtc_engine 6.6.4
Обёртка для Agora Video SDK, позволяющая быстро интегрировать голосовую и видеосвязь в реальном времени в Flutter-приложения.
👍 Лайки: 881, 📥 Скачиваний: 72.6K
📅 Обновлено: 60 days ago
https://pub.dev/packages/agora_rtc_engine
livekit_client 2.13.2
Позволяет добавлять в Flutter-приложения функции реального времени для видео, аудио и передачи данных. Подключение к LiveKit Cloud или self-hosted серверу упрощает создание видеозвонков, стриминга и мультимодальных AI-приложений.
👍 Лайки: 275, 📥 Скачиваний: 260K
📅 Обновлено: 8 days ago
https://pub.dev/packages/livekit_client
realtime_client 2.13.2
Dart-библиотека для Supabase Realtime, позволяющая отслеживать изменения в базе данных PostgreSQL через веб-сокеты.
👍 Лайки: 76, 📥 Скачиваний: 1.3M
📅 Обновлено: 22 days ago
https://pub.dev/packages/realtime_client
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #FlutterPulse #FlutterPulseThemedPackages #signalr_netcore #dart_webrtc #flutter_webrtc #agora_rtc_engine #livekit_client #realtime_client
1 000
👣 try/catch или Result: как не сойти с ума при обработке ошибок во Flutter?
Знакомая ситуация? Вы пишете асинхронную функцию, возвращаете
Future, а потом в рантайме ловите необработанное исключение, потому что забыли обернуть вызов в try/catch. Проблема в том, что сигнатура Future молчит: она не говорит вам, что внутри может «взорваться».
С появлением Dart 3 и sealed-классов у нас появился новый инструмент — тип Result. Он делает ошибку частью контракта функции: либо Success со значением, либо Failure с исключением.
Давайте посмотрим, как это работает на практике.
Классический подход с try/catch выглядит так:
Future<Location> getLocationFromIP(String ipAddress) async {
try {
final uri = Uri.parse('http://ip-api.com/json/$ipAddress');
final response = await http.get(uri);
switch (response.statusCode) {
case 200:
final data = json.decode(response.body);
return Location.fromMap(data);
default:
throw Exception(response.reasonPhrase);
}
} on Exception catch (_) {
rethrow;
}
}
А теперь представьте, что мы используем Result. Сначала описываем структуру:
sealed class Result<S, E extends Exception> {
const Result();
}
final class Success<S, E extends Exception> extends Result<S, E> {
const Success(this.value);
final S value;
}
final class Failure<S, E extends Exception> extends Result<S, E> {
const Failure(this.exception);
final E exception;
}
Функция меняется: теперь она явно возвращает результат, а не бросает исключение.
Future<Result<Location, Exception>> getLocationFromIP(String ipAddress) async {
try {
final uri = Uri.parse('http://ip-api.com/json/$ipAddress');
final response = await http.get(uri);
switch (response.statusCode) {
case 200:
final data = json.decode(response.body);
return Success(Location.fromMap(data));
default:
return Failure(Exception(response.reasonPhrase));
}
} on Exception catch (e) {
return Failure(e);
}
}
Вызывающий код становится очень строгим благодаря pattern matching:
final value = switch (result) {
Success(value: final location) => location.toString(),
Failure(exception: final exception) => 'Something went wrong: $exception',
};
Если вы забудете обработать один из вариантов, компилятор сразу выдаст ошибку non_exhaustive_switch_expression. Ошибку нельзя проигнорировать!
Но есть и подвох. Если у вас длинная цепочка асинхронных вызовов, Result может превратиться в «пирамиду боли».
С try/catch все просто:
Future<int> complexAsyncWork() async {
try {
final result1 = await function1();
final result2 = await function2(result1);
return function3(result2);
} catch (e) {
// обработка в одном месте
}
}
А с Result приходится вручную распаковывать каждый промежуточный результат:
Future<Result<int, Exception>> complexAsyncWork() async {
final result1 = await function1();
if (result1 case Success(value: final value1)) {
final result2 = await function2(value1);
return switch (result2) {
Success(value: final value2) => await function3(value2),
Failure(exception: final _) => result2,
};
} else {
return result1;
}
}
Кода больше, читаемость страдает.
💡 Итог:
try/catch — проще и лучше для длинных цепочек.
Result — заставляет думать об ошибках на этапе компиляции, но требует дисциплины и увеличивает объем кода.
Выбирайте то, что подходит под масштаб вашего проекта. А вы уже перешли на Result или пока доверяете классическим исключениям? 👇
Полную новость читайте здесь.
FlutterPulse — канал о мире Flutter!
#flutter #dart #FlutterPulse #FlutterPulseNews #hardworkerFlutter #errorHandling #dart3