Flutter Pulse
524 subscribers
345 photos
761 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Создаем собственный экран ошибок

Вам надоело видеть красный или серый экран при возникновении ошибки? 🤔

Это поведение Flutter-приложения по умолчанию. 📱

Примечание: Если вы хотите, чтобы Flutter перестал показывать красный экран в режиме отладки или серый в production-режиме, просто удалите функцию presentError. 💡

Вы можете переопределить виджет ошибки по умолчанию или вообще не показывать ничего... 🤷‍♂️

Хорошим решением может быть перенаправление пользователя и отображение ошибки в виде всплывающего сообщения. 📢



void main() {
FlutterError.onError = (FlutterErrorDetails details) {
FlutterError.presentError(details); // Показываем ошибку
};
runApp(const MyApp());
}

class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);

@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
routes: routes,
initialRoute: 'route1',
builder: (context, widget) {
ErrorWidget.builder = (FlutterErrorDetails errorDetails) {
Widget error = Text('...rendering error... : ${errorDetails.summary}');
if (widget is Scaffold || widget is Navigator) {
error = Scaffold(body: Center(child: error));
}
return error;
};
return widget;
},
);
}
}



Оцените нашу новую рубрику! 👍💬 Оставляйте ваши отзывы в комментариях! 💬👇

Все подобные новости можно найти по хэштегу #FlutterPulseTips

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #AppDevelopment #ErrorHandling #CustomErrorScreen #FlutterTips
👍2
Обзор пакетов на тему Graph Query Language 📚

GraphQL Flutter 🚀
Пакет предоставляет удобный интерфейс для работы с GraphQL API в приложениях на Flutter.
👍 Лайки: 888, 📥 Скачиваний: 252К
Последнее обновление 📅: 3 месяца назад
https://pub.dev/packages/graphql_flutter

gql_code_builder 💻
Пакет позволяет создавать полезные классы из документов *.graphql и SDL с помощью Dart.
👍 Лайки: 5, 📥 Скачиваний: 214К
Последнее обновление 📅: 4 месяца назад
https://pub.dev/packages/gql_code_builder

Normalize 📊
Пакет для нормализации и денормализации данных для GraphQL-операций.
👍 Лайки: 16, 📥 Скачиваний: 444К
Последнее обновление 📅: 7 месяцев назад
https://pub.dev/packages/normalize

Ferry 🚀
Пакет предназначен для работы с GraphQL и предлагает типизированную работу с данными, автоматическую генерацию кода и настройку сети и кэширования.
👍 Лайки: 364, 📥 Скачиваний: 2.8К
Последнее обновление 📅: 7 месяцев назад
https://pub.dev/packages/ferry

GraphQL Codegen 💻
Пакет позволяет сгенерировать Dart-сериализаторы и клиентские хелперы с минимальной конфигурацией.
👍 Лайки: 142, 📥 Скачиваний: 94.1К
Последнее обновление 📅: 47 дней назад
https://pub.dev/packages/graphql_codegen

GraphQL 🚀
Пакет позволяет взаимодействовать с любым GraphQL-сервером.
👍 Лайки: 481, 📥 Скачиваний: 489К
Последнее обновление 📅: 3 месяца назад
https://pub.dev/packages/graphql

#graphql #flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #graphql_flutter #gql_code_builder #normalize #ferry #graphql_codegen
Самые лучшие обновлённые пакеты за последние 24 часа

qs_dart 1.4.3 - библиотека для кодирования и декодирования строк запросов в Dart. Исправлены ошибки и оптимизирована производительность. Теперь работает быстрее и точнее. 👍 Лайки: 10, 📥 Скачиваний: 90.4К. Узнайте больше: https://pub.dev/packages/qs_dart

font_awesome_flutter 4.7.0 - бесплатный набор иконок Font Awesome для Flutter. Добавлены новые функции, включая доступ к иконкам через класс FontAwesomeIcons и галерею приложений. 👍 Лайки: 4820, 📥 Скачиваний: 769К. Узнайте больше: https://pub.dev/packages/font_awesome_flutter

persian_datetime_picker 3.1.1 - пакет для создания персидского датапикера и таймпикера для Flutter. Исправлена несовместимость с Flutter 3.35.1. 👍 Лайки: 285, 📥 Скачиваний: 2.7К. Подробнее: https://pub.dev/packages/persian_datetime_picker

adaptive_theme 3.7.1+2 - пакет для добавления поддержки светлых и темных тем в приложение Flutter. Обновлена директория example/web, повышены минимальные ограничения зависимости shared_preferences и исправлены импорты для Brightness. 👍 Лайки: 926, 📥 Скачиваний: 39.3К. Узнайте больше: https://pub.dev/packages/adaptive_theme

