Инженеры из компании Geeky Ants рассказали о том, почему приняли решение перейти с React Native на Flutter.
Мы в GeekyAnts работали с React Native с момента его выхода в 2015, и можем сказать, что являемся одной из ведущих компаний, использующих React Native. За эти несколько лет работы мы заметили несколько проблем в приложениях React Native и захотели чего-то большего. В итоге, поиски привели нас к Flutter от Google.
Flutter — новый инструмент от Google, позволяющий разработчикам писать кроссплатформенные приложения, которые можно запускать на различных системах (например, на Android или iOS) с общей кодовой базой. Сам инструмент написан на C и C++. Предоставляет движок для 2D рендеринга, React-подобный FRP фреймворк и набор виджетов в стиле Material Design.
Начало работы с Flutter
В этом июле у наших разработчиков появился шанс поговорить с членами команды Flutter. Мы обсудили его разработку, функционирование и будущее проекта. Наше общение с командой Flutter продолжается, мы регулярно обсуждаем с ними свои эксперименты.
Преимущества Flutter над React Native
- Приложения Flutter компилируются в машинный код, им не нужна связь между JavaScript и машинным кодом, как в React Native.
- Flutter не использует виджеты Platform OEM. Это увеличивает гибкость виджетов, настраивать их намного проще, чем в React Native.
- Dart — это типизированный язык. Это означает, что в отличие от React Native, Flutter не подходит для таких вещей, как TypeScript или ReasonML.
- Инструменты Flutter отлично подходят для VSCode и IntelliJ.
- Поддержка, предоставляемая Flutter от Google, намного лучше, чем поддержка, предоставляемая React Native от Facebook.
Что мы создали при помощи Flutter?
- Мы создали курируемый список open source-тем для Flutter под названием Start Flutter.
- Под впечатлением от NativeBase Market мы создали Flutter Market.
- Мы переписали наш знаменитый React Native Starter Kit для Flutter. И мы впечатлены результатом.
Новая версия приложения работает гораздо лучше, чем версия на React Native. В основном, это происходит потому, что Flutter имеет меньше взаимодействий с нативным кодом, чем React Native. Кроме того, у Flutter есть встроенная библиотека компонентов интерфейса, поэтому импорт сторонних UI-библиотек не требуется. Поэтому в Flutter-версии приложения Flat анимации выглядят гораздо лучше.
Как мы хотим развивать сообщество?
- Мы являемся одними из первых последователей Flutter и хотим сделать то же, что делали с React Native. Так как Flutter ещё находится в стадии разработки, в нем существует много пробелов, с которыми мы хотим помочь.
- Мы использовали Redux в качестве библиотеки для управления состояниями в React, и у нас есть похожая вещь для Dart. Мы хотели бы продолжать эксперименты в создании чего-то подобного для Flutter.
- Мы планируем ещё несколько наборов для начинающих, чтобы привлечь больше разработчиков к Flutter. Недавно мы запустили React Native Seed, инструмент, который обеспечивает вас базовыми инструментами React Native для создания приложения. Мы хотим создать подобный инструмент для Flutter.
- Вы могли заметить, что оформление кода в Flutter отличается от веба. Мы планируем создание похожего на веб CSS для Flutter.
- Также мы бы хотели добавить поддержку Flutter в BuilderX, наш новый дизайнерский инструмент, который пишет React Native за вас.
Let's call it "flutter_css.dart" which can be used like this. It will expedite the adoption in my views. :-) pic.twitter.com/DLYvCXQz9r
— Sanket Sahu (@sanketsahu) August 29, 2017
Flutter чудесен! Но…
- Flutter использует Dart, который является самостоятельный языком, а не диалектом другого. Однако Dart должен показаться простым для разработчиков с опытом разработки на Java, C#, JavaScript, TypeScript или ActionScript. Команда Flutter предполагает, что Dart нужен в Flutter, потому что он предлагает разработчикам мощные инструменты, поддерживается рабочими процессами Hot Reload/JIT и компилируется в нативный код для быстрой производительности для конечного пользователя. Кроме того, его богатая основная библиотека и общие парадигмы делают его очень простым для изучения.
- Как упомянуто выше, оформление кода во Flutter отличается.
- Нам нужно нечто похожее на Expo для тестирования приложений. Вероятно, команда или сообщество Flutter придумают подобное решение.
Итог
Flutter — это отличный новый инструмент, который поможет разработчикам создавать быстрые кроссплатформенные приложения. Как и в React, здесь декларативное программирование, поэтому разработчикам на React или React Native будет просто перейти на Flutter.
По сравнению с React Native, Flutter кажется более полным решением, потому что в Flutter разработчику редко бывает нужна сторонняя библиотека. Огромную роль играет и встроенная UI-библиотека.
С чего начать?
У Flutter открытый исходный код. Вам нужно только изучить документацию, ознакомиться с Dart и попробовать Flutter. Не бойтесь трудностей, команда и сообщество Flutter всегда рады будут вам помочь.