Flutter Pulse
641 subscribers
399 photos
881 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Привет всем! ✌️ Руслан продолжает свой увлекательный эксперимент по созданию приложения для генерации скетчей во Flutter. В этом выпуске — сразу несколько крутых обновлений! 🚀

Сегодня мы не просто кодим, а погружаемся в вайб и улучшаем наш проект:

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

В видео вы увидите:
🔹 Как работать с библиотекой Liquid Glass для создания красивых UI-эффектов.
🔹 Как правильно выносить код в отдельные виджеты и файлы.
🔹 Как добавить анимации нажатия на кнопки с помощью Implicit Animations.
🔹 Как избежать race condition при множественных запросах.

Если вам интересно продолжение — например, как публиковать такое приложение или есть идеи по улучшению — оставляйте комментарии прямо под видео! 💬

🔗 Ссылка на видео: Vibe coding. Приложение для скетчей с нуля. Часть 3

📩 Связаться с Русланом: https://t.me/ruslan_tsitser

Обязательно посмотрите и другие видео по хэштегу #FlutterPulseYoutube! 🎥

#Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube #Refactoring #CleanCode #FlutterArchitecture #StatefulWidget #ComponentBasedUI #fluttertutorial
Привет, программисты! 🤩 Сегодня я хочу рассказать вам о самом интересном подходе к разработке - TDD (Test-Driven Development) 🚀! Это когда сначала вы пишете тесты, а потом уже код 🤯. Звучит странно, но поверьте, это очень эффективно 📈!

Как это работает? 🤔
▪️ Пишем маленький тест, описывающий нужное поведение 📝
▪️ Запускаем его — тест падает, ведь кода еще нет 🚫
▪️ Реализуем минимальный код, чтобы тест прошел 💻
▪️ Рефакторим код, при этом тесты должны оставаться зелеными 🌿

Пример для понимания 📊
Допустим, нам нужна функция sum, которая складывает два числа 🤔. Сначала пишем тест:

import 'package:flutter_test/flutter_test.dart';

void main() {
test('sum should return correct result', () {
expect(sum(2, 3), 5); // ожидаем 2 + 3 = 5
});
}


Он упадет, так как функции еще нет 🚫. Пишем минимальный код, чтобы тест прошел:

int sum(int a, int b) {
return a + b;
}


Плюсы 🌟
◽️ Код становится надежнее и полностью покрыт тестами 💯
◽️ Рефакторить проще — тесты страхуют 🛡
◽️ Требования становятся понятнее (каждый тест фиксирует ожидание) 📝

Минусы 🌪
◽️ Разработка стартует медленнее ⏱️
◽️ Нужно уметь писать хорошие тесты 🤔
◽️ Сложнее применять к UI или к большим интеграциям 🤯

А как у вас с TDD? 🤔 Хотите узнать больше? 🤓 Читайте полную статью по ссылке: https://t.me/flutterfriendly/234

Не забудьте подписаться на наш канал flutterpulse 📣, чтобы быть в курсе всех последних новостей и обновлений в мире Flutter 🚀 и Dart 🌟! #flutter #dart #flutterpulse 🚀💻
👍3
Полезные конфигурации VSCode для экономии времени

VSCode позволяет запускать код при сохранении или включить автоматическое форматирование... Вот несколько конфигураций, которые сэкономят ваше время!

{
"editor.formatOnSave": true,
"[dart]": {
"editor.formatOnSave": false, // Автоматически форматировать dart файлы (вкл/выкл)
"editor.inlayHints.enabled": "off",
"editor.codeActionsOnSave": {
"source.fixAll": "explicit", // Автоматически исправлять весь код при явном сохранении dart файла
"source.organizeImports": "explicit" // Автоматически исправлять код (добавлять const...) при сохранении dart файла
}
}
}


Отключение отображения типов переменных серым цветом

