Вместе с Самиром, Flutter-разработчиком в Surf, мы разберём, что за зверь этот Flutter Web. Посмотрим, что происходит у него «под капотом», какие трудности возникают в проде, как адаптировать UX под веб и какие виджеты помогут сделать интерфейс удобным.

Dart *
Язык программирования, созданный Google
Новости
Flutter-Анимации 2025: Полный Гайд

Привет, Хабр! Анимации – это та самая вишенка на торте, которая превращает просто работающее приложение в нечто, чем приятно пользоваться, что хочется «потрогать». Но как сделать так, чтобы эта вишенка не превратилась в тыкву, тормозящую весь UI и съедающую батарейку?
За годы практики я перепробовал, кажется, всё: от простейших AnimatedContainer
до замороченных кастомных решений с физикой и глубокой интеграцией с Rive. И сегодня я хочу поделиться с вами этим опытом, собрав в одном месте всё, что нужно знать о создании анимаций во Flutter в 2025 году. Это будет настоящий лонгрид-энциклопедия, так что заварите кофейку или что покрепче!
Мы пройдемся по основам, заглянем под капот продвинутых техник, разберем популярные пакеты и, конечно же, поговорим о том, как не убить производительность и добиться заветных 60+ FPS. Вся информация и ссылки тщательно проверены и актуальны (насколько это возможно предсказать) на июнь 2025 года. Поехали!
Dart Native Assets: Полное руководство от новичка до профи

Представьте, что у вас есть Dart-программа, и вы хотите использовать готовую библиотеку, написанную на C, C++, Rust или другом языке. Раньше это было сложно - нужно было вручную компилировать библиотеку, следить за тем, чтобы она попала в нужное место, и писать много дополнительного кода.
Native Assets - это система, которая автоматизирует весь этот процесс. Она позволяет вашему Dart-пакету "включать в себя" нативный код и автоматически его компилировать и подключать.
CherryPick DI для Dart/Flutter проектов

В предыдущей статье мы рассмотрели базовые принципы работы DI-контейнера CherryPick: архитектуру, компоненты (Scope, Module, Binding), и простые примеры использования на Dart/Flutter. Сегодня расскажу о новых возможностях.
Flutter & Dart: Май 2025 — Главное за месяц

Май принёс отличные новости для Flutter-разработчиков: обновления SDK, интересные статьи, пачка новых и полезных пакетов, а также видео на русском и английском языках.
О времени, сложности и мотивации: финал

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

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

Приветствую вас, читатели. Подозреваю, что вы из мира программирования. Приглашаю вас присоединиться к увлекательному рассказу о том, как один энтузиаст решил доработать свой любимый язык. Я собираюсь рассказать об увлекательном опыте внесения существенных изменений в очень сложную архитектуру кода.
Нативная мощь: Flutter SDK на C++ ядре. Часть 2

На связи тимлид Mobile SDK в 2ГИС Александр Максимовский и Flutter-разработчик Михаил Новосельцев (@Sameri11). Наша команда разработала собственный продукт для генерации платформенного Dart-кода на базе публичного C++ API, и мы уже рассказали об основных принципах его работы.
Эта статья — про то, как на основе сырого сгенерированного кода реализовать SDK, готовый к внедрению в пользовательские Flutter-приложения.
Dart 3.8 — что нового в Dart?

Этот релиз приносит обновления форматера, null-aware элементы для коллекций, новые возможности кросс-платформенной разработки, лучший способ находить трендовые пакеты на pub.dev, доступность горячей перезагрузки (hot reload) для веба и многое другое! Мы также надеемся, что найдутся разработчики, заинтересованные в участии в нашей программе раннего доступа к FFigen и JNIgen.
Flutter 3.32 — Что нового во Flutter?

Добро пожаловать во Flutter 3.32! Этот релиз наполнен функциями, призванными ускорить вашу разработку и улучшить ваши приложения. Приготовьтесь к горячей перезагрузке (hot reload) для веба, потрясающим "сквирклам" (squircles) в стиле Cupertino для нативной точности и мощным новым интеграциям с искусственным интеллектом через Firebase. С 1024 коммитами от 156 уникальных участников, включая 39 новичков, Flutter 3.32 является свидетельством невероятной работы нашего сообщества. Давайте посмотрим, что нового!
Flutter & Dart: весенний апдейт — backend, DevTools и Roadmap 2025!

