Pull to refresh

Comments 33

Относительно flask и django, что можете сказать? Проще? Лучше? Удобнее? Быстрее?

Честно говоря из примеров кода веет некоторой императивщиной, не уверен стоит ли радоваться такому подходу:


page.add(tb1, tb2, tb3, tb4, tb5, b, t)

Но это вкусовщина.


На мобильных устройствах приложение распространяется как Progressive Web App (PWA).

А вот от этого точно безрадостно. Flutter Web (когда я последний раз его пробовал) хорошо работал только на десктопе, на мобилках это ощущается неконкурентноспособно по сравнению с вебом/нативом.

Я вообще не любитель строить UI прямо в коде. Для меня это немыслимо. К этому просто невозможно привыкнуть. Во Flutter это также жирный минус. Это не код, это какое-то спагетти, в котором невозможно разобраться уже спустя неделю.

Тем страннее видеть такую статью за Вашим авторством, KivyMD :)

Ну, почему бы и нет :) Любая технология/фреймворк/библиотека имеют право на существование.

Просто поюзал примеры из документации.

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

Ну почему же немыслимо? На python да, это ужасно, но тот же jsx и на вид ничего себе так, и по функционалу тоже прилично. С небольшой сноровкой даже в больших проектах можно применять. Тот же kotlin с своим dsl и контрактами тоже может дать хороший результат.

пс: дизайнеры, не бейте меня, пожалуйста

Да, разработчики Flet пообещали, что в скором времени они избавятся от использования PWA на мобильных устройствах.

Flutter имел бы колоссальный успех, напиши его на TypeScript, а не на Dart.

или был бы стотысячным обыденным фреймворком без значительных преимуществ и меньшим перформансом.


Давайте учитывать, что Дарт дает не только минусы, но и преимущества. Язык производительный, с не плохой типизацией (лично мне не хватает больше фишек с дженериками и макросов), динамично развивается, имеет хороший быстрый тулинг и набор библиотек достаточный для 90% задач мобильной разработки и есть подвижки для серверной (но это не конкурент гигантам вроде .net)

Ну, скорее, дело не в Dart, а в инженерах самого фреймворка Flutter, которые спроектировали такой бездарный подход к написанию кода во Flutter.

Бездарность в декларативном интерфейсе? Вообще принято отделять представление от логики во всех популярных архитектурах. Но здесь это на усмотрение разработчика, а не безусловно, как в веб-приложениях. Использование того же языка для представления — жирный плюс. По тому же пути вслед пошли и Apple и Android. Всё это даёт меньший размер приложений, увеличивает скорость разработки, делает код более понятным, а не кучей файлов на разных языках.

Dart — это просто другой язык. Не нужно его сравнивать с Typescript и даже со своей же первой версией. Скорее, это Java-лайт (только компилируется в нативный код), мне лично очень напоминает C#, а сам фреймворк предназначен всё-же для приложений.

https://developer.android.com/jetpack/compose

https://developer.apple.com/xcode/swiftui/

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

Так существует куча стейт менеджеров, начиная каким нибудь provider и заканчивая riverpod или getx.

По факту получается примерно тоже, что и jsx+mobx

Ну, понятно, а сразу по-человечески сделать нельзя было...

Философия Flutter в минимальном необходимом SDK и максимально простой разработке на одном языке. Как я отметил выше, так же нечеловечески после выхода Flutter сделали Apple в Swift UI и опять же Google в Composer. Насильственные рамки, аналогичные web-, отменили. Архитектура отдана на откуп разработчику.

Можно писать полный хаос, можно следовать, например, рекомендуемому Google BloC паттерну или использовать десятки библиотек стейт-менеджеров (тот же MobX). Часто для одноэкранного приложения (например, примитивные примеры с их сайта) достаточно не использовать ничего. И это будет быстрее. Для средних и крупных проектов нужно использовать дополнительную извилину, и знать, какие есть архитектуры и какие библиотеки их реализуют.

Главная проблема с Флаттером — полное отсутствие нормального маркетинга, почти как во всём у Google. Если после эвента Apple вся пресса обсуждает появившиеся анимированные эмодзи, то тут новости приходят в Гугл-группы, появляются на несвязанных мероприятиях. Да даже в комьюнити не все знают о новом трёхмерном движке флаттера, например. Планируется ещё заехать на поляну Unity.

Ну и слишком быстро он пару лет обновлялся c отсутствием обратной совместимости. Сейчас всё устаканилось, релизы по расписанию.

Да плевать, что они там придумали. Это бездарно. А впарить можно полную дичь. Но нужно же думать самостоятельно в конце концов. Сможете ли вы открыть код на Flutter и, глядя на него, сказать, какой UI этот код реализует. Нет, не сможете. Потому что там полный хаос из спагетти виджетов, которые не понятно в какие контейнеры выложены. Проследить дерево и иерархию компонентов просто невозможно. Это современный подход называется?

Видимо, вы видели только код начинающего программиста. Это не зависит от языка. Обычно виджеты не более экрана занимают и выносятся в отдельные файлы. А так вообще есть же DevTools, где всё дерево графически представлено, работа с инструментарием это основы. Средства отладки в SDK просто замечательные.

Вы говорите о примерах типа Hello, world, где все понятно даже начинающему. Более менее сложный экран вы никогда не сможете представить, глядя на дерево виджетов, которое реализовано прямо в коде. Я видел только два инструмента, где это реализовано грамотно: это Qt QML и KV language. Всё остальное - бездарная реализация с которой приходится мириться.

своими подходами к реализации UI и бизнес логики
Qt QML очень пхож на .net WPF
а Flutter очень близок к React
я работал со всеми 4мя технологиями, и первые 2 это реальная боль: тебе из бизнеслогики приходится оперировать элементами UI — this.intut.value = "..."; подход застрявший в энтерпрайзе 10ти летней давности.

Во Flutter же в widget передаётся модель данных, на основании которой строится UI.

А по поводу что у Qt нектар по сравнению с Flutter посмотрите на скриншот, разницы в вёрстке нет
image
joxi.ru/xAeppljHM4Lve2

Посмотрели. Что вы хотели показать людям? Как Flutter убог. Спасибо, вроде и так знали все.

Тут выше писали про ТайпСкрипт. В чем его преимущества над Дарт?

А так да. UI верстать на нём боль.

Не надо учить Dart, который больше нигде, кроме Flutter не используется. Создание виджетов - тоска и безысходность. Очень неудобно. Typescript - очень популярен, на нем очень легко писать, хорошая типизация.

хорошая типизация)) спасибо посмеялся))
пишите честно что вы как маленький псевдотипизация

Казнить нельзя помиловать... Пять раз прочитал ваше сообщение, но смысла так и не понял.

Автор коммента имеет ввиду что Dart имеет свою VM и типы там чекаются в рантайме (дарт Независимый язык можно сказать), тогда как typescript будет скомпилирован в javascript где нет типов как таковых.

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

Sign up to leave a comment.

Articles

Change theme settings