Flutter Pulse
695 subscribers
434 photos
984 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
1..2..3... Гонка Future

Представьте, что вы ждёте ответ от нескольких источников. Но вам нужен только один ответ. Ладно, такое случается не часто, но представьте...

Ждём только 1 ответ

Будьте осторожны, если первый запрос выдаёт ошибку до того, как придёт второй ответ... Future завершится с ошибкой. Значит, вам нужно игнорировать эту ошибку в вашем будущем запросе.


import 'dart:async';
import 'package:http/http.dart' as http;

void main() async {
await Future.any([
getPost(SERVER_1), // первый сервер
getPost(SERVER_2), // второй сервер
]);
}

Future<String> getPost(String url) async {
final response = await http.get(Uri.parse('....'));
if (response.statusCode == 200) {
return response.body; // возвращаем тело ответа
} else {
throw Exception('Не удалось загрузить пост'); // выбрасываем исключение
}
}


Что возвращает Future.any?
Он возвращает Future, который завершается с первым результатом. Вы можете передать несколько Future разных типов.

Оцените новую рубрику! 👍💡 Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #FutureAny #AsyncProgramming #FlutterTips #MobileDevelopment #ProgrammingTips
👍4
Новая рубрика уже здесь! 🔥 Статьи с Medium.com, недоступного в России, теперь у вас на виду. Всё самое интересное мы переведём на русский, а также покажем в оригинале — никаких секретов!

Flutter 4.0: Будущее разработки приложений уже близко!

Flutter продолжает удивлять и радовать разработчиков своими амбициозными возможностями! Предстоящий релиз Flutter 4.0 обещает стать самым значительным скачком вперед.

В статье рассматривается, что нового ждет разработчиков в Flutter 4.0. Три ключевых направления — производительность, опыт разработчика и расширенная поддержка платформ — сделают разработку приложений еще более эффективной и приятной.
Узнайте о новом движке рендеринга Impeller, который устраняет проблемы с производительностью и обеспечивает более плавную анимацию и быструю отрисовку.
Также в статье описаны улучшения в инструментах разработчика, включая более быстрый hot reload, умные сообщения об ошибках и улучшенную диагностику.
Кроме того, Flutter 4.0 расширяет возможности кросс-платформенной разработки, поддерживая складные и двухэкранные устройства, веб и настольные приложения.

Читайте подробнее в статье:
🇷🇺Flutter 4.0: Взгляд в будущее разработки приложений
🇬🇧Flutter 4.0: A Glimpse Into The Future of App Development
🌐Оригинальная статья

Все подобные новости ищите по хэштегу #FlutterPulseMedium Оцените новую рубрику!
#flutter #dart #flutterpulse #FlutterPulseMedium #crossplatform #appdevelopment #mobiledevelopment #webdevelopment #desktopdevelopment
🔥8❤‍🔥1
Retrofit в Flutter: упрощаем работу с сетью
Устали писать boilerplate-код для работы с API в Flutter? В этой статье вы найдёте решение!

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

Вы пройдёте через 6 шагов:
1. Добавление зависимостей
2. Создание модели с помощью JSON Serializable
3. Определение API с помощью Retrofit
4. Настройка Dio с интерцепторами
5. Использование Provider для управления состоянием
6. Отображение данных в UI

В результате вы получите чистый и масштабируемый код для работы с API.

Читать статью на русском
Read the article in English
Original article

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #networking #api #retrofit #dio #jsonserializable #provider
1🔥1
Flutter показывает устаревший интерфейс или отсутствуют ресурсы? Есть решение!

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

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

Вы научитесь создавать задачи и конфигурации запуска в VS Code, чтобы иметь два варианта запуска приложения: обычный и "свежий". Это поможет вам экономить время и избегать ошибок, связанных с кэшированием и устаревшими ресурсами. 💻

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #vscode #productivity
👍4
GraphQL в Flutter: Мощный инструмент для работы с данными
Flutter-разработчики, вы готовы улучшить производительность и эффективность ваших приложений? Тогда вам стоит познакомиться с GraphQL - мощной альтернативой REST API!

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

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

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

#flutter #dart #graphql #mobiledevelopment #appperformance #FlutterPulse #FlutterPulseMedium
👍1🔥1
Пакет, который убивает приложения Flutter
Вы долго разрабатывали своё приложение, и вот настал момент его выпуска. Но после обновления Flutter до последней стабильной версии сборка внезапно завершается ошибкой. Причина? Устаревший пакет, добавленный полгода назад, который больше не поддерживается.

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

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

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #programming #softwaredevelopment
👍1💯1
Sizer vs ScreenUtil: что лучше для адаптивных макетов в Flutter?
Вы ищете идеальный инструмент для создания адаптивных интерфейсов в Flutter? Давайте разберемся вместе! 😉
В статье рассматривается сравнение двух популярных пакетов - Sizer и ScreenUtil. Вы узнаете о преимуществах и недостатках каждого, а также о том, какой из них лучше использовать для вашего следующего проекта. 📈
В статье будут рассмотрены такие темы, как:
- Различия между Sizer и ScreenUtil
- Преимущества и недостатки каждого пакета
- Как использовать каждый пакет для создания адаптивных макетов
- Рекомендации по выбору пакета в зависимости от сложности проекта