Весна в самом разгаре, а вместе с ней — обновления, гайды, инсайды и бум активности в экосистеме Dart и Flutter. В этом выпуске вы найдёте мощные инструменты для DevTools, свежие идеи для архитектуры, backend-направление на Dart и многое другое.
Локализация Flutter приложения на сервере

g11n, i18n, l10n... или один из множества вариантов локализации приложения. Привет, меня зовут Константин Комков и я надеюсь данный пример и последовательность шагов сэкономят Вам время при разработке!
Есть два способа хранить локализованные данные — внутри приложения или запрашивать их с сервера. Второй подход сложнее и трудозатратнее, но дает следующее преимущество — возможность заменить ресурс или исправить ошибку в переводе без новой сборки приложения. В этой статье я опишу логику работы приложения если данные приходят с сервера.
Ближайшие события
Использование wildcard-переменной _ в Dart 3

С выходом Dart 3 в язык были добавлены значительные нововведения, включая рекорды, паттерн-матчинг и модификаторы классов. Данная статья посвящена менее обсуждаемой, но полезной возможности, улучшающей чистоту и выразительность кода — wildcard-переменной, обозначаемой символом _
.
Символ _
в определенных контекстах позволяет явно указать на намерение разработчика проигнорировать некоторое значение. Рассмотрим сценарии использования и преимущества этого механизма.
Telegram Web App: Интеграция с Flutter

В прошлой статье мы сделали общий обзор этого приложения, его особенности, преимущества и ограничения.
Теперь рассмотрим, как создать Telegram Web App с использованием Flutter, фреймворка для разработки кроссплатформенных приложений.
Как сделать GitLab CI/CD вашим лучшим другом для сборки и доставки Flutter приложений. Часть 1

Flutter & GitLab CI/CD. Подготовка и настройка физической машины
В мире мобильной разработки, где скорость и стабильность доставки приложений определяют успех, выбор инструментов для автоматизации становится особенно важным. Работая мобильным разработчиком в TAGES более пяти лет, я убедился, что использование self‑hosted решений дает значительные преимущества в гибкости, надежности и контроле над процессами. Одним из таких мощных инструментов является GitLab — платформа, которая позволяет не только управлять кодом, но и настраивать полноценные CI/CD‑процессы.
Эта статья станет первым шагом на пути к полной автоматизации сборки и доставки Flutter‑приложений. Мы разберем, как превратить вашу физическую машину в надежный инструмент для автоматизации. В конце статьи у вас будет готовая машина, которая сможет запускать и обрабатывать задачи из GitLab.
Dart / Flutter — применяя zero / empty объекты ко всему

Больше техническая заметка, чем статья, поэтому постараюсь изложить мысли как можно кратче.
Приходя из JS/TS мира, когда я впервые написал на Dart, самой прекрасной вещью, помимо многих было использование функций isEmpty или isNotEmpty для String, List, Map, и так далее. Это было невероятно просто и прекрасно не писать каждый раз .length == 0.
Также, очень полезным паттерном были empty/zero значения как Duration.zero, Offset.zero, и другие.
Спустя время, я нашел привычку использовать похожий принцип для работы с различными случаями, а также пришел к мысли - что если мы используем такие значения для большей части объектов, избавляясь от null (не для всех случаев, но тем не менее)? Немного поискав, нашел похожий паттерн в Go и других языках, и продолжил думать.
Реализация простого SSE клиента на Dart

Хочу поделиться недавним кейсом из нашей практики мобильной разработки. Перед нами стояла задача — реализовать обновление данных в клиентском приложении в режиме реального времени, когда изменения на сервере моментально отображаются у пользователя.
Мы рассматривали два подхода: WebSocket и Server-Sent Events (SSE). Оба варианта соответствовали нашим требованиям, но в итоге мы остановились на SSE — из-за его простоты реализации и использования стандартного HTTP-протокола.
Flutter дайджест – Март 2025

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

Задачи распознавания изображений и звука имеют широкий спектр применений в различных приложениях. Используя Flutter, как мощный фреймворк для разработки кроссплатформенных мобильных приложений, вполне возможно реализовать функционал распознавания данных в несколько шагов. В этой статье мы рассмотрим некоторые из задач распознавания, такие как распознавание лиц, текста и звука, и приведем фрагменты кода и рекомендуемые библиотеки для их реализации на Flutter.
Вклад авторов
Wriketeam 245.6Surf_Studio 181.1dmitriizolotov 155.0Friflex_dev 104.8bunopus 100.4sharpfellow 92.8mrDevGo 83.7alphamikle 81.0MADTeacher 72.6