Flutter Pulse
1.01K subscribers
601 photos
1 file
1.65K links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Избегаем Future.delayed в Flutter: лучшие альтернативы для управления временем в интерфейсе
🚀 Хотите улучшить свои навыки разработки на Flutter и создавать более стабильные приложения? 🤔 Тогда вам стоит узнать о лучших альтернативах использованию Future.delayed для управления временем в интерфейсе!

В этой статье рассматриваются проблемы, связанные с использованием Future.delayed, и предлагаются четыре альтернативных подхода для управления временем в интерфейсе Flutter-приложений. Вы узнаете, как использовать KeyboardVisibilityController, MediaQuery, AnimationController и вложенные вызовы WidgetsBinding.instance.addPostFrameCallback, чтобы сделать свои приложения более надежными и адаптивными к различным устройствам и взаимодействиям с пользователем. 📱💻

Эти подходы позволяют реагировать на фактические события интерфейса, а не на произвольные задержки, что делает код более тестируемым и поддерживаемым. Узнайте, как улучшить свои приложения, перейдя по ссылкам ниже! 🔍

🇷🇺 Читать на русском
🇬🇧 Читать на английском
🌐 Оригинал статьи

Все подобные новости ищите по хэштегу #FlutterPulseMedium Оцените новую рубрику! 👍

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #ui #ux #programming #coding #softwaredevelopment
👍2
Как проверить реальное подключение к интернету в Flutter?
Вы когда-нибудь сталкивались с ситуацией, когда приложение зависает на экране загрузки, хотя Wi-Fi подключен? 🤔

В этой статье рассматривается проблема проверки подключения к интернету в Flutter-приложениях и предлагается решение с использованием BLoC. Автор делится своим опытом, когда обнаружилось, что стандартный пакет connectivity_plus не дает полной картины — он показывает только тип подключения (Wi-Fi, мобильная сеть или отсутствие связи), но не проверяет, работает ли интернет на самом деле.

Основная часть статьи посвящена реализации интеллектуального мониторинга статуса интернета с помощью BLoC. Автор поэтапно объясняет, как:
- добавить необходимые пакеты (`flutter_bloc, equatable, connectivity_plus, http`) в проект;
- создать события (`InternetConnectedEvent, InternetDisconnectedEvent, InternetNoSpeedEvent) и состояния (InternetLoading, InternetConnected, InternetDisconnected, InternetNoSpeed`) для BLoC;
- реализовать логику BLoC (`internet_bloc.dart`), которая проверяет подключение к интернету каждые несколько секунд, отправляя HTTP-запрос на Google;
- настроить `main.dart и home_screen.dart`, чтобы UI реагировал на изменения статуса интернета.

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

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium Поделитесь, насколько вам понравилась эта рубрика! 😊

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #bloc #internetconnection #flutterdev #programming #coding #softwaredevelopment
👍3
Глубокое погружение в макеты Flutter: Row, Column, Stack и Expanded
Flutter - мощный инструмент для создания красивых и гибких интерфейсов, и сегодня мы поговорим о четырёх китах, на которых держится большинство макетов: Row, Column, Stack и Expanded! 🤯

В этой статье вы узнаете, как работают эти базовые виджеты, когда их использовать и как комбинировать их для создания сложных и красивых интерфейсов. Вы научитесь использовать свойства mainAxisAlignment и crossAxisAlignment, чтобы выравнивать виджеты, и узнаете, как применять Expanded, чтобы занять доступное пространство. 📐

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

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium Напишите, понравилась ли вам новая рубрика! 👍

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #ui #ux #programming #coding
👍1👎1
Flutter и WebView: как не дать хакерам выполнить произвольный код Dart из JavaScript

Многие Flutter-приложения используют WebView для интеграции с внешними страницами, платёжными шлюзами или центрами помощи внутри приложения. Но если вы используете WebView с включённым JavaScript и предоставляете доступ к JS-to-Dart мосту, вы открываете дверь к одной из самых опасных уязвимостей мобильных приложений: внедрению JavaScript Bridge.

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

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #webview #javascript #security #mobiledevelopment #appsecurity #coding #programming #devlife
👍2
Динамическое выполнение кода в Flutter: как защитить своё приложение от атак

Flutter-приложения считаются "безопасными" благодаря Ahead-Of-Time компиляции, но на самом деле они уязвимы для динамического выполнения кода. Атакующие могут внедрять и запускать произвольный Dart-код, используя инструменты вроде Frida.

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

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #security #mobiledevelopment #appsecurity #coding #programming #devsecops
🔍 Обратная разработка libapp.so: как защитить свой Flutter-приложение от взлома

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

В этой статье рассматривается процесс обратной разработки libapp.so — скомпилированного кода Flutter-приложений, и описываются приёмы, которые используют злоумышленники для извлечения скрытых секретов и изменения логики приложения. Вы узнаете о реальных сценариях эксплуатации уязвимостей, таких как декомпиляция libapp.so с помощью Ghidra, изменение логики приложения и извлечение встроенных ключей и секретов шифрования. Кроме того, в статье представлены практические советы по защите вашего приложения, включая обфускацию кода Dart, шифрование секретов, перемещение критической логики на сервер и использование проверок целостности и анти-отладочной логики.

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

Оцените рубрику и напишите, какие темы вам интересны! 👀

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

#FlutterPulseMedium
#flutter #dart #security #reverseengineering #libapp_so #mobiledevelopment #appsecurity #flutterdev #programming #coding #devsecops
1
Flutter-архитектура, которая спасла команду от 6 месяцев переработок

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

В статье разработчики делятся своим опытом о том, как они перешли от хаотичного кода к четкой MVVM-архитектуре с Repository и Service слоями. Они описывают, как разделили бизнес-логику, работу с API и UI, и какие результаты получили после рефакторинга. Вы узнаете, как улучшить поддерживаемость кода, сократить время разработки новых фич и уменьшить количество багов.

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledev #appdev #softwarearchitecture #mvvm #flutterarchitecture #tech #programming #development #coding #softwareengineering
😁2👍1💩1
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
Ускорьте свой код Flutter с awesome_extensions!

Flutter и Dart - отличная пара, а с пакетом awesome_extensions разработка станет ещё проще и быстрее! 🚀

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

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

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #awesomeextensions #productivity #coding #mobiledevelopment
🔥1
Защитите 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