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

flutter_multi_formatter 2.13.9
Плагин для форматирования телефонных номеров, кредитных карт, денег и других данных в приложениях Flutter.
В новой версии добавлена маска телефонного номера для Финляндии.
👍 Лайки: 594, 📥 Скачиваний: 155К
https://pub.dev/packages/flutter_multi_formatter

flutter_inapp_purchase 6.4.3
Плагин для реализации покупок внутри приложения в Flutter, соответствуя спецификации Open IAP.
В новой версии исправлены ошибки, улучшена безопасность типов и добавлена поддержка миллисекундных меток времени для полей даты.
👍 Лайки: 421, 📥 Скачиваний: 6.5К
https://pub.dev/packages/flutter_inapp_purchase

bottom_picker 4.1.1
Плагин для создания красивых и настраиваемых нижних выборщиков в приложениях Flutter.
В новой версии исправлена ошибка и добавлен флаг SafeArea для управления видимостью области безопасности в виджете bottom picker.
👍 Лайки: 343, 📥 Скачиваний: 14.9К
https://pub.dev/packages/bottom_picker

gql_code_builder 0.15.0
Плагин для генерации полезных классов из документов GraphQL и SDL.
В новой версии удален параметр allocator из публичных API, а также улучшена разделение задач между генерацией кода и управлением импортом.
👍 Лайки: 5, 📥 Скачиваний: 223К
https://pub.dev/packages/gql_code_builder

pdfrx 2.1.5
Плагин для просмотра PDF-файлов в приложениях Flutter.
В новой версии исправлена ошибка, связанная с перезагрузкой документа при каждом изменении виджета.
👍 Лайки: 246, 📥 Скачиваний: 216К
https://pub.dev/packages/pdfrx

Flame 1.31.0
Игровой движок на основе Flutter, предназначенный для создания игр.
В новой версии исправлены ошибки, добавлена поддержка моделирования и рендеринга в 3D, а также skeletal анимаций.
👍 Лайки: 2210, 📥 Скачиваний: 86К
https://pub.dev/packages/flame

#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #flutter_multi_formatter #flutter_inapp_purchase #bottom_picker #gql_code_builder #pdfrx #Flame
Работаем с клавиатурными сокращениями

При создании приложений для Flutter Web или Desktop, важно обеспечить удобное управление клавиатурными сокращениями. В этом нам помогут виджеты Shortcuts и Actions! 🚀

Shortcuts - это виджет, который создаёт привязку клавиш к определённым действиям для своих потомков. Всё просто: вы предоставляете карту клавиш и интенций (Intent).

Actions - этот виджет позволяет потомкам вызывать действия, определённые в родителе. Его можно использовать как вместе с Shortcuts, так и отдельно 😉

Давайте рассмотрим пример кода:

// Это просто используется для указания нужного действия
class SelectAllIntent extends Intent {}

@override
Widget build(BuildContext context) {
return Shortcuts(
shortcuts: <LogicalKeySet, Intent>{
LogicalKeySet(LogicalKeyboardKey.control, LogicalKeyboardKey.keyA): SelectAllIntent(),
},
child: Actions(
dispatcher: LoggingActionDispatcher(),
actions: <Type, Action<Intent>>{
SelectAllIntent: SelectAllAction(),
},
child: Builder(
builder: (BuildContext context) => TextButton(
onPressed: Actions.handler<SelectAllIntent>(context, SelectAllIntent()),
child: const Text('SELECT ALL'),
),
),
),
);
}

// Action будет содержать логику, которую вы хотите выполнить при срабатывании клавиатурного сокращения
class SelectAllAction extends Action<SelectAllIntent> {
@override
void invoke(covariant SelectAllIntent intent) {
// делайте то, что вам нужно
}
}



В этом примере мы создаём клавиатурное сокращение Ctrl+A для вызова действия SelectAllAction. Просто и удобно! 👍

Оцените нашу новую рубрику и напишите, о чём бы вы хотели узнать в следующий раз 🤔

Все подобные советы ищите по хэштегу #FlutterPulseTips

#flutter #dart #flutterpulse #FlutterPulseTips #FlutterTips #MobileDev #KeyboardShortcuts #FlutterDev #CodingTips
👍2
Обзор пакетов на тему "Отладка и логирование" (Debugging & Logging)

Talker Flutter 🚀
Пакет для обработки ошибок и логирования в ваших приложениях. 📝
Логируйте действия вашего приложения, перехватывайте и обрабатывайте исключения и ошибки, отображайте оповещения и делитесь отчетами о логах.
👍 Лайки: 569, 📥 Скачиваний: 240К
Последнее обновление 📅: 5 дней назад
https://pub.dev/packages/talker_flutter

Talker
Продвинутый обработчик ошибок и логгер для приложений на Dart и Flutter.
Логирование действий приложения, ловля и обработка исключений и ошибок, показ оповещений и деление отчетов о логах.
👍 Лайки: 753, 📥 Скачиваний: 319К
Последнее обновление 📅: 5 дней назад
https://pub.dev/packages/talker

