Flutter Pulse
1K subscribers
605 photos
1 file
1.67K links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Вызов нативного кода из Flutter: MethodChannel vs Flutter Native Bridge

Flutter упрощает создание красивых кроссплатформенных приложений, но реальные приложения часто требуют прямого доступа к нативным Android или iOS API. В этой статье вы узнаете, как вызывать нативный код из Flutter с помощью MethodChannel и Flutter Native Bridge.

В статье рассматриваются следующие темы:
Как Flutter вызывает нативный код с помощью MethodChannel
Почему MethodChannel может стать громоздким
Как Flutter Native Bridge предлагает более чистое альтернативное решение
Когда выбирать каждый подход в реальных приложениях

Вы узнаете о преимуществах и недостатках MethodChannel, а также о том, как Flutter Native Bridge упрощает вызов нативного кода без написания boilerplate-кода.

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #nativecode #crossplatform #mobiledevelopment
Жизненный цикл Flutter-приложений: ключевые концепции для технических собеседований

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

Управление жизненным циклом виджетов: initState, build, dispose
Наблюдение за жизненным циклом приложения: WidgetsBindingObserver
Сохранение и восстановление состояния приложения
Избежание утечек памяти: правильная очистка ресурсов

🔹 Использование WidgetsBindingObserver для обработки изменений состояния приложения
🔹 Сохранение данных при переходе приложения в фоновый режим
🔹 Правильное управление ресурсами: контроллеры, слушатели, подписки

Чтобы узнать больше о жизненном цикле Flutter-приложений и подготовке к техническим собеседованиям, читайте полную статью:

🇷🇺 Читать статью на русском

🇬🇧 Read the article in English:
Part 1 Part 2

🌐 Читать оригинал

Все подобные новости ищите по хэштегу #FlutterPulseMedium
FlutterPulse — канал о мире Flutter!

#flutter #dart #flutterpulse #FlutterPulseMedium
👍1
Объявление Vize 1.0.0: Мост Figma-to-Flutter для адаптивного UI

Привет всем! 👋🏽 Сегодня я рад поделиться новостью о выходе Vize 1.0.0! Этот пакет предназначен для упрощения создания адаптивных интерфейсов во Flutter.

Разработчики Flutter знают, как сложно добиться идентичности дизайна в Figma и готового приложения на разных устройствах. 🔹 Фиксированные пиксели, которые "раздуваются" на больших экранах. 🔹 Неправильное масштабирование отступов и текста.

Vize решает эту проблему, предоставляя единый подход к созданию процентных макетов, масштабированию типографики и отступов, а также синтаксис для работы с разными устройствами.

Smart Scaling Extensions: интуитивные расширения для чисел, позволяющие масштабировать размеры и отступы.
Figma-to-Code Precision: возможность инициализировать Vize с размерами фреймов Figma и использовать '.sw' и '.sh' для точного соответствия пикселям Figma.
Device-Aware Logic: обработка "брейкпоинтов" для разных устройств с помощью 'VizeBuilder' и флагов 'isMobile', 'isTablet', 'isDesktop'.
8px Grid Helper: поддержка вертикального ритма с помощью 'sp()' хелпера.

Vize — это легковесный, производительный и готовый к production пакет с нулевым boilerplate-кодом и чистым синтаксисом.

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium
FlutterPulse — канал о мире Flutter!

#flutter #dart #flutterpulse #FlutterPulseMedium
🔥2
Flutter. Настраиваемый виджет клавиатуры

В статье рассматривается процесс создания настраиваемого виджета клавиатуры в Flutter. Автор столкнулся с необходимостью кастомизации существующего пакета flutter_custom_keyboard, но отсутствие гибкости и broken link на GitHub заставили его скопировать код и внести изменения.

Автор улучшил клавиатуру, удалив градиенты и тени, и сделав ее совместимой с различными цветовыми схемами.
👉 Интеграция клавиатуры в приложение была осуществлена с помощью `CustomKeyboard и TextEditingController`.
⚙️ Были решены проблемы с фокусом и курсором при использовании `autofocus: true и пустой функции onTapOutside`.

🔹 В результате получился кастомизированный виджет клавиатуры, соответствующий дизайну приложения.
📌 Код доступен для ознакомления.

Подписывайтесь на канал FlutterPulse, чтобы быть в курсе последних новостей и статей о Flutter! 😊

#flutter #dart #flutterpulse #FlutterPulseMedium

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium
FlutterPulse — канал о мире Flutter!
👍1
Цветовая теория во Flutter с пакетом Colorfull

Вы когда-нибудь задумывались о том, как цвета во Flutter влияют на дизайн вашего приложения? В статье рассматривается цветовая теория и пакет Colorfull, который расширяет возможности работы с цветами.

Цветовая палитра Flutter включает 16 основных цветов, но пакет Colorfull предлагает гораздо больше - 29 основных цветов с 19 оттенками каждый, что дает 551 константу. Кроме того, Colorfull определяет константы для тонов и насыщенности, что дает нам 11020 констант.

