Flutter Pulse
1.01K subscribers
581 photos
1 file
1.59K links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
7 Скрытых виджетов Flutter, которые сэкономят тебе часы разработки!

Ты когда-нибудь задумывался, как опытные разработчики создают такие сложные и красивые интерфейсы во Flutter всего за несколько строк кода? 🤔

В этой статье ты узнаешь о 7 скрытых виджетах Flutter, которые могут значительно упростить твою работу. Ты познакомишься с такими приёмами, как добавление pinch-zoom и drag-and-drop к любому виджету с помощью InteractiveViewer, создание анимированных списков с SliverAnimatedList, и реализация эффекта размытия с BackdropFilter. Кроме того, ты узнаешь, как использовать CustomScrollView и SliverFillRemaining, чтобы создать гибкие макеты, и как добавить нативный стиль выбора текста с RawMagnifier. Также в статье описаны AnimatedPositionedDirectional для RTL-дружественных анимаций и ShaderMask для добавления градиентных эффектов к любым виджетам.

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #productivity #ui #ux #widgets #programming #coding #softwaredevelopment
🔥2🤝1
Удалите эти 7 вещей из вашего проекта Flutter, прежде чем они убьют ваше приложение!

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

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

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

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #programming #softwaredevelopment
😁1
Разбираемся с 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
Настройка окружений для Flutter-приложений: пошаговое руководство

Вы когда-нибудь сталкивались с проблемой управления несколькими версиями Flutter-приложения для разных окружений? Теперь вы можете легко переключаться между dev, staging и production средами с помощью Flutter Flavors!

В этой статье вы узнаете, как настроить Android Flavors, сконфигурировать iOS схемы, использовать FlavorConfig модель для управления переменными окружения в Dart, а также запускать и собирать приложения для разных окружений. Вы получите практические советы и примеры кода, чтобы упростить управление конфигурациями приложения.

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #programming #softwaredevelopment
Защитите API-ключи вашего Flutter-приложения раз и навсегда!

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

В этой статье мы рассмотрим три основных слоя безопасности для защиты API-ключей: использование переменных окружения, обфускацию и безопасное хранение секретов во время выполнения. Вы узнаете, как правильно настроить конфигурацию для разных окружений, как использовать пакеты `envied и flutter_secure_storage`, а также как интегрировать безопасность в ваш CI/CD-процесс.

Использование переменных окружения для хранения секретов
🔹 Настройка конфигурации для разных окружений (dev, staging, prod)
⚙️ Обфускация секретов с помощью пакета envied
👉 Безопасное хранение секретов во время выполнения с помощью flutter_secure_storage
📌 Интеграция безопасности в CI/CD-процесс

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

🇬🇧 Read the article in English:
Part 1 → https://telegra.ph/Stop-Committing-Your-API-Keys-Heres-How-to-Actually-Secure-Them-in-Flutter-Part-1-02-05
Part 2 → https://telegra.ph/Stop-Committing-Your-API-Keys-Heres-How-to-Actually-Secure-Them-in-Flutter-Part-2-02-05

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appsecurity #security #programming #softwaredevelopment #coding #technews
Понимание initState() и didChangeDependencies() в Flutter: когда и как использовать

При создании Flutter-приложений разработчики часто сталкиваются с двумя важными методами жизненного цикла: initState() и didChangeDependencies(). Хотя они оба запускаются при создании виджета, у них разные цели и поведение.

В этой статье мы подробно рассмотрим эти методы, их различия и примеры использования. Вы узнаете, когда использовать initState() для инициализации контроллеров и переменных, а когда применять didChangeDependencies() для доступа к данным из Providers и Blocs.

Основные отличия между initState() и didChangeDependencies():
🔹 initState() запускается только один раз при создании виджета, а didChangeDependencies() может запускаться повторно при изменении зависимостей.
🔹 initState() не рекомендуется использовать для операций, требующих context, тогда как didChangeDependencies() безопасен для таких операций.

⚙️ Когда использовать initState():
👉 Для инициализации контроллеров и переменных.
👉 Для выполнения API-запросов, не зависящих от контекста.
👉 Для запуска анимаций.

⚙️ Когда использовать didChangeDependencies():
Для доступа к данным из Providers и Blocs.
Для чтения MediaQuery, Theme и Localizations.
Для выполнения запросов, основанных на данных из контекста.

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #programming #softwaredevelopment
1
Жизненный цикл виджета Flutter: от создания до уничтожения

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

