Flutter Pulse
473 subscribers
290 photos
602 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Рисуем текст на холсте
Холст - это интерфейс для рисования непосредственно на экране 🤩

В этом совете мы рассмотрим, как использовать CustomPaint и TextPainter для рисования текста на холсте во Flutter. Это полезно для создания пользовательских виджетов и сложных визуализаций 🎨


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

// Класс виджета, который рисует текст на холсте
class TextOnCanvas extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Текст на холсте')),
body: CustomPaint(
painter: TextPainterExample(),
child: Container(),
),
);
}
}

// Класс, который расширяет CustomPainter для рисования текста
class TextPainterExample extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
// Определяем стиль текста
final textStyle = TextStyle(
color: Colors.black,
fontSize: 40,
);

// Создаем TextSpan с текстом и стилем
final textSpan = TextSpan(
text: 'Привет, холст!',
style: textStyle,
);

// Создаем TextPainter для рисования текста
final textPainter = TextPainter(
text: textSpan,
textDirection: ui.TextDirection.ltr,
);

// Вычисляем размер текста
textPainter.layout();

// Определяем позицию, где будет нарисован текст
final offset = Offset(50, 100);

// Рисуем текст на холсте в указанной позиции
textPainter.paint(canvas, offset);
}

@override
bool shouldRepaint(CustomPainter oldDelegate) {
return false;
}
}


Оцените новую рубрику и напишите в комментариях, какие темы вам наиболее интересны! 💬👍
Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #UIUX #CodingTips
Обзор пакетов на тему "Инструменты разработчика" (Developer Tools)

Flutter Flavorizr 🍰
Пакет для создания flavors в ваших Flutter-приложениях.
👍 Лайки: 890, 📥 Скачиваний: 88К
Последнее обновление 📅: 41 день назад
https://pub.dev/packages/flutter_flavorizr

build_runner 🏃‍♂️
Пакет для автогенерации и слежения за файлами в проектах на Dart.
👍 Лайки: 2.2К, 📥 Скачиваний: 4.51М
Последнее обновление 📅: 5 дней назад
https://pub.dev/packages/build_runner

package_config 📦
Утилита для работы с конфигурационными файлами Dart-пакетов.
👍 Лайки: 11, 📥 Скачиваний: 9.14М
Последнее обновление 📅: 3 месяца назад
https://pub.dev/packages/package_config

analyzer 🔍
Пакет для статического анализа кода для инструментов и IDE.
👍 Лайки: 287, 📥 Скачиваний: 11.9М
Последнее обновление 📅: 40 часов назад
https://pub.dev/packages/analyzer

flutter_dotenv 🌟
Загрузите конфигурацию во время выполнения из файла .env и используйте ее во всей вашей Flutter-приложении.
👍 Лайки: 2.05К, 📥 Скачиваний: 655К
Последнее обновление 📅: 8 месяцев назад
https://pub.dev/packages/flutter_dotenv

meta 📈
Утилита для улучшения анализа кода и генерации JavaScript!
👍 Лайки: 456, 📥 Скачиваний: 10.8М
Последнее обновление 📅: 44 дня назад
https://pub.dev/packages/meta

#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #build_runner #package_config #analyzer #flutter_dotenv #meta #flutter_flavorizr
Самые лучшие обновлённые пакеты за последние 24 часа

file_saver 0.3.0 - пакет для сохранения файлов на различных платформах, включая Android, iOS, Web, Windows, MacOS и Linux. Убраны ошибки и добавлена поддержка метода saveAs для Windows. 👍 Лайки: 431, 📥 Скачиваний: 164К. https://pub.dev/packages/file_saver

location_web 1.0.0 - пакет для реализации геолокации на веб-платформе. Пакет набрал 9 лайков и более 251К скачиваний. 👍 Лайки: 9, 📥 Скачиваний: 251К. https://pub.dev/packages/location_web

flutter_js 0.8.5 - пакет для использования движка JavaScript в приложениях Flutter. Исправлены утечки памяти в QuickJS. 👍 Лайки: 327, 📥 Скачиваний: 102К. https://pub.dev/packages/flutter_js

pro_image_editor 10.1.1 - виджет для редактирования изображений в приложениях Flutter. Исправлена проблема с жестами, добавлен новый виджет GestureInterceptor. 👍 Лайки: 401, 📥 Скачиваний: 21.3К. https://pub.dev/packages/pro_image_editor

