Comments 35
Стиль вольный, но живой, поэтому засчитано :) Поддерживаю, flutter отличная платформа. Только вот я полистал статьи, до июля (дальше не стал) и не нашёл где его хоронят. Это флешбеки какие-то?
Это философский спор. Flutter рендерит свой UI через собственный движок (Skia, теперь Impeller).
Враки. Это не философский спор, это флаттеру прямо в морду. Потому что он и не рендерит своё - пытается подражать нативу, и не выглядит родным, см. Жидкое Стекло. А мог бы взять за образец супер кроссплатформу - Интернет.
Флаттер пока тупо не готов. Идея со Скией, базовое архитектурное решение, провалилась - что, импеллер готов 100%? Ну тогда хотя бы аналог Bevy покажи! Идея с тремя потоками, базовое архитектурное решение, провалилась - флаттер мужественно переписывает, но когда будет готово - загадка.
Да, на флаттере пишут много, но это не значит что его невкусно хейтить - люди просто боятся попасть в ситуацию когда придётся такое вот, как на флаттере писано, писать самому. Философский вопрос - Флаттер он чего first? Вот стек на JavaScript - он Web first, добавляем Electron и Capacitor - покрываем всё.
Флаттер был стратегически нужен Гуглу пока пелась Фуксия, сейчас Гуглу стратегически интереснее многоплатформенный Котлин. Зная Гугол…
Идея что Дарт идеален для создания интерфейса - дурь, это виляние хвоста собакой в предположении что приложение - в основном интерфейс.
Установите Flutter, создайте первый проект, сделайте Hot Reload. Почувствуйте эту магию. А потом решайте.
Эту магию я ещё в раннем .Net видел. Если делать, то не hot reload, а смотреть как Flutter скрывает мерзость сборки Андроид приложения. С одного проекта решать - так себе совет.
Я не говорю что Flutter (уже) умер, я говорю что нечего удивляться что его хоронят. А почему Dart не поимел TypeScript в особо извращённой форме - ума не приложу, да и Питончику можно бы побеспокоиться кажется мне.
Хотел привести в пример как раз ваш прошлый коммент, но вы меня опередили)
Я понимаю то, что вы можете не любить флаттер. Ок, это ваш выбор. Но зачем самоубийством кармы заниматься выливая столько бреда не по фактам? Поделитесь, мне реально интересно в чем толк, возможно не зная этого я теряю что-то ценное...
«Flutter не рендерит своё, подражает нативу» — ложно.
Официально: Flutter не использует браузер/WebView и не использует OEM-виджеты платформ. Он рисует свои виджеты собственным рендерером (движок Flutter → Skia/Impeller). Отсюда и единый внешний вид: хотите Material, хотите Cupertino, хотите полностью кастомный. Это не «имитация нативного», это собственная отрисовка пикселей. docs.flutter.dev«Идея со Skia провалилась; Impeller “не готов 100%”» — подмена фактов.
Impeller — продакшен-рендерер и, согласно актуальной документации, стоит по умолчанию на iOS и Android (API 29+) в текущих релизах 3.27+/3.29+. Это эволюция рендера ради предсказуемости (устранение shader jank), а не «провал» Skia. docs.flutter.dev«Покажите аналог Bevy — иначе Impeller не готов» — некорректный критерий.
Flutter — UI-SDK, а не игровой движок. Для игр есть зрелый 2D-движок Flame (официально промотируется в Flutter Games), для 3D есть Flutter GPU API и библиотека flutter_scene (3D поверх Impeller, в активной разработке). Отсутствие «аналогов Bevy в ядре» не отменяет готовности Impeller для прикладных приложений. flutter.dev«Модель трёх потоков провалилась; переписывают неизвестно когда» — неверно.
Это спланированная архитектурная модернизация: «Great Thread Merge». В 3.29 на iOS/Android UI- и platform-потоки объединены по умолчанию; в 3.35 то же сделано для macOS/Windows (зеркалируя мобильные). Это не «провал», а целенаправленное упрощение нативной интероп-модели и снижение накладных расходов. docs.flutter.dev«Web-first стек (JS+Electron/Capacitor) покрывает всё, а Flutter — нет» — подмена задачи.
Flutter сознательно не опирается на браузер/веб-движок, а рисует сам, чтобы обеспечить предсказуемость и единый UI на всех платформах. Это другая ось компромиссов: меньше “веса” веб-слоя и больше контроль над кадром. Официальный FAQ прямо подчёркивает эту разницу. docs.flutter.dev«Google “переключился” на Kotlin Multiplatform; Flutter был нужен только под Fuchsia» — утверждение без доказательств.
Позиция Google по KMP: поддержка для шаринга бизнес-логики; это не замена Flutter (который решает ещё и унификацию UI). Одновременная поддержка разных стратегий — нормальная продуктовая политика. Кроме того, Fuchsia и сейчас имеет актуальные релиз-ноты/дорожную карту — сказки про «похороны» несостоятельны. Android Developers Blog«Dart “не идеален для UI”» — мимо цели.
Dart выбран под требования Flutter: JIT для stateful hot-reload в развитии и AOT в продакшене (нативный ARM-код с быстрым стартом и предсказуемой производительностью), плюс модель isolates для конкурентных задач. Это технические свойства, критичные именно для UI-SDK, а не лозунги. docs.flutter.dev«Hot reload — это “магия”, которую я ещё в раннем .NET видел» — и что?
Горячая перезагрузка есть и в .NET — да. Это лишь доказывает, что технология полезна и давно признана индустрией; у Flutter просто другая реализация за счёт JIT-рантайма Dart и интеграции с фреймворком виджетов. Microsoft Learn
ваш шаг, Господин...
Шага не будет, джентльмен в конвульсиях умер
Я понимаю то, что вы можете не любить флаттер.
Ничерта Вы не понимаете, включая то, что Вам говорят и то, что предмет обсуждения меняется от любить или не любить только до выхода из младших классов. Хотя, это до ЕГЭ так было… И не понимаете, что шансов собеседнику не знать ту тривию, которую Вы приводите как аргументы - чистый ноль. И что кто-то вообще может бредить не по фактам - тоже чистый ноль.
Но зачем самоубийством кармы заниматься
А зачем заниматься её сохранением? Чтобы убить больше времени на комментирование? Хабр потребил несколько аккаунтов, без разрушения кармы у меня экспериментальные воздействия удавались плохо, позволил сделать интересные (мне) выводы об аудитории, и на этом всё - свои идеи любителя социологии я исчерпал.
Поделитесь, мне реально интересно в чем толк
Делиться уже пробовал, попробую объяснить.
Flutter не использует
На то, ЧТО делает Флаттер, ответ - КАК он это делает. А делает он как раз то, о чём вам говорят - имитирует натив. Да, самостоятельно рисуя пиксели. Да, не используя нативные компоненты, то есть через задницу, и не используя WebView, то есть не делая то, что было бы следующим по умности решением после выработки своего единственного языка дизайна.
И представлять «хотите то, хотите сё» как достоинство - глупо, медвежья услуга, это недостаток. Причины: классика от «партнёров» про «где три варианта - там нет ни одного хорошего» и то, что iOS с Андроидом не исчерпывают варианты для хотеть.
Это эволюция рендера ради предсказуемости
Ага, «эволюция». А сдача в плен - эволюция оборонительной тактики. Ещё бы «отрицательный рост» приплели. Что такая «эволюция» возможна - это для Флаттера плюс, кстати, архитектурные ошибки такого масштаба обычно фатальны. А факт её существования - минус…
Это спланированная архитектурная модернизация:
А почему ЭТО не «эволюция»? То же самое, вариант два - не случайность, значит.
Flutter был нужен только под Fuchsia» — утверждение без доказательств.
А по жизни доказательства появляются раньше или позже чем становится уже поздно? Ещё недавно я бы написал - это очевидно. Сейчас, когда Гугол одной рукой превращает Андроид в терминал приёма приказов по цифровому концлагерю, а другой вставляет в него виртуалку с Дебиан - уже не очевидно. Но чем больше в Гугле шизы - тем больше риск для Флаттера.
Dart “не идеален для UI”» — мимо цели.
Где я говорил идеален или нет? Дарт был выбран за то, что лучше всего, в отдельных воспоминаниях - идеально, подходил для создания графического фреймворка. Подход изначально ошибочен - если в фреймворке и приложении используется один язык, что пока однозначно но AI не дремлет, то выбор языка должен основываться на интересах приложения, а не фреймворка.
Что это породило, в третий раз, «эволюцию» - отменно видно по эволюции Dart. Я вижу как люди удивляются - Dart такой классный, а вне Флаттера не живёт, почему так? Гипотеза - и поэтому тоже.
«Hot reload — это “магия”, которую я ещё в раннем .NET видел» — и что?
А то, что приводить Hot Reload как преимщество - можно, но осторожнее, чтобы не выглядело её натягиванием на.
Ниже написали, что у Флаттера нет конкурентов, разве что Qt. Похоже на то, но Zig…
чистый ноль
Господин, вообще-то чистый ноль - это абсолютная пустота, т е абсолютная истина, ничем не запачканная. В данном контексте имеется в виду не запачканная моей призмой восприятия и лишенная моей отсебятины.
И это правда, я привожу вам аргументы, без отсебятины, по ссылкам вы можете найти подтверждение моим словам, вы не приводите ссылок, потому что у вас их нет, потому что всё, что вы говорите - это ваша отсебятина.
имитирует натив. Да, самостоятельно рисуя пиксели.
т е когда художник мастерски рисует ваш портрет, прям один в один - он плохой художник? Флаттер более универсален чем натив, универсален тем, что может рисовать как в стиле платформы, так и как угодно по другому.
Да, не используя нативные компоненты, то есть через задницу
То есть вы ходите в туалет по большому не используя нативные компоненты? Зачем же вы уподобляетесь Флаттеру?
Хабр потребил несколько аккаунтов, без разрушения кармы у меня экспериментальные воздействия удавались плохо, позволил сделать интересные (мне) выводы об аудитории
Вам сливают карму потому что доказываете людям свою истину, которая им в принципе не нужна.
Dart такой классный, а вне Флаттера не живёт, почему так?
Нормально живет. У меня куча консольных программ, написанных на дарте, которые я использую в обиходе, а если нужен интерфейс с кнопками - на флаттере уже всё есть для этого. В современном мире люди привыкли взаимодействовать с программами через кнопочный интерфейс, для этого дарт использует флаттер.
Похоже на то, но Zig…
Что Zig? В каком месте Zig стал конкурентом Флаттера? Zig - это язык, а Флаттер - это фреймворк.
Но чем больше в Гугле шизы - тем больше риск для Флаттера.
Какой такой риск? Если Гугл сегодня подохнет полностью, то, возможно, пострадает андроид. Даже если исчезнет андроид, у Флаттера останется еще минимум 5 платформ. Вы ошибаетесь в том, что думаете, что Флаттер живет на деньги Гугла - это не так. Гугл поддерживает ту часть экосистемы Флаттер, в которой Гугл заинтересован, а остальная огромная часть - это продукт опенсорсного сообщества. Чтобы пострадал Флаттер - надо уничтожить весь опенсорс.
Flutter был нужен только под Fuchsia
Откуда вы это взяли? Вообще то он разрабатывался для кроссплатформы и даже Fuchsia поддерживается.
Ничерта Вы не понимаете, включая то, что Вам говорят
как раз то, о чём вам говорят
"Мне говорят" - и что? Есть такая телепередача "Пусть говорят". У меня есть свои мозги, Господин. Мне всё равно что мне говорят - если под этим нет оснований. Напишите статью, в которой полностью раскройте недостатки Флаттера со всеми приведенными основаниями.
Я не видел ни одной статьи о недостатках Флаттера и недостатках Дарта. Но в процессе работы я сам вижу, что некоторые моменты можно было бы переделать в Дарте, однако почему-то, те, кто негативно отзываются о Флаттере - никогда об этих моментах не упоминают. Может быть потому что они нихрена не разбираются во Флаттере? Всё ваше мнение о Дарте и Флаттере - результат вашей полной некомпетентности в Дарте и Флаттере.
Раунд!)
Я тут глянул приложение google pay у себя на телефоне и оно на обычных view, даже не compose. Flutter там и близко нет.
Compose вроде выглядит всё же более перспективно, нет? Полностью нативная реализация для Android. И единый интерфейс, в перспективе, везде.
Ну и коллеги жаловались я помню, что то библиотеки не всё могут из-за различий в платформах ios/Android, то баги фиксятся долго, то проблемы с нативным кодом каким-то. Ну и с обновлениями под новые таргеты вроде тоже не так как в нативе - в день релиза не поднимешь всё что нужно.
подскажите, на флаттере уже можно сделать нативную панельку Liquid Glass в iOS, или надо немного подождать, или "это вам не должно быть нужно" (тм)?
Тут основной вопрос - победит ли KMP.
победит ли KMP.
Флаттер не нужно сравнивать с КМР. КМР по сути есть мультиплатформенный компилятор и не более, тут уместнее параллели с Дарт. Если же говорить о фреймворках, то это Flutter vs Jetpack Compose. Первый универсальный, общего назначения, второй чисто гуёвый. Да, Котлин как язык мощнее Дарт. Но вот связка Dart+Flutter на данный момент выглядит предпочтительнее, чем Kotlin+Jetpack – по уровню зрелости, универсальности и количеству поддерживаемых платформ. Возможно, со временем это изменится – но сейчас так.
Ещё немаловажный момент: на флаттере можно писать, не имея глубокого знания целевых платформ. С КМР/Jetpack так не получится, они используют нативные компоненты, которые нужно уметь правильно готовить.
Если смотреть по языковым фичам, котлин не мощнее, по комплексному перекрытию множеств из фич - где-то котлин устроен богаче, где-то дарт устроен богаче. В остальном полностью согласен.
Если смотреть по языковым фичам, котлин не мощнее
У дарта есть пара серьёзных недостатков. В частности, не поддерживается позднее статическое связывание – что зачастую приводит к необходимости городить громоздкий свич по типам внутри обработчика. Ну и вот такие приколы случаются – код, который прекрасно компилится, с грохотом падает в рантайме, хотя вроде не проблема обнаружить ошибку на этапе компиляции:
const Map<int, String> m = {1: "const"};
m[1] = "modified";
// Uncaught Error, error: Error: Unsupported operation: Cannot modify unmodifiable map
const List<int> l = [1];
l[0] = 2;
// Uncaught Error, error: Error: Unsupported operation: indexed setИли вот, например – почему-то так нельзя:

Да, я и не говорю, что у Дарта нет недостатков, я говорю что множество языковых фич Дарта не является подмножеством фич Котлина, эти множества находятся в состоянии неполного перекрытия.
В Котлине тоже есть моменты, которые по сравнению с Дартом выглядят недостатками и приходится писать не "прямо вот так", а "через бок", потому что прямо нельзя.
С множеством недостатков в языках, я думаю история такая же как с множеством фич, т е в среднем паритет, но здесь надо учитывать тот факт, что Котлин то и дело цепляет жаву с её библиотеками и проблемами, чего в Дарте по умолчанию нет.
то это Flutter vs Jetpack Compose. Первый универсальный, общего назначения, второй чисто гуёвый
Ну это уже буквоедство - и так понятно о чем речь. Ясно что одна ниша - кроссплатформенные приложения. Многим уже давно понятно что кроссплатформа состоялась и дальше будет только развиваться. И вопрос - кто же будет лидером.
KMP+Jetpack Compose даже банальное - приложения меньшего размера, а это тоже бывает важно. Пакетов мало, но все необходимое есть.
А на счет общего значения - это в каком смысле? KMP+Jetpack Compose - для чего вам не подходит, где бы вы использовали Flutter?
KMP+Jetpack Compose даже банальное - приложения меньшего размера
Можете это как-то подтвердить? У меня приложение (то самое, 86К строк кода на дарте) имеет такой вот размер:

Не Котлине будет меньше? На сколько? Как это скажется на удовлетворённости юзеров?
А на счет общего значения - это в каком смысле? KMP+Jetpack Compose - для чего вам не подходит, где бы вы использовали Flutter?
Вы не поняли, я писал только о самих фреймворках. JPC – чистый гуй, там больше ничего нет. А во флаттере множество пакетов общего назначения. В Котлине такие тоже есть, разумеется – но как отдельные библиотеки именно Котлина, а не часть JPC.
Если же говорить о том, что не подходит – когда мы начинали кроссплатформу, КМР был очень сырой ещё, в ранней бете – вообще не вариант. Но пожалуй, и сейчас выбрал бы флаттер – по уже упоминавшейся причине: КМР требует компетенций в каждой из целевых платформ. Фактически, отдельные команды для написания бизнес логики (собственно КМР) и нативных интерфейсов под андроид/айос. Последнее ещё и противоречит нашей концепции единого UX на всех платформах – мы не пытаемся мимикрировать под них, экраны выглядят и работают одинаково везде. Так что мне куда проще работать с одной командой и единой кодовой базой.
И вопрос - кто же будет лидером.
Такой вопрос возникает, когда вы знаете Котлин и вам не хочется изучать Дарт.
Т. е. вопрос - еще подождать или всё таки изучить Дарт?
Если вы уверенно владеете Дартом и Флаттером, то вопроса кто будет лидером кроссплатформы - не возникает, потому что Флаттер - уже лидер.
КМП только недавно начал поддержку айос (только начал!), только недавно начал возиться со skia, а на Флаттере это всё уже годами обкатано по полной.
Начать что-то и годами обкатывать, исправлять баги, улучшать, вывести в стабильную нишу - это на порядок разные по трудоемкости работы.
Если искать конкурентов Флаттеру по сути, то это никак не КМП, это скорее Qt, но там проблематичен сам язык C++, долгий порог вхождения, бизнесу это не нужно.
приложения меньшего размера, а это тоже бывает важно.
1) на сколько меньше? По факту.
2) когда это бывает важно? в глухой российской деревне, где интернет одинджи и люди ходят с телефонами на вытянутых руках перед собой в поисках холма повыше?
> С КМР/Jetpack так не получится, они используют нативные компоненты, которые нужно уметь правильно готовить.
Ушибочка. Compose имеет возможность интеропа с нативными компонентами, но не заставлять их использовать, ровно как и флаттер.
В наше время, когда Хабр наводнили водянистые продукты жизнедеятельности ЛЛМ-ок, я получил несказанное наслаждение читая статью, написанную живым человеком. Столько неприкрытой жопаболи, желания показать, что он выше гавкающих шавок и мосек я не читал давно. Спасибо! По технической стороне ничего не могу сказать, не разбираюсь в UI-технологиях.
Тут все просто
Берите 50 самых топовых приложений из Google Play в категории, скажем, "Новости", и считаете, сколько там флаттера
Кто-то делал подсчеты?
Такое ощущение что все мобильные разработчики сговорились. Каждый раз как видишь статью про flutter набегают люди и не обосновано начинают критиковать за все что там есть.
Хоронят наш любимый Flutter действительно ежегодно, спасибо автору, что поднимает снова эту тему. В прошлом году делали подобный ресерч.
«Инструменты тормозят, IDE падает, кодогенерация медленная»
Это реальная проблема на больших проектах. build_runner может тупить на 50 тысячах строк кода.
Да ладно 😁