В этой статье мы разберем полный цикл жизни виджетов Flutter, различия между жизненными циклами `StatelessWidget` и `StatefulWidget`, а также рассмотрим распространенные методы жизненного цикла, такие как initState(), build() и dispose(). Вы узнаете, как правильно управлять состоянием и ресурсами, и какие лучшие практики использовать при работе с виджетами.

Жизненный цикл виджета включает в себя несколько этапов: создание, монтирование, обновление и уничтожение.
🔹 `StatelessWidget имеет только один метод жизненного цикла — build()`, который вызывается только один раз, если только родительский виджет не перестраивает его.
🔹 StatefulWidget имеет динамический жизненный цикл, поскольку его состояние может меняться со временем.
👉 Основные методы жизненного цикла `StatefulWidget: createState(), initState(), didChangeDependencies(), build(), didUpdateWidget(), deactivate() и dispose()`.
⚙️ Правильное использование этих методов позволяет избежать утечек памяти и эффективно управлять состоянием.

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #programming #softwaredevelopment
Flutter: Удаление условных операторов из дерева виджетов

Представьте себе код Flutter-приложения, где логика и отображение разделены идеально. Это не просто мечта — это реальность, к которой стремятся многие разработчики!

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

🔹 Автор начинает с объяснения своей строгой позиции по отношению к разделению логики и отображения в коде Flutter-приложений.
🔹 Он показывает, как использовать виджет Visibility, чтобы контролировать видимость различных состояний приложения.
🔹 Также рассматривается альтернативный подход, при котором виджеты создаются внутри ViewModel.
Основные преимущества и недостатки каждого подхода подробно обсуждаются.

👉 Читайте статью, чтобы узнать, как улучшить свой код и сделать его более чистым и поддерживаемым.

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #programming #softwaredevelopment
👎4👍2
Flutter Урок 8: От Статического UI к Взаимодействию с Пользователем

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

В статье вы научитесь создавать приложения, которые могут принимать ввод от пользователя, реагировать на нажатия кнопок и обновлять интерфейс в реальном времени. Вы узнаете о виджетах ввода, таких как TextField, и о том, как использовать TextEditingController для чтения пользовательского ввода. Также вы поймёте, как работают кнопки в Flutter и как использовать setState для обновления интерфейса.

TextField: виджет для ввода текста пользователем
TextEditingController: контроллер для чтения и управления пользовательским вводом
ElevatedButton: кнопка для выполнения действий
setState: функция для обновления интерфейса

Вы увидите полный пример создания простого приложения, которое принимает имя пользователя, генерирует приветственное сообщение и отображает его на экране.

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #programming #softwaredevelopment
👍1
Flutter Flavors: Как правильно настроить окружения для разработки, staging и production

Вы разрабатываете профессиональное Flutter-приложение и сталкиваетесь с необходимостью управления разными окружениями? Теперь вы можете легко переключаться между Dev, Staging и Production средами!

В этой статье вы узнаете, как настроить и управлять Flavors в Flutter, чтобы изолировать конфигурации, создать уникальные идентификаторы приложений и предотвратить случайное попадание dev-кода в production. Вы научитесь создавать разные конфигурации для Android и iOS, использовать переменные окружения и автоматизировать сборку с помощью CI/CD pipelines.

Основные концепции Flavors и их преимущества
⚙️ Пошаговая настройка Flavors для Dev, Staging и Production
🔹 Создание отдельных конфигурационных файлов для каждого окружения
👉 Использование разных иконок приложений для каждого Flavor
Лучшие практики по управлению Flavors и безопасностью приложения

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #programming #softwaredevelopment
Dart 3.4 Preview: Новые возможности для Flutter-разработчиков

В мире Dart произошло значительное обновление — вышла превью-версия Dart 3.4, которая принесла с собой множество улучшений и новых возможностей для разработчиков!

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

🔹 Деструктуризация записей теперь стала более мощной и позволяет работать с сложными структурами данных более безопасно и удобно.
Улучшенное сопоставление с образцом позволяет писать более чистый и поддерживаемый код, заменяя цепочки вложенных условных операторов.
📌 Sealed-классы обеспечивают гарантии полноты обработки случаев на этапе компиляции, что исключает целый класс ошибок времени выполнения.
⚙️ Улучшенный вывод типов означает меньше аннотаций типов, что делает код более читаемым.
👉 Типы расширений позволяют создавать новые типы без дополнительных затрат во время выполнения.

Эти нововведения делают Dart более привлекательным языком не только для Flutter-разработчиков, но и для разработчиков серверных приложений и CLI.

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #programming #mobiledevelopment #softwaredevelopment
🔥1