Основные преимущества Colorfull:
🔹 29 основных цветов с 19 оттенками каждый
🔹 Константы для тонов и насыщенности
🔹 Класс Swatch для манипуляций с цветами

Colorfull предлагает более предсказуемые цвета и гибкие методы для манипуляций с ними. Например, можно создать более темный или светлый оттенок цвета с помощью getters darker и lighter.

Сравнение цветов Flutter и Colorfull показывает, что цвета Material Design не всегда являются "настоящими" цветами, а скорее художественными интерпретациями. Это может быть как преимуществом, так и недостатком, в зависимости от того, чего вы хотите добиться.

👉 Если вы хотите больше свободы при создании цветовых схем, Colorfull - отличный выбор.

Подписывайтесь на наш канал, чтобы быть в курсе последних новостей о Flutter! 💙

#flutter #dart #flutterpulse #FlutterPulseMedium

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium
FlutterPulse — канал о мире Flutter!
🔥2
Flutter. Лучший онлайн-генератор ColorScheme

В продолжение вчерашней темы: зачем нам нужен генератор ColorScheme? Все просто: вместо генерации ColorScheme при запуске приложения, мы используем статическую ColorScheme, сгенерированную и настроенную заранее.

🔹 Давайте рассмотрим доступные варианты:
Flutter Theme Generator: приятный интерфейс, извлекает цвета из изображения, генерирует всю тему с типографией и компонентами ThemeData, экспортирует в файлы Dart.
⚠️ Однако, есть проблемы с контрастным соотношением, иногда высококонтрастные варианты имеют больше проблем, чем низкоконтрастные.

Material Theme Builder: приятный интерфейс, удобный выбор цвета, импортирует исходный цвет из изображения, не имеет проблем с контрастом, генерирует три варианта ColorScheme для каждой яркости, экспортирует в файлы Dart.
👉 Это лучший генератор ColorScheme на данный момент!

Как использовать Material Theme Builder:
1️⃣ Перейдите на https://material-foundation.github.io/material-theme-builder/
2️⃣ Выберите цвета
3️⃣ Сгенерируйте схему
4️⃣ Скачайте zip и извлеките файлы
5️⃣ Откройте файл theme.dart и скопируйте ColorScheme в статическую переменную в вашем проекте.

Пример использования:
theme: ThemeData(colorScheme: Schemes.mtbYellowBlueGreenLight)

Подписывайтесь на наш канал, чтобы быть в курсе последних новостей о Flutter! 📱

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium
FlutterPulse — канал о мире Flutter!

#flutter #dart #flutterpulse #FlutterPulseMedium
👍1
Flutter и нативная мощь: взаимодействие через каналы

Вы когда-нибудь задумывались, как Flutter-приложения могут использовать нативные API и функции? Всё дело в платформе каналов! 🌟

🔹 Method Channels позволяют выполнять одноразовые запросы к нативному коду.
🔹 Event Channels обеспечивают потоковую передачу данных из нативного кода в Flutter.

Основные выводы:
👉 Используйте обратную доменную нотацию для именования каналов.
👉 Всегда оборачивайте вызовы в try-catch блоки.
👉 Method Channels поддерживают стандартные типы Dart.
👉 Все вызовы методов асинхронны.

⚙️ Event Channels идеальны для непрерывных потоков данных, таких как данные с датчиков или обновления местоположения.

В статье рассмотрены:
Реализация Method Channels для одноразовых запросов.
Использование Event Channels для потоковой передачи данных.
Ограничения и лучшие практики использования платформенных каналов.

Продолжение следует... 😉 В следующей части будут рассмотрены Platform Views, лучшие практики производительности и безопасности, а также тестирование кода платформенных каналов.

Подпишитесь на наш канал, чтобы не пропустить новые статьи и обновления! 💡