Читайте статью и узнайте, какой пакет лучше всего подходит для вашего проекта:
🇷🇺Sizer vs ScreenUtil — Что лучше использовать для адаптивных макетов в Flutter
🇬🇧Sizer vs ScreenUtil — What You Should Prefer for Responsive Layouts in Flutter
🌐Оригинальная статья на Medium

Все подобные новости ищите по хэштегу #FlutterPulseMedium Оцените новую рубрику! 👍
#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #responsiveLayouts
Flutter: Как избавиться от Singleton в вашем приложении и почему это важно?

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

В этой статье мы рассмотрим проблемы, связанные с использованием Singleton, такие как скрытые зависимости, трудности с тестированием и проблемы с потоками. Мы также обсудим, как постепенно отказаться от Singleton в пользу Dependency Injection и сделать ваш код более поддерживаемым и тестируемым. 💻

Вы узнаете, как выявить классы, которые используют Singleton, и как заменить их на правильные зависимости. Мы также рассмотрим примеры, иллюстрирующие проблемы, связанные с Singleton, и как их решить.

🇷🇺Читать статью на русском языке
🇬🇧Read the article in English
🌐Original article on Stackademic

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #softwareengineering
👍1👎1
Разбираемся в конвейере рендеринга Flutter: фаза сборки
Узнайте, как Flutter превращает декларативный код UI в пиксели на экране и оптимизирует процесс рендеринга! 🚀
В этой статье вы погрузитесь в детали фазы сборки конвейера рендеринга Flutter, узнаете о взаимодействии виджетов, элементов и RenderObject, а также о том, как Flutter добивается сублинейной сложности рендеринга. 🤔
Вы узнаете о ключевых концепциях, таких как дерево виджетов, элементы, ключи и процесс согласования дерева виджетов. Кроме того, статья расскажет о том, как использовать post-frame callbacks и как Flutter обрабатывает обновление и переиспользование элементов. 🔄
Читайте продолжение статьи по ссылкам ниже:
🇷🇺Русская версия
🇬🇧English version
🌐Оригинальная статья

Все подобные новости ищите по хэштегу #FlutterPulseMedium Оцените новую рубрику! 👍
#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #renderingpipeline #buildphase
1🔥1
Создай свой первый пакет на pub.dev: пошаговое руководство для Flutter-разработчиков!

Хотите поделиться своим кодом с сообществом и сделать его доступным для других разработчиков? Тогда вам пора узнать, как опубликовать свой пакет на pub.dev!

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

Особое внимание уделено созданию файла pubspec.yaml, написанию кода и документации, а также подготовке пакета к публикации. Вы узнаете, как использовать команду
dart pub publish --dry-run

для проверки пакета перед публикацией и как пройти аутентификацию на pub.dev.

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #pubdev #package #FlutterDev #mobiledevelopment #opensource
Отображение AlertDialog без Context в Flutter: Решение проблемы
🚨 Flutter-разработчики, сталкивались ли вы с ситуацией, когда нужно показать AlertDialog из асинхронной функции, но context недоступен? 🤔

В этой статье рассматривается распространенная проблема и предлагается элегантное решение с использованием GlobalKey<NavigatorState>. Вы узнаете, как отобразить AlertDialog без context, используя глобальный navigatorKey, и как это может упростить ваш код. 📈

Статья шаг за шагом объясняет, как определить глобальный navigatorKey, присвоить его MaterialApp, создать функцию для показа AlertDialog и вызвать ее из асинхронной функции. Вы получите полное понимание того, как работает это решение и почему оно является правильным подходом. 💡

Ссылки на статью:
🇷🇺Отображение AlertDialog без Context в Flutter
🇬🇧Showing AlertDialog Without Context in Flutter
🌐Оригинальная статья

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #programmingtips
6 критических ошибок при работе с TextFormFields во Flutter

Даже небольшие ошибки при проектировании форм могут существенно повлиять на пользовательский опыт и конверсию вашего приложения! Плохо настроенные поля ввода раздражают пользователей и приводят к отказу от заполнения форм.

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

