Обновить
11.08

Dart *

Язык программирования, созданный Google

Сначала показывать
Порог рейтинга
Уровень сложности

Flutter — везде (и даже в чайнике). Часть 2

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели7.1K

Привет, Хабр! Меня зовут Юра Петров, я руководитель отдела разработки компании Friflex и автор канала «Мобильный разработчик». Это вторая статья в серии о платформах, которые поддерживает Flutter, и в ней на самом деле ничего не будет про чайник. Про чайник было в первой. 

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

Читать далее

Новости

Flutter MethodChannel: как подружить Dart с нативным Android (и iOS)

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели7.7K

Привет, Хабр! Сегодня поговорим о том, как Flutter-приложению выйти за пределы чисто Dart-мирка и воспользоваться возможностями родной платформы, например, вызвать API Android или iOS напрямую. Например, есть какая-нибудь классная фича в Android SDK, а в Flutter её нет. Как быть? Ответ — писать собственный плагин и использовать MethodChannel.

Читать далее

Асинхронность и многопоточность в Dart/Flutter: Future, Stream и Isolates

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели7.6K

При разработке Flutter-приложений быстро возникает необходимость выполнять долгие операции: загрузку данных из сети, обращение к базе, работу с файлами, вычисления и т.п. Если делать это синхронно, основной поток блокируется, интерфейс «зависает», а пользователь видит «замороженный» экран. Асинхронное программирование в Dart позволяет вынести такие операции из UI-потока, не блокируя интерфейс.

В данной статье мы расскажем, как во Flutter использовать ключевые инструменты асинхронности Dart — Future, async/await, Stream, а также многопоточность через Isolate — и покажем, как применять их на практике в реальных приложениях.

Читать далее

Лучше, чем JSON: почему я перешёл на Protobuf

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.1K

Команда Go for Devs подготовила перевод статьи о том, почему автор почти десять лет не использует JSON в своих API и предпочитает Protobuf. Он объясняет, как строгая типизация, компактная бинарная сериализация и генерация кода дают разработчикам больше надёжности и скорости.

Читать далее

Ноябрьский Flutter-дайджест

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.3K

Привет, друзья! 👋
Ноябрь выдался ультра-насыщенным, и если вы пропустили хоть что-то — сейчас наверстаем!

Читать далее

Чем вайб-инженер отличается от вайб-кодера

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.8K

Привет, Хабр! Это Юра Петров, Tech Lead Friflex. В этой статье хочу разграничить два понятия: вайб-инжиниринг и вайб-кодинг. Они звучат очень похоже, но разница между ними, на самом деле, колоссальная. Попробую объяснить ее простым языком.

Читать далее

Два года с Duit — история взросления фреймворка

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели7.7K

Когда-то Duit был всего лишь экспериментом — попыткой упаковать интерфейс Flutter в JSON и заставить его ожить. Сегодня это уже не технический трюк, а осмысленный подход к тому, как можно описывать UI данными, а не кодом, создавая управляемые интерфейсы нового поколения. Новый релиз — история взросления и поиска архитектурного баланса.

За два года проект прошёл путь от набора идей до зрелой архитектуры, где принципы гибкости, тестируемости и производительности стали фундаментом проекта.

Приглашаю тебя прочитать статью и узнать, как Duit v4 меняет представление о том, каким может быть BDUI-фреймворк.

Читать далее

Сокращённая запись через точку начиная с Dart 3.10 и Flutter 3.38

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели8.9K

Синтаксис сокращённой записи через точку — .foo — позволяет писать более лаконичный Dart-код, опуская имя типа там, где компилятор может вывести его из контекста. Это аккуратная альтернатива полному варианту вида ContextType.foo при обращении к значениям перечислений (enum), статическим членам и конструкторам.

Теперь язык стал еще более лаконичным.

Читать далее

Dart 3.10 — что нового в Dart?

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.6K

Сегодня мы рады объявить о выпуске Dart 3.10!

В этом выпуске мы продолжаем работать над улучшением базового опыта разработки. Новая функция сокращённых обозначений ( .) поможет вам писать более читабельный и менее многословный код. Мы также представляем мощную систему плагинов-анализаторов , которая позволяет создавать собственные правила статического анализа, интегрируемые непосредственно в вашу IDE. И мы рады сообщить, что хуки сборки теперь стабильны!

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

Продолжайте читать, чтобы узнать больше об этих и других улучшениях в Dart 3.10.

Читать далее

Flutter 3.38 — Что нового во Flutter?

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели11K

Добро пожаловать в наш ежеквартальный релиз Flutter 3.38. Это обновление призвано повысить вашу продуктивность и улучшить взаимодействие с разработчиками благодаря сокращённым точкам и обновлениям для предварительных просмотров виджетов. Благодаря нашему сообществу этот релиз включает в себя в общей сложности 825 коммитов от 145 уникальных участников, 37 из которых — новички. Давайте разберёмся, что же нового в этом релизе.

Читать далее

Распознаём позу человека во Flutter Web с MediaPipe

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели8.7K

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

Читать далее

Как на Хабре каждый раз хоронят Flutter

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели11K