#flutter #dart #flutterpulse #FlutterPulseMedium

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium
FlutterPulse — канал о мире Flutter!
🚀 Раскройте нативную мощь во Flutter: Часть 2
Продолжаем серию о нативной интеграции! В первой части мы разобрали Method Channels и Event Channels. Теперь погружаемся в Platform Views — мощный инструмент для встраивания нативных UI-компонентов прямо в ваше приложение.
📌 Когда нужны Platform Views?
🔹 Google Maps SDK
🔹 WebView с платформенными фичами
🔹 Предпросмотр камеры и видео
🔹 Нативная реклама и AR-компоненты
⚙️ Производительность: что важно знать
Platform Views имеют свою цену: они требуют гибридной композиции или виртуальных дисплеев. Используйте их только когда действительно необходимо!
Android: Hybrid Composition (рекомендуется)
iOS: UIKitView (стандартный подход)
⚠️ Virtual Display на Android — только для обратной совместимости
🔧 Как реализовать?
1️⃣ Создайте нативный вид (PlatformView на Android, FlutterPlatformView на iOS)
2️⃣ Реализуйте Factory для создания экземпляров
3️⃣ Зарегистрируйте фабрику в MainActivity.kt / AppDelegate.swift
4️⃣ Используйте AndroidView / UiKitView в коде Flutter
📌 Ограничения, о которых стоит помнить
🔹 Влияние на производительность: синхронизация кадров между Flutter и нативным UI
🔹 Конфликты жестов: настройте gestureRecognizers
🔹 Работа с клавиатурой: фокус и ввод могут вести себя непредсказуемо
🔹 Задержка кадров при сложных анимациях
🔹 Ограничение размера creationParams (~1 МБ)
🎯 Лучшие практики
🔹 Всегда задавайте явные ограничения размера
🔹 Корректно настраивайте обработку жестов
🔹 Освобождайте ресурсы при уничтожении вида
🔹 Используйте гибридную композицию на Android
🔹 Тестируйте с моками — не обязательно запускать на реальном устройстве!
Бонус: Pigeon для типобезопасных каналов
Забудьте о ручном парсинге строк и карт! Pigeon генерирует типобезопасный код для Dart, Kotlin и Swift из одного API-описания.
🧭 Краткий гид по выбору
👉 Method Channels: разовые вызовы, платформенные функции
👉 Event Channels: стриминг данных, сенсоры, обновления в реальном времени
👉 Platform Views: нативный UI, сторонние SDK с интерфейсом
💡 Итог
Настоящая мощь — не в выборе между Flutter и Native, а в умении бесшовно соединять их. Теперь у вас есть все инструменты, чтобы создавать приложения, плавные как Dart и мощные как нативная ОС.
Мост построен. Мощь разблокирована. Что построите вы? 👇

🔗 Ссылки на материалы:
Читать на русском языке
Read in English
Читать оригинал

Все подобные новости ищите по хэштегу #FlutterPulseMedium
FlutterPulse — канал о мире Flutter!
#flutter #dart #flutterpulse #FlutterPulseMedium
👍3
📍 Как интегрировать Google Maps в Flutter-приложение и отобразить текущее местоположение

В этой статье мы шаг за шагом интегрируем Google Maps в Flutter и отобразим реальное текущее местоположение. Это руководство идеально подходит для начинающих и часто используется в приложениях доставки, заказа такси, трекинга и навигации.

🔹 Что мы будем строить:
Отображать Google Map внутри Flutter-приложения
Запрашивать разрешение на доступ к местоположению
Получать текущее GPS-местоположение пользователя
Отображать маркер на текущем местоположении
Перемещать камеру к местоположению пользователя

Для начала необходимо:
1️⃣ Создать ключ API Google Maps
2️⃣ Добавить необходимые зависимости в pubspec.yaml
3️⃣ Настроить Android и iOS

В статье приведен полный рабочий пример Flutter-кода для отображения Google Map с текущим местоположением.

Geolocator используется для получения GPS-местоположения
GoogleMap отображает карту
Marker показывает текущее местоположение
CameraUpdate перемещает камеру к пользователю

🎯 Интеграция Google Maps во Flutter проста, если настройка выполнена правильно. Следуя нескольким шагам, вы можете отображать реальное местоположение пользователя и создавать мощные функции на основе местоположения.

💙 Если вы Flutter-разработчик, это обязательный навык!

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium
FlutterPulse — канал о мире Flutter!

#flutter #dart #flutterpulse #FlutterPulseMedium
👍2
Продвинутая адаптивность во Flutter с advanced_responsive

Вы когда-нибудь сталкивались с проблемой создания адаптивного дизайна во Flutter, который бы работал на множестве устройств — от смартфонов до телевизоров? Теперь это стало проще с пакетом advanced_responsive!

🔹 Пакет не требует сложной настройки и работает из коробки.
🔹 Основан на Material Design 3, используя стандартные breakpoints.
🔹 Включает встроенную систему отступов, которая автоматически масштабируется.
🔹 Предоставляет удобные context extensions для упрощения работы.

Пакет поддерживает плавные переходы между breakpoints.
Автоматически обрабатывает изменения ориентации экрана.
Учитывает настройки доступности системы, такие как масштаб текста.

👉 Миграция на advanced_responsive может быть постепенной, один экран за раз.
👉 Пакет добавляет всего ~50KB к размеру вашего приложения.

В roadmap пакета входят такие интересные функции, как:
⚙️ Анимированные переходы между breakpoints
⚙️ Debug overlay для визуализации текущего breakpoint
⚙️ Поддержка кастомных breakpoints

Оставьте свои отзывы и предложения — автор пакета, Sayed Moataz, открыт к диалогу! 💬

#flutter #dart #flutterpulse #FlutterPulseMedium

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium
FlutterPulse — канал о мире Flutter!
👍3