story_view 0.9.0 - пакет для создания историй в стиле WhatsApp и Instagram в ваших приложениях. Пакет имеет 781 лайков и 18.4К скачиваний. 👍 Лайки: 781, 📥 Скачиваний: 18.4К. https://pub.dev/packages/story_view

#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #file_saver #location_web #flutter_js #pro_image_editor #story_view
🚀 Flutter-архитектура: как избежать хаоса в проектах? Смотрите лекцию от Яндекс Маркета!

Привет, коллеги! Только что наткнулся на 🔥горячее видео, которое перевернёт ваше представление о проектировании приложений. Лектор Саша из команды Яндекс Маркета на Школе мобильной разработки 2025 разложил по полочкам всё, о чем мы часто спорим в кулуарах.

Почему стоит посмотреть?
▫️ Архитектура ≠ холивар — автор честно предупреждает: нет "серебряной пули", но есть работающие принципы
▫️ SOLID, DRY, KISS — не просто буквы, а инструменты выживания в больших проектах
▫️ State-менеджмент на практике — сравнение 6 подходов (от setState до Riverpod) на живом ToDo-приложении
▫️ Ошибки, которые дорого стоят — например, почему циклические зависимости в DI могут "убить" ваше приложение

💡 Особенно зацепило:
"Архитектура — это про будущее. Если думать только о 'здесь и сейчас', бизнес вас быстро заменит". Автор показывает, как проектировать системы, которые:
Легко масштабируются
Позволяют быстро добавлять фичи
Упрощают онбординг новых разработчиков

📽 Полная версия лекции с живыми примерами кода, сравнением Bloc vs Provider и демкой работы с DI:
Flutter-архитектура — ШМР Flutter 2025

👉 P.S. Хотите больше практики? Ищите другие полезные ролики по хэштегу #FlutterPulseYoutube в нашем канале! Подписывайтесь, чтобы не пропустить разборы сложных кейсов.

#Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube

🔍 Детали видео: Лекция разделена на 2 части (теория + практика), упоминаются Clean Architecture, MVC/MVVM, Dependency Injection, Backend-Driven UI. Автор акцентирует: слепое следование SOLID так же вредно, как и полный хаос в коде.
Приостановка потока, когда нет подписчиков

Не теряйте события, когда некому их слушать 😉

В Flutter и Dart при работе с потоками (Stream) важно уметь правильно управлять подпиской и событиями. Один из полезных советов - приостанавливать поток, когда нет подписчиков, чтобы не терять важные события.

Пример реализации:



// Этот класс отвечает за рассылку уведомлений приложению
// Он также отвечает за прослушивание уведомлений
class AppEventsDispatcher {
final StreamController<AppEvent> _controller;
late final Stream<AppEvent?> _stream;

Stream<AppEvent?> get stream => _stream;

final List<AppEvent> _onNotificationEventsSubscriber;

AppEventsDispatcher()
: _onNotificationEventsSubscriber = [],
_controller = StreamController() {
_stream = _controller.stream.asBroadcastStream(
onCancel: (c) => c.pause(),
onListen: (el) {
if (el.isPaused) {
el.resume();
}
},
);
}

void dispose() {
_onNotificationEventsSubscriber.clear();
_controller.close();
}

void publish(AppEvent event) {
_controller.add(event);
}
}

final dispatcher = AppEventsDispatcher();
// Публикуем событие
dispatcher.publish(AppEvent('Новое уведомление'));
// Ждём немного
await Future.delayed(Duration(seconds: 1));
// Подписываемся на поток
final subscription = dispatcher.stream.listen((event) {
print('Получено событие: $event');
// так как мы приостановили поток, мы получим события
});



В этом примере мы создаём класс AppEventsDispatcher, который управляет потоком событий AppEvent. Когда нет подписчиков, поток приостанавливается, а при появлении нового подписчика - возобновляется с последнего события.

👍 Оцените нашу новую рубрику FlutterPulseTips и напишите в комментариях, что хотите видеть в следующих постах! 🤔

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

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDev #StreamManagement #AppDevelopment #CodingTips
Обзор пакетов на тему Markdown 📚

Flutter Markdown Plus - рендерер Markdown для Flutter! 📝
Поддерживает оригинальный формат Markdown, но не поддерживает встроенный HTML.
👍 Лайки: 43, 📥 Скачиваний: 29.1К
Последнее обновление 📅: 3 месяца назад
https://pub.dev/packages/flutter_markdown_plus