flutter_inapp_purchase 6.2.0 - пакет для покупок внутри приложения. Теперь соответствует спецификации Open IAP, включает единый токен покупки и улучшена обработка транзакций. 👍 Лайки: 419, 📥 Скачиваний: 5.7К. Подробнее: https://pub.dev/packages/flutter_inapp_purchase

auto_route 0.1.0 - пакет для навигации во Flutter. Использует сильную типизацию при передаче аргументов, упрощает глубокие ссылки и генерацию кода для настройки маршрутов. 👍 Лайки: 3310, 📥 Скачиваний: 164К. Подробнее: https://pub.dev/packages/auto_route

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #qs_dart #font_awesome_flutter #persian_datetime_picker #adaptive_theme #flutter_inapp_purchase #auto_route
😁1
Clean Arch + Cubit + Reactor 🚀.
Узнайте, как оптимизировать управление состоянием во Flutter с помощью Clean Architecture и Cubit! 🤩
В этой статье вы узнаете, как уменьшить сложность кубитов, разбивая их на более мелкие, однозначные части! 📈
И также, новая концепция управления данными в приложениях: реактивный репозиторий и кубиты! 📊
Узнайте, как решить проблему обновления данных в кубитах без привязки к UI-слою! 📱
И, наконец, Упрощение архитектуры с помощью Reactor и Cubit! 🚀
Читайте о том, как разделить ответственность и автоматизировать синхронизацию в вашем приложении! 🤝
Читать здесь 📚
#flutter #dart #flutterpulse 🚀💻
1👎1
🚀 Расширяем возможности Flutter с помощью FFI: Магия работы с памятью на C!

Привет, Flutter-энтузиасты! Готовы погрузиться в глубины нативной интеграции? 🔍 Наш коллега Руслан Цицер выпустил мощное видео, которое раскрывает тайны взаимодействия Dart и C через FFI. Это не просто теория — это ключ к высокопроизводительным решениям!

🔥 Что вас ждет в видео:
👉 🧠 Основы работы с памятью: стек, куча, указатели — объясняем на пальцах, почему это критично для FFI.
👉 📦 Передача строк между Dart и C: как избежать утечек памяти и преобразовывать данные без боли.
👉 ⚙️ Автоматизация рутины: простые скрипты на Bash/Makefile для сборки и генерации кода.
👉 💡 Реальные примеры: разбор C-кода, работа с malloc, free и нативными библиотеками.

❗️ Важно: Руслан наглядно показывает, как:
- Корректно освобождать память, чтобы приложение не "падало".
- Использовать Utf8 для преобразования строк.
- Избегать Race Condition и утечек в долгоживущих приложениях.


💬 "Это база для тех, кто хочет запускать Go, Rust или C++ код в Flutter!" — Руслан анонсирует продолжение темы в следующих выпусках.

👉 Не пропустите! Подписывайтесь на канал автора, жмите 🔔 колокольчик и лайк 👍, если хотите больше глубинки. Пишите вопросы в комментариях — Руслан активно отвечает!

💡 Ищете другие полезные ролики? Загляните по хэштегу #FlutterPulseYoutube!

#Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube #FFI #CleanCode #Refactoring
Создаём круглый индикатор прогресса
Привет, подписчики! 👋 Сегодня мы рассмотрим интересный Flutter-трюк, который поможет вам создать круглый индикатор прогресса с помощью ClipRRect 🌟

Вы можете использовать виджет ClipRRect, чтобы создать круглый индикатор прогресса. Для этого нужно обернуть LinearProgressIndicator в ClipRRect и задать ему радиус границы 🌈



ClipRRect(
borderRadius: const BorderRadius.all(Radius.circular(10)),
child: LinearProgressIndicator(
minHeight: 14,
value: progress, // текущий прогресс
color: Colors.red, // цвет прогресса
backgroundColor: Colors.white, // фон индикатора
),
),



В этом примере мы используем LinearProgressIndicator с minHeight равным 14 и оборачиваем его в ClipRRect с радиусом 10, чтобы получить круглый индикатор прогресса 🔴⚪️

Оцените новую рубрику и напишите в комментариях, какие темы вам интересны 🔥

Все подобные новости можно найти по хэштегу #FlutterPulseTips 🤓
#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #UIUX #ProgressIndicator #FlutterTips #CodingTricks #AppDevelopment
👍2
Обзор пакетов на тему "Вкладки" (Tab) для Flutter

