Комментарии 24
Не совсем понял — при использовании флаттер, UI нужно писать отдельно для каждой платформы? Или гугл выпустил какой-то набор компонент, которые по разному отображаются в зависимости от платформы?
Есть несколько способов:
- если нужен нативный вид на каждой платформе — придётся разделять UI. В наличии есть Cupertino-like widgets и Material
- реализовать свой UI, который будет подходить везде
Но не всё так страшно, если написать правильно, то не придётся везде вставлять
if(Platform.isIOS)
//...
можно написать фабрику, которая будет вам возвращать виджет в зависимости от платформы
Ещё вопрос — неужели всех устраивает монструозный (как по мне) трёхэтажный синтаксис описания виджетов? Есть ли планы по разработке подобия jsx?
Ну и в jsx можно написать
<widget>
<childwidget1>
<childwidget2>
тут вопрос в разделении кода. При правильном написании виджеты маленькие и не страшные
Всё это относится и к jsx.
Если хотите с проверкой типов, то можно юзать tsx, часть typescript'a.
Кавычки будут (это же xml всё-таки), всё остальное верно.
<widget onClick={() => alert(1)}>
<children>
...
</children>
</widget>
Может и вкусовщина, но мне кажется, было бы гораздо легче тех же реакт нативщиков перевести на флаттер.
Из любопытства — а можно например прописать что то в стиле:
if(value==...) {
<children1>
...
</children1>}
else {
<children2>
...
</children2>
}
const Widget = () => {
if (1 === 1) {
return <div>Nice One</div>
}
return <div>Nice Two</div>
};
const Widget1 = () => (
<div>
{1 === 1 && <div>Nice One</div>}
{2 === 1 && <div>Nice Two</div>}
</div>
);
const Widget2 = () => (
<div>
{() => {
if (1 === 1) {
return <div>"Nice One"</div>
}
return <div>"Nice Two"</div>
}}
</div>
);
Имеется в виду эта тема: github.com/flutter/flutter/issues/14330
почему бы не относиться к Flutter как к инструменту для быстрого UIлучше бы эти силы бросили для Android Studio, кто мешает в ней сделать хороший UI редактор?
Детальный разбор того, что Google показал на конференции FlutterLive (и что это значит для Dart и мира)