Оцените новую рубрику и оставьте свои комментарии! 👍💬 Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #VSCode #ProductivityTips #CodingTips #FlutterDev #DartLang
👍2
Обзор пакетов на тему Background Effects, Gradients & Shaders 🌟
Пакет Newton позволяет легко добавлять в ваши приложения эффекты дождя, дыма, взрывов и многое другое, а также реалистичные физические эффекты, такие как гравитация и столкновения. 👍 109 | 📦 8360, последнее обновление было 13 месяцев назад 📅
Пакет particles_flutter - пакет для легкого добавления анимации частиц в проекты Flutter! 🎉 172 лайка, 1940 скачиваний, обновлено 13 месяцев назад 📅
Пакет weather_animation - создай анимированные погодные сцены без использования gif/png! 🌇 125 лайков, 541 скачиваний, обновлено 8 месяцев назад 📅
Пакет O'Mesh Flutter позволяет создавать быстрые и настраиваемые градиенты в формате "свободной формы" для ваших Flutter-приложений. 🎨 8220 скачиваний, версия 0.5.0, обновлена 4 месяца назад 📅
Пакет MeshGradient позволяет создавать красивые, жидкие градиенты в ваших Flutter-приложениях. 🎨 257 лайков, 21 600 скачиваний, обновлено 12 месяцев назад 📅
Пакет flutter_shaders - пакет для упрощения работы с FragmentProgram API в Flutter! 📢 112 лайков, 804 000 скачиваний, v0.1.3, обновлён 12 месяцев назад 📅
Скачайте эти пакеты на pub.dev и улучшите ваши приложения! 🚀
#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #newton #particles_flutter #weather_animation #omeshflutter #meshgradient #flutter_shaders
1🔥1
Самые лучшие обновлённые пакеты за последние 24 часа

very_good_cli 0.27.0 - инструмент командной строки для Dart, позволяющий создавать новые проекты, запускать тесты и управлять пакетами. В новой версии добавлены новые функции, исправлены ошибки и улучшена документация. 👍 Лайки: 697, 📥 Скачиваний: 94.3К
https://pub.dev/packages/very_good_cli

postgres 3.5.8 - пакет для подключения и запросов к базам данных PostgreSQL. В обновлении обновлены ограничения SDK и линты, добавлен новый аутентификатор SASL и оптимизировано захват стека вызовов. 👍 Лайки: 380, 📥 Скачиваний: 70К
https://pub.dev/packages/postgres

record 6.1.2 - аудиорекордер, который позволяет записывать аудио с микрофона в файл или поток на различных платформах. В новой версии обновлены транзитивные зависимости и исправлена документация. 👍 Лайки: 825, 📥 Скачиваний: 380К
https://pub.dev/packages/record

shadcn_ui 0.36.1 - коллекция кастомизируемых UI-компонентов для Flutter. Теперь вы можете настраивать текстовый стиль кнопок с помощью свойства textStyle в ShadButton и ShadButtonTheme. 👍 Лайки: 745, 📥 Скачиваний: 17.2К
https://pub.dev/packages/shadcn_ui

intercom_flutter 9.4.10 - обертка для Intercom Android, iOS и Web-проектов, позволяя интегрировать функции Intercom в свои приложения. В новой версии обновлен Intercom Android SDK до версии 17.2.0. 👍 Лайки: 147, 📥 Скачиваний: 86.1К
https://pub.dev/packages/intercom_flutter

dio_cache_interceptor 4.0.5 - пакет для кэширования HTTP-запросов в приложениях, написанных на Dart. В новой версии обновлены зависимости. 👍 Лайки: 403, 📥 Скачиваний: 201К
https://pub.dev/packages/dio_cache_interceptor

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #very_good_cli #postgres #record #shadcn_ui #intercom_flutter #dio_cache_interceptor
👍1
Привет, программисты! 🤩 Сегодня у нас есть интересная новость о Pull to Refresh - популярном механизме в интерфейсах мобильных приложений 📱. Этот механизм позволяет пользователям обновлять информацию на экране одним простым жестом 🔄. Для тех, кто хочет узнать, как реализовать Pull to Refresh во Flutter-приложении, мы подготовили подробную статью 📄. Вы узнаете о базовом виджете RefreshIndicator, библиотеке pull_to_refresh и даже о полноценной кастомной реализации 🤔. Читайте полную статью по ссылке и не забудьте подписаться на наш канал flutterpulse 📣, чтобы быть в курсе всех последних новостей и обновлений 📊! #flutter #dart #flutterpulse 😊
👍1😐1
Что такое Render Objects?

Render Objects являются основой визуальной системы Flutter. Они используются для отрисовки элементов интерфейса на экране.

Flutter строит пользовательские интерфейсы в три слоя:
1. Widget: конфигурация визуального элемента
2. Element: соединяет виджеты и объекты рендеринга
3. RenderObject: рисует на вашем экране