Logging
Простой и гибкий инструмент для логирования в ваших приложениях на Dart.
Настраивайте уровень логирования, добавляйте обработчики лог-сообщений и многое другое.
👍 Лайки: 945, 📥 Скачиваний: 7.59М
Последнее обновление 📅: 10 месяцев назад
https://pub.dev/packages/logging

Stack Trace
Пакет для Dart, облегчающий работу со стеками вызовов!
Позволяет парсить, инспектировать и манипулировать стеками вызовов, а также форматировать их в читаемый вид.
👍 Лайки: 330, 📥 Скачиваний: 7.02М
Последнее обновление 📅: 8 месяцев назад
https://pub.dev/packages/stack_trace

Logger 📈
Легкий в использовании и расширяемый логгер, который выводит красивые логи.
👍 Лайки: 3580, 📥 Скачиваний: 2.08М
Последнее обновление 📅: 34 дня назад
https://pub.dev/packages/logger

Leak Tracker
Пакет для обнаружения проблем с памятью в приложениях на Dart и Flutter.
👍 Лайки: 167, 📥 Скачиваний: 4.4М
Последнее обновление 📅: 4 месяца назад
https://pub.dev/packages/leak_tracker

#talker #talkerflutter #logging #stacktrace #logger #leaktracker #flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages
Самые лучшие обновлённые пакеты за последние 24 часа

screen_brightness 2.1.7 - Плагин для Flutter, который позволяет контролировать яркость экрана в приложении.
В обновлении: обновлены версии Android SDK, Kotlin и Gradle.
👍 Лайки: 148, 📥 Скачиваний: 141К
https://pub.dev/packages/screen_brightness

Vania 1.0.2+2 - Мощный фреймворк для создания высокопроизводительных веб-приложений на Dart.
Теперь с исправлением проблемы с именами параметров в Postgres для QueryBuilder.
👍 Лайки: 161, 📥 Скачиваний: 338
https://pub.dev/packages/vania

firebase_cached_image 0.9.0 - Пакет для кэширования изображений и файлов из Firebase Cloud Storage в приложениях Flutter.
Теперь он поддерживает работу на веб-платформе (по умолчанию отключено).
👍 Лайки: 35, 📥 Скачиваний: 1.7К
https://pub.dev/packages/firebase_cached_image

appsflyer_sdk 6.17.3 - Пакет для интеграции сервиса AppsFlyer в мобильные приложения, позволяя отслеживать установки, события и покупки.
В новой версии обновлены SDK для Android и iOS, добавлен новый API для проверки покупок, улучшено обработка ошибок и унифицирована структура данных для покупок.
👍 Лайки: 158, 📥 Скачиваний: 681К
https://pub.dev/packages/appsflyer_sdk

screen_brightness_android 2.1.3 - Пакет для управления яркостью экрана в Android-приложениях.
Теперь с обновленными версиями Android SDK, Kotlin и Gradle.
👍 Лайки: 0, 📥 Скачиваний: 176К
https://pub.dev/packages/screen_brightness_android

bdd_widget_test 2.0.0 - Библиотека для тестирования виджетов в стиле BDD (Behavior-Driven Development) с использованием языка Gherkin.
Теперь доступна версия 2.0.0, в которой обновлены зависимости, удалены неиспользуемые зависимости, улучшена обработка исключений в хуках и больше не предоставляются предустановленные шаги.
👍 Лайки: 169, 📥 Скачиваний: 204К
https://pub.dev/packages/bdd_widget_test

#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #screen_brightness #Vania #firebase_cached_image #appsflyer_sdk #screen_brightness_android #bdd_widget_test
🚀 Расширяем возможности Flutter с помощью FFI: Вызываем функции из GO!

Привет, Flutter-энтузиасты! Руслан подготовил 🔥горячее видео, которое откроет вам мир межъязыкового взаимодействия. Узнайте, как заставить Dart и Go работать в тандеме через FFI (Foreign Function Interface)!

👉 Смотрите видео здесь:
Расширяем возможности Flutter с помощью FFI. Вызываем функции из GO

В этом выпуске вы узнаете:
🔹 Как передавать строки между Dart и Go (и обратно!)
🔹 Особенности работы с памятью и Garbage Collector
🔹 Магию горутин (goroutine) и defer
🔹 Практические примеры вызова Go-кода из Flutter-приложений

Почему это важно?
Вы сможете использовать сильные стороны Go (например, многопоточность через горутины) в своих Flutter-проектах! Автор наглядно показывает процесс компиляции, преобразования типов и управления памятью.

💡 В следующих выпусках:
- Работа с Rust, Python и C++ через FFI
- Продвинутые техники оптимизации


🔥 P.S. Увидите, как Go-горутины ускоряют вычисления в сравнении с Dart-изолятами!

#Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube
#FFI #Golang #MobileDevelopment #CrossPlatform

👉 Больше полезного в плейлисте: #FlutterPulseYoutube
Шпаргалка по 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