Как стать автором
Обновить

Комментарии 24

А как же Kotlin? Прощаемся, не успев распробовать?

Flutter можно рассматривать как фреймворк для визуального представления. А бизнес логику писать на Kotlin по-прежнему

Не совсем понял — при использовании флаттер, UI нужно писать отдельно для каждой платформы? Или гугл выпустил какой-то набор компонент, которые по разному отображаются в зависимости от платформы?

Если нужно, чтобы компоненты выглядели нативно, то нужно писать свой UI под каждую платформу.

Понял, спасибо.


Для react native существует, например, nativebase.io, который под каждую платформу отображает нативный элемент.


Видимо, для флаттер придётся подождать сообщества.

Есть несколько способов:


  • если нужен нативный вид на каждой платформе — придётся разделять UI. В наличии есть Cupertino-like widgets и Material
  • реализовать свой UI, который будет подходить везде
    Но не всё так страшно, если написать правильно, то не придётся везде вставлять

if(Platform.isIOS)
//...

можно написать фабрику, которая будет вам возвращать виджет в зависимости от платформы

Да, спасибо.


Как реализовать понятно, вопрос о том, есть ли уже готовое.

Ещё вопрос — неужели всех устраивает монструозный (как по мне) трёхэтажный синтаксис описания виджетов? Есть ли планы по разработке подобия jsx?

Ну и в jsx можно написать


<widget>
   <childwidget1>
     <childwidget2>

тут вопрос в разделении кода. При правильном написании виджеты маленькие и не страшные

уже есть транслятор jsx во флаттер?

Можно почитать вот эту ветку там оооочень много всего про это написано

Меня наоборот радует. Большой вложенности не будет за счет декомпозиции частей виджета в отдельные методы или вообще виджеты, а отсутствие разделения между кодом и разметкой очень радует.

Всё это относится и к jsx.

Т.е. это прям код который имеет тот же синтаксис, не требует заключать себя в кавычки, ide его без проблем подсказывает где нужно с учетом контекста, проверяет все типы и т.д.?

Если хотите с проверкой типов, то можно юзать 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>
);

Пока там есть проблемы в iOS, как и написано в issue. Но да, таких новостей не было. Если сильно нужно — можно спросить отдельно

Скачал сэмпл, лагает на далеко не слабом телефоне с чистым андройд

В релизной сборке?

Уверен что в дебаг сборке. Потому что например демка выложенная в маркет гуглом на моей nokia 5 (стоимостью 10к рублей за новый) просто летает.
почему бы не относиться к Flutter как к инструменту для быстрого UI
лучше бы эти силы бросили для Android Studio, кто мешает в ней сделать хороший UI редактор?

Это же параллельные вещи. К тому же можно использовать VS Code

Зарегистрируйтесь на Хабре, чтобы оставить комментарий