И 5 причин, по которым вам тоже понравится Flutter

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

Попробовав Flutter, я был полностью впечатлен фреймворком. Как разработчик React, я мог полностью понять, как работает Flutter. Вот пять причин, почему.

Декларативная

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

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

Компоненты и виджеты

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

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

Состояния и реквизит

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

У Flutter есть два основных типа виджетов: без сохранения состояния и с отслеживанием состояния. В виджетах с отслеживанием состояния мы можем вызвать перестройку виджета, вызвав setState(). Знакомо, правда?

Фактически, React имеет то же имя setState() для обновления состояний. Подобно тому, как React обновляет дерево DOM, Flutter создает новое дерево виджетов каждый раз, когда оно перестраивается.

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

Почти как JavaScript

Flutter написан на Dart. Честно говоря, я никогда не думал, что это будет так похоже на JavaScript. Фактически, мне буквально даже не нужно было изучать Dart, чтобы научиться Flutter.

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

Напротив, JavaScript - это интерпретируемый язык, который поддерживает как динамическую, так и утиную типизацию. Утиная типизация - это концепция, в которой тип класса или класса объекта менее важен, чем методы, которые он определяет. Следовательно, при утином вводе вместо проверки типов мы проверяем наличие заданного метода или атрибута.

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

Сообщество разработчиков

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

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

Почему не React Native?

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

Я определенно не откажусь от React Native. У него отличное сообщество, отличная документация, функции и свои сильные стороны. Однако с этим есть некоторые особенности.

Родные приложения

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

Качество пакетов

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

Документация

В-третьих, я почувствовал, что у Flutter есть отличная подробная документация с руководствами, видео и примерами. Документация React Native больше предназначена для веб-разработчиков, и в ней есть некоторые пробелы.

Сообщество

И последнее, но не менее важное: присутствие сообщества!

Тенденции переполнения стека показывают явный рост популярности Flutter, и он уже обогнал React Native. Это действительно важный фактор, потому что как разработчик я хочу знать, что другие разработчики тоже вовлечены в эту технологию. Когда мне нужна поддержка, это дает мне уверенность в том, что я могу положиться на мои коллеги-разработчики! Фреймворк или технология настолько сильны, насколько сильны сообщества, которые их принимают, поддерживают и развивают.

Это все, ребята

Итак, пять причин, по которым разработчикам React понравится Flutter. Попробуйте Flutter в своем следующем побочном проекте и оставьте свои комментарии ниже!

Удачного взлома!