Flutter все еще в новинку. Дайте ему время сиять

Каждый день мы видим, что кто-то плохо отзывается о Flutter. Большинство разработчиков отмечают, что Ionic и React Native лучше, чем Flutter, потому что у Flutter очень много проблем с рендерингом. С другой стороны, некоторые разработчики отмечают, что существующих плагинов недостаточно для выполнения того, что они планировали. Очень немногие разработчики заметили, что сборщик Flutter создает довольно большие конечные двоичные файлы на нескольких платформах.

Все это правильно в соответствии с текущим этапом фреймворка Flutter. По сравнению с другими зрелыми фреймворками Flutter - это проект, которому всего три года. Первоначально Ionic был выпущен почти восемь лет назад. React Native - это проект пятилетней давности. Чтобы все засияло, нужно время.

Помните Голанг? Изначально все думали, что это еще один компилируемый язык. Теперь все понимают, что его цель заключалась в том, чтобы сделать его удобным как для оборудования, так и для разработчиков. Другими словами, Golang имеет хорошую производительность с понятным для человека синтаксисом языка. Теперь Golang, несомненно, отлично подходит для всевозможных сложных проектов разработки программного обеспечения, требующих высокой производительности. Точно так же Flutter пытается быть дружелюбным как к оборудованию, так и к разработчикам.

Flutter имеет действительно собственные элементы управления графическим интерфейсом, потому что нет веб-просмотра для рендеринга. Кроме того, он эффективно взаимодействует с собственными системными API. В следующей статье подробно рассматривается канал связи Dart-to-native.



Flutter - универсальный нативный фреймворк

Изначально Flutter использовался как решение для кроссплатформенной разработки мобильных приложений. Команда Flutter также расширила Flutter для настольных платформ, потому что и Skia Graphics Library, и среда выполнения Dart являются кроссплатформенными проектами. Теперь мы можем использовать Flutter для создания программного обеспечения для Android, iOS, Linux, Windows, macOS, Web и Fuchsia OS. Если вы выбрали Ionic для создания своего мобильного приложения, вам, возможно, придется написать другую базу кода с Electron's API для своего настольного приложения. Flutter действительно поддерживает практически все современные операционные системы. Это делает Flutter универсальным фреймворком. Следовательно, вы можете поддерживать единую базу кода для своего мобильного приложения, настольного приложения и веб-приложения.

В настоящее время все услуги переходят в облако. Таким образом, Интернет похож на другую платформу. Несомненно, Flutter - отличный вариант для создания прогрессивных веб-приложений (PWA) и одностраничных приложений (SPA).

Flutter - это первый в мире инструмент Write Once Run Anywhere (WORA) для разработки приложений с графическим интерфейсом.

Производительность и простота использования

React Native хорошо работает, если ваше приложение имеет много динамических элементов графического интерфейса, поскольку оно будет использовать виджеты графического интерфейса, предоставляемые операционной системой. Но он не будет хорошо работать для такого количества вызовов собственных API, потому что собственные операции проходят через мост JavaScript, аналогичный Ionic. Разработчики по-прежнему любят React Native, потому что он предлагает дружественную среду разработки на основе React. С другой стороны, Flutter показывает хорошую производительность, потому что здесь нет моста JavaScript, а также у него удобный рабочий процесс разработки.

Flutter - единственный фреймворк, который дает вам менее сложные API-интерфейсы среды разработки и хорошую производительность. Другие фреймворки не смогли сбалансировать эти два фактора, потому что они решили использовать мост JavaScript. Приложения на основе моста JavaScript плохо работают на устройствах низкого уровня из-за потребления ресурсов выше среднего.

У Flutter только один конкурент

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

Но если мы создали настольное или мобильное приложение с использованием фреймворка Flutter, оно становится приложением Flutter, а не родным приложением для конкретной платформы. Причина в том, что Flutter определяет свой собственный пользовательский опыт с помощью своего набора инструментов виджетов. С другой стороны, каждая операционная система определяет свой собственный пользовательский опыт с помощью своего набора инструментов виджетов. Я заметил эту ситуацию, когда разрабатывал простое приложение Flutter для Linux.

В контекстном меню есть возможность вставить смайлы, как показано ниже в Ubuntu.

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

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

Однако Flutter реализовал iOS-подобную тему виджетов, которую разработчики могут использовать вместо дизайна материалов для iOS. Но в операционных системах, таких как Ubuntu, нет стандартной темы для элементов управления пользовательского интерфейса, а внешний вид зависит от установленной среды рабочего стола. Поэтому разработка нативных приложений для конкретных платформ - единственный конкурент концепции Flutter.

Заключение

Почти все среды разработки кроссплатформенных приложений ориентированы на простоту разработки. Мы должны ценить команду Flutter, потому что они думали и о производительности, предлагая удобный для разработчиков API. Все эти проблемы с рендерингом, несколько раздутыми двоичными файлами и отсутствием плагинов являются временными и могут быть решены. Дайте Flutter немного времени, чтобы продемонстрировать свою мощь. Возможно, Flutter может обеспечить отличный пользовательский интерфейс, который лучше, чем все существующие приложения для конкретной платформы.

Возможно, в будущем мы все будем использовать приложения Flutter на ОС Fuchsia. Тогда нам придется переписать все наши приложения с Flutter для Fuchsia OS.