📦 CustomSlidingSegmentedControl - позволяет гибко настроить виджет для отображения контролов. Вы можете добавить цвет, скорость, размер, начальное значение, анимацию и многое другое.
👍 Лайки: 206, 📥 Скачиваний: 65.5К
Последнее обновление 📅: 7 месяцев назад
https://pub.dev/packages/custom_sliding_segmented_control

📦 Scrollable List Tab Scroller - синхронизируйте список прокрутки с вкладками и настраивайте их по своему желанию.
👍 Лайки: 162, 📥 Скачиваний: 14.6К
Последнее обновление 📅: 2 месяца назад
https://pub.dev/packages/scrollable_list_tab_scroller

📦 Flutter Advanced Segment - позволяет создавать полностью настраиваемые сегменты с множеством свойств.
👍 Лайки: 111, 📥 Скачиваний: 5.8К
Последнее обновление 📅: 3 месяца назад
https://pub.dev/packages/flutter_advanced_segment

📦 Tabbed View - классический компонент вкладок в стиле Desktop, с поддержкой кастомизации тем.
👍 Лайки: 115, 📥 Скачиваний: 1.9К
Последнее обновление 📅: 2 дня назад
https://pub.dev/packages/tabbed_view

📦 Extended Tabs - позволяет создавать вкладки с прокруткой предков или дочерних вкладок при превышении текущей прокрутки.
👍 Лайки: 163, 📥 Скачиваний: 4.2К
Последнее обновление 📅: 3 месяца назад
https://pub.dev/packages/extended_tabs

📦 Buttons TabBar - позволяет создавать интерактивные и настраиваемые вкладки для ваших приложений.
👍 Лайки: 432, 📥 Скачиваний: 15.7К
Последнее обновление 📅: 7 месяцев назад
https://pub.dev/packages/buttons_tabbar

#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #CustomSlidingSegmentedControl #ScrollableListTabScroller #FlutterAdvancedSegment #TabbedView #ExtendedTabs #ButtonsTabBar
Привет, программисты! 🤩 Я рад поделиться с вами интересной фичей из мира Flutter и Dart! 📱💻 Сегодня мы поговорим о том, как установить релизное приложение на iOS 📈.

Для начала вам понадобится файл с разрешением .app или .ipa. Для этого можно собрать iOS привычным способом, используя команды Flutter, такие как flutter build ios --release или flutter build ipa, или же архивировать через Xcode 📁.

Если вы выбрали сборку через консоль, вам нужно будет найти файл по пути /build/ios/archive/Runner.xcarchive, нажать правой кнопкой мыши и выбрать “Показать содержимое пакета”, а затем найти файл по пути /Products/Applications/Runner.app 📂.

Если вы используете Xcode, то из Organizer нужно нажать правой кнопкой мыши на архив, выбрать “Show in Finder”, и затем найти файл, как и в случае с архивом из консоли 📊.

Далее, откройте Xcode, перейдите по пути Windows -> Devices and Simulators -> Ваше устройство, и добавьте файл в графа Installed Apps 📈. Можно либо перетащить его, либо нажать на плюсик и выбрать из системы 📁.

После этого нужно немного подождать завершения установки ⏱️. Обратите внимание, что устройство должно быть зарегистрировано в App Store Connect на аккаунт, которому принадлежит приложение 📝.

Хотите узнать больше о Flutter и Dart? 🤔 Тогда стоит подписаться на канал flutterpulse 📣, где вы найдете много интересных новостей и уроков 📚!

А полная новость по ссылке находится здесь 📄

#flutter #dart #flutterpulse 🚀💻📱
Самые лучшие обновлённые пакеты за последние 24 часа

flutter_inapp_purchase 6.3.0
Плагин для Flutter, который позволяет использовать покупки внутри приложения. Критические исправления багов, улучшение соответствия OpenIAP и расширение тестового покрытия.
👍 Лайки: 419, 📥 Скачиваний: 5.8К
https://pub.dev/packages/flutter_inapp_purchase

quran 1.4.1
Пакет для работы с текстом Корана, включая получение аудио URL, деталей страниц, джуз, суры, аятов и места откровения.
В новой версии исправлены проблемы с анализом.
👍 Лайки: 281, 📥 Скачиваний: 921
https://pub.dev/packages/quran

go_router 16.2.0
Пакет для декларативного маршрутизации в Flutter, обеспечивая удобный, основанный на URL, API для навигации между разными экранами.
Теперь доступны RelativeGoRouteData и TypedRelativeGoRoute. Минимальная поддерживаемая версия SDK обновлена до Flutter 3.29/Dart 3.7.
👍 Лайки: 5.4К, 📥 Скачиваний: 1.9М
https://pub.dev/packages/go_router