QuickText - упрощайте форматирование текста с помощью markdown-подобного синтаксиса! 💻
Применяйте стили, такие как жирный, курсив, подчеркивание, зачеркивание, цвет и ссылки, прямо в строке.
👍 Лайки: 5, 📥 Скачиваний: 43
Последнее обновление 📅: 7 месяцев назад
https://pub.dev/packages/quick_text

Markdown Latex - отображайте LaTeX в markdown! 📝
Идеально для создания научных и технических документов.
👍 Лайки: 32, 📥 Скачиваний: 3.1К
Последнее обновление 📅: 9 месяцев назад
https://pub.dev/packages/flutter_markdown_latex

markdown_widget - легко отображайте markdown-текст в ваших приложениях Flutter! 📱
Поддерживает таблицу содержания, подсветку кода и работу на всех платформах.
👍 Лайки: 348, 📥 Скачиваний: 612
Последнее обновление 📅: 2 месяца назад
https://pub.dev/packages/markdown_widget

Markdown - парсите Markdown в HTML на клиенте и сервере! 📝
Поддерживает различные расширения Markdown, включая CommonMark и GitHub Flavored Markdown.
👍 Лайки: 312, 📥 Скачиваний: 2.3М
Последнее обновление 📅: 5 месяцев назад
https://pub.dev/packages/markdown

GPT Markdown & LaTeX - рендеринг Markdown и LaTeX контента в ваших приложениях! 📦
Поддерживает широкий спектр функций, включая списки, таблицы, ссылки и многое другое.
👍 Лайки: 161, 📥 Скачиваний: 15К
Последнее обновление 📅: в течение последнего часа
https://pub.dev/packages/gpt_markdown

#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #markdown #flutter_markdown_plus #quick_text #flutter_markdown_latex #markdown_widget #gpt_markdown
Самые лучшие обновлённые пакеты за последние 24 часа

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

dotted_border 3.1.0
Обновление пакета dotted_border до версии 3.1.0! Теперь вы можете добавлять анимацию к границам и размещать дочерние элементы поверх границы. Пакет имеет более 743 000 скачиваний и 1550 лайков.
👍 Лайки: 1550, 📥 Скачиваний: 743К
https://pub.dev/packages/dotted_border

Retrofit 4.5.0
Пакет Retrofit используется для генерации клиента Dio с помощью source_gen и вдохновлен Chopper и Retrofit. Он позволяет легко создавать RESTful API-клиенты с поддержкой типов и аннотаций.
В новой версии 4.5.0 добавлена аннотация `@BodyExtra` для добавления отдельных полей к телу запроса, что повышает гибкость и расширяемость.
👍 Лайки: 1970, 📥 Скачиваний: 497К
https://pub.dev/packages/retrofit

retrofit_generator 9.3.0
Обновление пакета retrofit_generator до версии 9.3.0! Теперь доступна аннотация @BodyExtra для добавления отдельных полей в тело запроса без определения полных классов DTO. Также добавлена поддержка динамических полей и возможность управления поведением flatten объектов.
👍 Лайки: 177, 📥 Скачиваний: 372К
https://pub.dev/packages/retrofit_generator

mqtt_client 10.10.0
Пакет mqtt_client - это клиент для протокола MQTT, позволяющий осуществлять подключение к серверам MQTT и обмениваться сообщениями. Он поддерживает все уровни QOS, keep alive и синхронное подключение.
В новой версии добавлена функция пакетных подписок.
👍 Лайки: 496, 📥 Скачиваний: 68.9К
https://pub.dev/packages/mqtt_client

flutter_chat_ui 2.6.1
Обновление пакета flutter_chat_ui до версии 2.6.1!
Теперь доступны новые функции: sendButtonDisabled и sendButtonHidden.
👍 Лайки: 1500, 📥 Скачиваний: 76.2К
https://pub.dev/packages/flutter_chat_ui

math_expressions 2.2.0
Обновление пакета math_expressions до версии 2.2.0! Теперь доступна функция, связанная с обработчиком Dart, включая поддержку парсера.
👍 Лайки: 359, 📥 Скачиваний: 54.7К
https://pub.dev/packages/math_expressions

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #dotted_border #Retrofit #retrofit_generator #mqtt_client #flutter_chat_ui #math_expressions #FirebaseMessagingPlugin
🚀 Глубокое погружение в Router и диплинки Flutter 2025!

Привет, Flutter-энтузиасты! 👋 Только что наткнулся на 🔥суперполезное видео от Шакири Аваса (Flutter-разработчик из Яндекс Pro), которое перевернет ваше представление о навигации в приложениях. Если вы хотите освоить Router и диплинки — это must-watch!