В статье описаны следующие приёмы и советы:
- Настройка textInputAction для управления фокусом между полями и вызова callback-функций.
- Использование onFieldSubmitted для обработки нажатия кнопки "Done" на клавиатуре.
- Выбор подходящего типа клавиатуры (keyboardType) для разных полей ввода.
- Настройка textCapitalization для автоматического изменения регистра текста.
- Использование TextInputFormatter для форматирования и фильтрации вводимых данных.
- Настройка автозаполнения (autofillHints и AutofillGroup) для упрощения ввода данных.

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #formhandling #TextFormField #UIUX
2
Обработка запросов PUT и DELETE в Flutter: динамическое обновление и удаление данных
Узнайте, как обновлять и удалять данные в вашем Flutter-приложении с помощью запросов PUT и DELETE! 🔥
В этой статье вы найдете подробное руководство по реализации запросов PUT и DELETE с использованием пакетов Dio и http в Flutter. Вы узнаете, как обновлять и удалять данные динамически, а также как создавать простой интерфейс для тестирования запросов. 📱💻
В статье рассматриваются следующие темы:
- Понимание запросов PUT, PATCH и DELETE
- Настройка проекта Flutter
- Выполнение запросов PUT для обновления данных
- Выполнение запросов PATCH для изменения конкретных полей
- Выполнение запросов DELETE для удаления данных
- Создание простого интерфейса для тестирования запросов
- Лучшие практики для PUT и DELETE в Flutter

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium Напишите, понравилась ли вам новая рубрика!
#flutter #dart #flutterdev #mobiledevelopment #FlutterPulseMedium #FlutterPulse #appdevelopment
WebSockets в Flutter: Создание Приложений в Реальном Времени
🚀 Хотите создать приложения с мгновенным обменом данными? В этой статье вы узнаете, как использовать WebSockets в Flutter для реализации real-time коммуникации!

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

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

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium Оцените новую рубрику! 👍
#flutter #dart #flutterpulse #FlutterPulseMedium #realTimeCommunication #WebSockets #mobileDevelopment #appDevelopment
Полное руководство по реализации NFC в Flutter
🚀 Хотите добавить в своё приложение возможность бесконтактного обмена данными? 🤔 В новой статье вы найдёте подробное руководство по интеграции NFC в ваши Flutter-приложения!

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #NFC #MobileDevelopment #IoT #MobilePayments
👍1🔥1
Flutter — Shimmer: Улучшаем пользовательский опыт во время загрузки данных
🚀 Хотите сделать своё Flutter-приложение более привлекательным и удобным для пользователей во время загрузки данных? 🤔

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

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

Кроме того, в статье приведен пример простого Flutter-приложения, которое загружает "факты о кошках" и использует Shimmer во время загрузки данных. 📚

Перейдите по ссылкам, чтобы узнать больше о Shimmer в Flutter:
🇷🇺Flutter — Shimmer (на русском)
🇬🇧Flutter — Shimmer (на английском)
🌐Оригинальная статья

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #userexperience #ui #ux #shimmer #loadinganimation
🔥1
Универсальный переключатель виджетов в Flutter: простой способ отключения любого элемента
В разработке Flutter-приложений часто возникает необходимость динамически включать или отключать элементы интерфейса. Теперь у вас есть простой и эффективный способ сделать это!

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

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #uiux #widgetlibrary
🔥1
Оптимизация интерфейса Flutter с помощью RepaintBoundary
🚀 Хотите, чтобы ваше приложение на Flutter работало плавно и быстро? 🤔 Тогда вам нужно знать о виджете RepaintBoundary!

Основная часть: в статье рассматривается виджет RepaintBoundary, который помогает изолировать части интерфейса от ненужных перерисовок, улучшая производительность и эффективность приложения. Вы узнаете, как и когда использовать RepaintBoundary, чтобы оптимизировать сложные UI-компоненты, предотвратить "дерганый" интерфейс и повысить скорость отрисовки анимаций. 📈 Также в статье приведены примеры использования RepaintBoundary с AnimatedBuilder и Image.network, а также советы по измерению производительности с помощью Flutter DevTools и debugRepaintRainbowEnabled. 🔍

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

Все подобные новости ищите по хэштегу #FlutterPulseMedium Напишите, понравилась ли вам новая рубрика! 👍
#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appoptimization #ui #ux #performanceoptimization
Понимание жизненного цикла Flutter: состояния приложения
Flutter-разработчикам, хотите ли вы создать приложение, которое работает без сбоев и зависаний, независимо от того, находится ли оно на переднем плане, в фоне или приостановлено во время звонка? 🤔

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

В статье рассматриваются следующие состояния приложения: resumed, inactive, hidden, paused и detached, а также объясняется, как использовать каждое из них для улучшения работы приложения. 📊 Вы узнаете, как приостанавливать и возобновлять работу приложения, освобождать ресурсы и сохранять данные пользователя.

Ссылки на статью:
🇷🇺Понимание жизненного цикла Flutter (Часть 1)
🇬🇧Understanding the Flutter Lifecycle (Part 1)
🌐Оригинальная статья

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #programming
👍2
Понимание жизненного цикла Flutter: Состояния виджетов (Часть 2)

Flutter-разработчикам, внимание! Если вы хотите создавать эффективные и динамические приложения, вам необходимо понять разницу между Stateless и Stateful виджетами.

В этой статье вы узнаете о характеристиках обоих типов виджетов, их различиях и том, как и когда использовать их в своих проектах. Вы поймёте, что такое состояние (State) и как оно влияет на поведение виджетов. Кроме того, вы узнаете о жизненном цикле Stateless и Stateful виджетов, включая методы initState(), didChangeDependencies(), build(), setState(), didUpdateWidget() и dispose(), которые помогут вам управлять состоянием и обновлять интерфейс пользователя.

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

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

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #programming #softwaredevelopment
👍2