dwds 25.0.1
Пакет для обеспечения совместимости инструментов разработки с приложениями Dart Web, запускаемыми в Chrome.
В новой версии исправлена ошибка, вызывающая крах при горячем перезапуске с изменениями.
👍 Лайки: 30, 📥 Скачиваний: 3.9М
https://pub.dev/packages/dwds

flutter_soloud
Низкоуровневый аудио плагин для Flutter. Теперь доступна новая версия.
Плагин обеспечивает низкую задержку и продвинутые функции, включая 3D позиционирование аудио, бесшовное循ирование и потоковое воспроизведение.
👍 Лайки: 437, 📥 Скачиваний: 21.7К
https://pub.dev/packages/flutter_soloud

sqflite_android 2.4.2+2
Реализация плагина sqflite для Android. Теперь требует компиляции под SDK 36 и Dart 3.9.
👍 Лайки: 1, 📥 Скачиваний: 1.9М
https://pub.dev/packages/sqflite_android

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #flutter_inapp_purchase #quran #go_router #dwds #flutter_soloud #sqflite_android
Скачивание файла из Firebase и отслеживание прогресса

Привет, разработчики Flutter! 👋 Сегодня мы рассмотрим полезный совет по загрузке файлов из Firebase Storage и отслеживанию прогресса загрузки. 📈

Код для скачивания файла:


Stream<TaskSnapshot> downloadFile(String path) async* {
if (await Permission.storage.request().isDenied) {
throw "Вы должны принять разрешение на запись";
}
var fileRef = storage.ref().child(path);
var fileName = fileRef.name;
Directory directory;
if (Platform.isAndroid) {
directory = Directory("/storage/emulated/0/Download");
} else {
directory = (await getExternalStorageDirectory())!;
}
final File destinationFile = File('${directory.path}/$fileName');
if (destinationFile.existsSync()) {
destinationFile.deleteSync();
}
destinationFile.createSync();
var task = fileRef.writeToFile(destinationFile);
yield* task.asStream();
}



Ключевые моменты:
- Проверка разрешений: Используем permission_handler для проверки разрешения на доступ к хранилищу.
- Сохранение в папку загрузок: Файл сохраняется в папку "Download" на Android.
- Замена существующего файла: Если файл уже существует, он будет удален и заменен новым.
- Отслеживание прогресса: Используем yield* для передачи событий из задачи в наш поток, что позволяет отображать прогресс загрузки в приложении.

Чтобы получить текущий прогресс, можно использовать:


var progress = task.bytesTransferred / task.totalBytes * 100;



Оцените нашу новую рубрику советов по Flutter! 👍 Ваши отзывы помогут нам сделать ее еще лучше. 💬

Все подобные советы вы можете найти по хэштегу #FlutterPulseTips.

#flutter #dart #flutterpulse #FlutterPulseTips #Firebase #MobileDevelopment #FlutterTips #AppDevelopment #CodingTips
👍1
Внимание всем разработчикам на Flutter и Dart! 🚀💻
У нас есть потрясающая новость! 🤩 Только что вышел релиз от Стаса Ильина Talker v5.0 ⚡️, и это событие не оставит никого равнодушным! 💪
После более года интенсивной разработки и активной поддержки со стороны сообщества, Talker сделал очередной шаг к тому, чтобы стать самым удобным пакетом для работы с журналами вашего приложения! 📝
Одной из ключевых проблем в предыдущей версии была жесткая привязка плагинов к основному пакету. Но теперь все изменилось! 🔄
Вместо enum TalkerLogType, который ранее использовался для идентификации логов, теперь используются ключи с типом String. Это сделало процесс создания собственных библиотек на основе Talker гораздо проще и более гибким! 🌟
Теперь в TalkerScreen вы можете включать и выключать логирование определенных типов логов прямо в UI! 📊 Например, вы можете временно отображать только ответы сервера в консоли. Это невероятно удобно! 🤩
Хотите узнать больше о механизме работы и всех нововведениях? 🤔 Тогда ждите новых публикаций на этой неделе! 📅
Не забудьте обновиться и начать использовать Talker, если еще не делали этого! ❤️ И, конечно, ставьте лайки на pubdev и GitHub, чтобы поддержать развитие проекта! 🙏
Узнайте все подробности здесь:
И не забудьте подписаться на flutterpulse, чтобы быть в курсе всех последних новостей и обновлений из мира Flutter и Dart! 📱 #flutter #dart #flutterpulse 💻🔥
3👍1