📺 О чём видео?
👉 Router vs Navigator 1.0: Почему старый подход устарел и как Router решает его проблемы.
👉 Диплинки на практике: Настройка глубоких ссылок под Android, iOS и особенности Flutter Web 🌐.
👉 Nested Navigation: Как сохранять состояние вложенных экранов (например, в табах).
👉 Guard-логика: Защита роутов для авторизованных пользователей.
👉 Реальный кейс: Пошаговая реализация приложения с маршрутизацией «под ключ».

💡 Почему стоит посмотреть?
«Разбор такой детализированный, что даже новички поймут, а опытные найдут нюансы для своих проектов». Автор не просто объясняет теорию — он показывает код, тестирует решения и делится фишками, которых нет в документации!

🔗 Смотрите видео здесь:
Router и прямые ссылки в приложении — ШМР Flutter 2025

👇 Не пропустите!
Это ваш шанс прокачать скиллы в навигации — тема критически важная для сложных приложений. После просмотра вы сможете:
✔️ Настраивать диплинки за минуты,
✔️ Оптимизировать переходы между экранами,
✔️ Избежать типичных ошибок в Router.

👉 Подписывайтесь на Flutter Pulse, чтобы не пропустить новые полезные материалы! Исследуйте другие видео по хэштегу #FlutterPulseYoutube.

#Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube
📢 Сенсация в мире Dart: Static Enough Metaprogramming! 🥳
Появилась новая фича в Dart, которая обещает революционизировать процесс разработки! 🤩
После долгих лет ожидания, команда Dart наконец-то решила проблему с макросами и рефлексией. 🙌
Новая спецификация, предложенная Славой Егоровым, позволяет использовать статическое метапрограммирование в Dart! 🚀

Что это значит? 🤔
Это значит, что разработчики смогут использовать часть Dart-кода, который ранее был невозможен в константных выражениях (циклы, условные операторы, списки и таблицы/карты). 📈
Новая фича предлагает введение аннотации @konst, указывающей компилятору выполнить вычисления на этапе компиляции. 📊
Это открывает новые возможности для разработчиков, такие как генерация кода, оптимизация производительности и многое другое! 🚀

Примеры применения 📝
JSON-сериализация, генерация метода hashCode и operator==, или автоматическая маршрутизация запросов можно будет реализовать прямо внутри Dart без дополнительного кодогена! 📈
Мixin DataClass, например, может быть реализован с помощью новой фичи, что упростит разработку и улучшит производительность! 📊

Хотите узнать больше? 🤔
Читайте полную новость здесь:📄
И не забудьте подписаться на канал flutterpulse, чтобы быть в курсе всех последних новостей и обновлений в мире Flutter и Dart! 📱
#flutter #dart #flutterpulse 🚀
Автоматическое перерисовывание холста с помощью ChangeNotifier

Привет, подписчики! 👋 Сегодня мы рассмотрим полезный совет по Flutter, который поможет вам оптимизировать процесс отрисовки пользовательского интерфейса. 📱💻

Вы когда-нибудь сталкивались с ситуацией, когда ваш CustomPainter не обновлялся автоматически при изменении данных? 🤔 Это может быть раздражающим, особенно когда вы работаете с динамическим содержимым. Но не волнуйтесь, у нас есть решение! 😊

Использование ChangeNotifier для автоматического обновления

Один из способов обеспечить автоматическое перерисовывание холста — использовать ChangeNotifier. Давайте разберемся, как это работает: 🔍



class WaveModel extends ChangeNotifier {
// ...
void notify() => notifyListeners(); // Уведомляем слушателей об изменении
}

class WorldPainter extends CustomPainter {
final WaveModel model;

WorldPainter({required this.model}) : super(repaint: model);

@override
bool shouldRepaint(covariant WorldPainter oldDelegate) => false;
}



В этом примере WaveModel расширяет ChangeNotifier и уведомляет своих слушателей при вызове метода notify(). 🔔

WorldPainter, который расширяет CustomPainter, принимает WaveModel в качестве параметра и передает его в конструктор суперкласса с параметром repaint. 🔄 Это означает, что всякий раз, когда WaveModel уведомляет своих слушателей, WorldPainter будет перерисовываться автоматически. 🎨

Преимущества этого подхода

* Автоматическое обновление холста при изменении данных 🔄
* Упрощение кода за счет использования встроенных механизмов Flutter 📚
* Повышение производительности приложения за счет оптимального управления отрисовкой 🚀

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

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

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #UIUX #CodingTips #AppDevelopment