Настройка RenderObject
Поскольку мы будем рендерить одного потомка, мы расширяем SingleChildRenderObjectWidget.

Render Objects рисуют как CustomPainter, но с гораздо большими возможностями:
- Могут иметь потомков и реагировать на ограничения макета
- Управляют как макетом, так и отрисовкой
- Обрабатывают ограничения макета
- Управляют своим собственным размером

Зачем использовать RenderObject?
Большую часть времени вам не придётся писать RenderObjects самостоятельно. Используйте виджеты!
Но пользовательские RenderObjects дают неограниченную творческую свободу для нестандартных виджетов.


class MyHomePage extends StatelessWidget {
const MyHomePage({super.key});

@override
Widget build(BuildContext context) {
return Scaffold(
body: const Center(
child: CustomStar(
size: 200,
color: Colors.amber,
),
),
);
}
}

class CustomStar extends SingleChildRenderObjectWidget {
final double size;
final Color color;

const CustomStar({
super.key,
required this.size,
required this.color,
});

@override
RenderObject createRenderObject(BuildContext context) {
return RenderCustomStar(size: size, color: color);
}

@override
void updateRenderObject(BuildContext context, RenderCustomStar renderObject) {
renderObject.starSize = size;
renderObject.color = color;
}
}

class RenderCustomStar extends RenderBox {
RenderCustomStar({
required double size,
required Color color,
}) : starSize = size,
color = color;

double starSize;
Color color;

@override
void performLayout() {
size = constraints.biggest;
}

@override
void paint(PaintingContext context, Offset offset) {
final canvas = context.canvas;
canvas.save();
canvas.translate(offset.dx, offset.dy);
// ... рисуйте то, что вам нужно здесь
}
}


Оцените новую рубрику лайком! 👍
Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #mobiledev #renderobjects #flutterrenderobjects #flutterui #flutterdevelopment #codingtips
👍21
Обзор пакетов на тему PDF 📚
Пакет flutter_pdfview позволяет легко интегрировать просмотр PDF-файлов в ваши Flutter-приложения для iOS и Android.
👍 Лайки: 710, 📥 Скачиваний: 177К
Последнее обновление 📅 11 дней назад
https://pub.dev/packages/flutter_pdfview

Пакет syncfusion_flutter_pdf - мощная и высокопроизводительная библиотека для работы с PDF в Flutter, написанная на Dart.
📈 771 лайков, 255К скачиваний!
📦 Версия 31.1.22, обновлена 3 дня назад.
https://pub.dev/packages/syncfusion_flutter_pdf

Пакет pdfx позволяет отображать PDF-документы в Flutter-приложениях для Web, macOS, Android, iOS и Windows.
👍 502 лайка и более 358К скачиваний!
📦 Версия: 2.9.2
https://pub.dev/packages/pdfx

Пакет syncfusion_flutter_pdfviewer позволяет просматривать PDF документы на платформах Android, iOS, Web, Windows и macOS.
👍 1110 лайков, 📥 199К скачиваний!
📦 Версия: 31.1.22
https://pub.dev/packages/syncfusion_flutter_pdfviewer

Пакет pdf позволяет легко создавать PDF документы прямо из вашего Flutter/Dart приложения.
👍 2960 лайков и более 587К скачиваний!
📦 Версия 3.11.3
https://pub.dev/packages/pdf

Пакет flutter_cached_pdfview - пакет для отображения PDF-файлов в Flutter-приложениях для iOS, Android и Web (в разработке).
👍 Лайков: 497, 📥 Скачиваний: 71К
📦 Версия: 0.4.3
https://pub.dev/packages/flutter_cached_pdfview
#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #pdf #flutter_pdfview #syncfusion_flutter_pdf #pdfx #syncfusion_flutter_pdfviewer #flutter_cached_pdfview
Самые лучшие обновлённые пакеты за последние 24 часа

slang 4.9.0 - пакет для создания типобезопасных решений для интернационализации (i18n) в проектах на Dart.
Объединены именованные и неименованные переводы, уменьшено количество логов в CLI.
👍 Лайки: 687, 📥 Скачиваний: 89.4К
https://pub.dev/packages/slang

flutter_inapp_purchase 7.0.1 - плагин для Flutter, который позволяет использовать In-App Purchase.
Добавлен метод isEligibleForIntroOfferIOS.
👍 Лайки: 429, 📥 Скачиваний: 8.5К
https://pub.dev/packages/flutter_inapp_purchase