Представьте, что вы Flutter-разработчик. Вы заходите на Хабр. В комменты статьи про Flutter. И там опять: «Flutter уже не развивается давно, умирает, нет 3д», «Dart — зачем нужен этот новый странный язык», «Google закроет проект, там в Индии всех разрабов уволили, они уже на кладбище». И это каждый. Божий. День.

Вот что интересно: пока на Хабре хоронят Flutter, 30% всех новых iOS-приложений пишутся на нём. BMW делает на Flutter приложение для своих машин. Google Pay работает на Flutter. Credit Agricole Bank переписал на него банковский апп на миллион пользователей — и поднялся с 10-го на 3-е место в рейтинге. Но на Хабре Flutter, конечно, мёртв. Как и в прошлом году. И позапрошлом.

Почему так происходит? Потому что критиковать — это дофига проще, чем разобраться. Потому что мемы про «Google кладбище» работают лучше, чем скучная статистика. И потому что у каждого есть знакомый, который слышал от знакомого, что Flutter тормозит. Проверено.

Читать далее

Два новых линта в Dart 3.9

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.1K

Два новых линта в Dart 3.9:

1. switch_on_type, чтобы сделать switch по типу переменной безопасным.

2. unnecessary_unawaited, чтобы избавиться от unawaited, которые стали ненужными.

Читать далее

Ближайшие события

Октябрьский Flutter-дайджест

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.1K

Октябрь был насыщенным и вдохновляющим: новые релизы, статьи, переводы с Medium и целая волна полезных пакетов. Flutter не останавливается, а сообщество растёт с каждой неделей! 🚀

Читать далее

Dart 3.9: актуальность новых фич

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.6K

(!) Дата релиза этого обновления: 13 августа 2025. Это плановый, «прикладной» апдейт, который делает анализатор умнее, CLI — ощутимо быстрее, pub — точнее в разрешении зависимостей, а также приносит официальный MCP-сервер для интеграции Dart/Flutter с ИИ-ассистентами. Ниже — только существенное, с примерами и пошаговыми рекомендациями. (Dart)

Читать далее

Когда важна каждая миллисекунда: оптимизация съёмки для CV и AR

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели8.2K

2ГИС Ситискан — это мобильное приложение для автоматизированной съёмки городской среды. Оно устанавливается на смартфон, закреплённый в автомобиле, и во время движения делает снимки, собирает координаты, скорость и другие параметры. Эти данные обрабатываются с помощью ИИ, чтобы находить проблемы в инфраструктуре: ямы, мусор, повреждённые объекты и другое.

Одна из ключевых задач приложения — снимать изображения с высокой частотой, особенно при объездах сложных участков. Но на практике оказалось, что стандартный метод съёмки takePicture во Flutter может занимать до 3 секунд на один кадр. Это делает невозможной съёмку даже 1 кадра в секунду, не говоря уже о 4 кадрах, которые нам нужны для точного анализа.

В этой статье мы — Руслан Цицер и Арген Жукеев @zhukeev— расскажем, как исследовали узкие места, перепробовали разные подходы — от RepaintBoundary до нативной обработки на C и Java — и в итоге добились стабильной съёмки с минимальной задержкой. Наш кейс будет полезен Flutter-разработчикам, которым необходима высокая частота съёмки (до 4 fps и выше) для своих приложений и инженерам в области компьютерного зрения и машинного обучения или разработчики AR/VR-решений на Flutter, где важны каждая миллисекунда и каждый пиксель.

Читать далее

Книга: «Основы Flutter»

Время на прочтение3 мин
Охват и читатели7.2K

Привет, Хаброжители! Книга предназначена для всех, кто хочет погрузиться в эффективную кроссплатформенную разработку с Flutter. Вы не только изучите синтаксис языка Dart и основы фреймворка, но и сразу примените знания на практике, разрабатывая проект, который развивается на протяжении всей книги. После каждой новой темы вас ждут задания по доработке его кодовой базы, что позволит уверенно прокачать свои hard-скиллы.

Читать далее

Написал приложение с помощью GPT-5 и вот что получилось

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели16K

Периодически почитываю местные статьи про использование LLM в разработке, в комментариях обычно возникают дискуссии относительно эффективности такого подхода. Как я заметил, как правило и статьи, и уж тем более комментарии ограничены общими рассуждениями без конкретики, поэтому решил на собственном примере понять — можно ли с нуля и без опыта написать мобильное приложение используя LLM?

Читать далее

Flutter-дайджест сентября

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели5.5K

Привет, друзья! 🌐

Сентябрь оказался по-настоящему горячим месяцем для Flutter-разработчиков — громкие релизы, свежие статьи на Хабре, видеоразборы с YouTube и целая россыпь полезных пакетов. На нашем канале FlutterPulse мы собрали всё самое интересное в одном месте, чтобы вы ничего не пропустили.

Читать далее

Как создать собственный RenderObject

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели4.7K

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

Меня зовут Александр, я Flutter-разработчик в Surf, и сегодня мы сделаем ещё один небольшой шаг к этим крутейшим возможностям — мы научимся создавать собственные RenderObject. 

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

Читать дальше
1
23 ...