Здесь скорее акцент, чем всеобщий охват. Статья написана не конкретно за 2025 год и последние версии Дарта, как минимум 3+. И имелось ввиду большие проекты разных архитектур. Версии Дарта и Флаттера в прошлом имели некоторые проблемы с производительностью на больших проектах, и, как я вижу в русскоязычных сообществах - некоторые люди не привыкли обновляться ради 30+ процентов прироста к производительности, жертвуя этим самым "милым, рабочим, обкатанным", т е стабильностью.
У меня тоже большие проекты на Дарте и Флаттере, НИ РАЗУ от плохой производительности я не страдал. Но разбор проблем в коде товарищей показал, что, как минимум раньше, такие проблемы были. Поэтому и пишу статьи с посылом обновлений)
Dart стал единственным языком, который успешно добавил полноценный sound null safety в уже существующий язык.
C# - ну да, ну да, пошел я нах*р.
C# добавил "Nullable Reference Types" (NRT) в C# 8.0. Это огромное улучшение, но оно не считается "sound". Это, по сути, продвинутая система статического анализа и предупреждений. Вы можете проигнорировать эти предупреждения или использовать "null-forgiving" оператор (!), чтобы заставить компилятор замолчать. Dart не позволяет такого "обмана". Я пять лет кодил на шарпе перед переходом на Dart, Dart как раз мне напоминает минишарп и мне очень нравился шарп, так что его бы я точно не стал посылать.
force unwrap вполне себе и в дарте работает
double square(double? value) {
return value! * value!;
}В обоих языках есть !, но делают они разное.
В C# это null-forgiving оператор: он просто убирает предупреждение статического анализатора и не добавляет никакой проверки в рантайме, поэтому переменная с типом non-nullable всё равно может оказаться null и дать NullReferenceException позже.
В Dart ! — это null assertion: он выполняет реальную проверку и при null сразу бросает исключение в этой точке. Именно поэтому использование ! не ломает sound null safety в Dart: программа не может продолжать работу в состоянии “тип обещает non-nullable, а значение — null”; она падает прямо на !. В случае C# сами nullable reference types формально не считаются sound.
А на реддите бывали? Каждую неделю хоронят, да всё никак похоронить не могут. Люди в сабреддите уже модеров просят в бан отправлять хоронильщиков.
И ведь никому от такого контента не станет лучше, а людей, которые могли/хотели бы взять флаттер в качестве инструмента такие разговоры могут и отвадить.
Ну и собственно: isflutterdead.com (тлдр: no)
Как на Хабре каждый раз хоронят Flutter