requests_inspector 5.1.1 - пакет для Flutter, который позволяет логировать API-запросы и отслеживать их состояние.
Теперь можно контролировать начальное состояние представления JSON.
👍 Лайки: 154, 📥 Скачиваний: 4.5К
https://pub.dev/packages/requests_inspector

pdfrx 2.1.23 - плагин для просмотра PDF-файлов в приложениях Flutter.
Исправлена проблема с StringBuffer в Safari, добавлен PdfDocumentRefKey.
👍 Лайки: 258, 📥 Скачиваний: 205К
https://pub.dev/packages/pdfrx

media_kit 1.2.1 - кроссплатформенный видеоплеер и аудиоплеер для Flutter и Dart.
Исправлены различные мелкие проблемы.
👍 Лайки: 799, 📥 Скачиваний: 98.9К
https://pub.dev/packages/media_kit

animated_text_kit 4.3.0 - набор анимаций текста для Flutter.
Добавлены две новые анимации: Scramble Animated Text и Bounce Animated Text.
👍 Лайки: 5.5К, 📥 Скачиваний: 250К
https://pub.dev/packages/animated_text_kit

#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #slang #flutter_inapp_purchase #requests_inspector #pdfrx #media_kit #animated_text_kit
Масштабирование изображения

Flutter предоставляет виджет InteractiveViewer для масштабирования, перемещения и трансформации любого виджета. Вот как можно масштабировать изображение с его помощью:


InteractiveViewer(
key: previewWidgetKey,
transformationController: TransformationController()..value = (Matrix4.identity()..scale(scale)), // масштабирование
scaleEnabled: false,
constrained: false,
panEnabled: false,
clipBehavior: Clip.antiAlias,
child: Image.asset("name_of_your_image.png"), // ваше изображение
)


Как это работает?

Матрица 4x4 используется для трансформации:

[ m00 m01 m02 m03 ]
[ m10 m11 m12 m13 ]
[ m20 m21 m22 m23 ]
[ m30 m31 m32 m33 ]


- Левый верхний 3x3 блок отвечает за вращение и масштабирование.
- Последний столбец (m03, m13, m23) используется для перемещения объектов.
- Нижняя строка используется для перспективных трансформаций (для 3D-эффектов).

Если масштаб < 1, мы приближаем изображение.
Если масштаб > 1, мы отдаляем изображение.

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

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

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #UIUX #CodingTips #AppDevelopment
2👍1
Обзор пакетов на тему Bottom Navigation Bar 📢
Пакеты для создания красивых и настраиваемых нижних панелей навигации в Flutter:
- bottom_bar 2.0.5: создание анимированных нижних панелей навигации 🌟 (133 лайка, 1.2К скачиваний, обновлён 4 месяца назад) 👉 https://pub.dev/packages/bottom_bar
- GoogleNavBar 5.0.7: современный навбар в стиле Google для Flutter 📈 (1610 лайков, 40.5К скачиваний, обновлено 11 месяцев назад) 👉 https://pub.dev/packages/google_nav_bar
- Stylish Bottom Bar: коллекция стильных нижних панелей навигации 🌈 (303 лайка, 6.4К скачиваний, обновлено 6 месяцев назад) 👉 https://pub.dev/packages/stylish_bottom_bar
- AnimatedBottomNavigationBar 1.4.0: анимированное нижнее меню для вашего Flutter-приложения 🌟 (17.5К скачиваний, обновлено 7 месяцев назад) 👉 https://pub.dev/packages/animated_bottom_navigation_bar
- persistent_bottom_nav_bar_v2 6.1.0: настраиваемые нижние панели навигации 🎉 (407 лайков, 15.3К скачиваний, обновлено 3 месяца назад) 👉 https://pub.dev/packages/persistent_bottom_nav_bar_v2
- flutter_floating_bottom_bar 1.3.0: плавно появляющиеся и исчезающие виджеты в нижней части экрана 🌟 (2060 скачиваний, 290 лайков, обновлено 5 месяцев назад) 👉 https://pub.dev/packages/flutter_floating_bottom_bar
#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #bottom_bar #google_nav_bar #stylish_bottom_bar #animated_bottom_navigation_bar #persistent_bottom_nav_bar_v2 #flutter_floating_bottom_bar
👍1