Блог компании Wrike
Dart
Разработка мобильных приложений
Разработка под Android
Разработка под iOS
Комментарии 24
+1

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

0

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

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

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


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


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

+2

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


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

if(Platform.isIOS)
//...

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

0

Да, спасибо.


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

0

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

+1

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


<widget>
   <childwidget1>
     <childwidget2>

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

-1
Меня наоборот радует. Большой вложенности не будет за счет декомпозиции частей виджета в отдельные методы или вообще виджеты, а отсутствие разделения между кодом и разметкой очень радует.
0
Т.е. это прям код который имеет тот же синтаксис, не требует заключать себя в кавычки, ide его без проблем подсказывает где нужно с учетом контекста, проверяет все типы и т.д.?
0

Если хотите с проверкой типов, то можно юзать tsx, часть typescript'a.


Кавычки будут (это же xml всё-таки), всё остальное верно.


<widget onClick={() => alert(1)}>
   <children>
      ...
   </children>
</widget>

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

0
Скорее всего вкусовщина потому что у меня вызывает отвращение такой вид, простите.
Из любопытства — а можно например прописать что то в стиле:
if(value==...) {
    <children1>
      ...
   </children1>}
else {
    <children2>
      ...
   </children2>
}
0
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>
);
0

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

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

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

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