Crossplatform
June 4, 2019

13 причин перейти на Flutter

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

Стартапы часто отдают предпочтение кроссплатформенной разработке, но и она имеет свои недостатки. Например, UX, даже несмотря на усилия разработчика, не дотягивает до современных нативных приложений. В последние года возрастает количество разнообразных мобильных фреймворков по типу React Native, Xamarin и AngularJS, которые помогают формировать “цифровой” опыт намного легче. Недавно на рынке появился новый игрок - Flutter от компании Google.

Честно говоря, Flutter больше похож на кашу из разнообразных технологий и концептов Google, однако в результате мы имеем невероятно мощный мобильный фреймворк. Основным языком программирования является Dart, который дает Flutter’у доступ к графической библиотеке Skia, используемой Google Chrome. Вдобавок, Flutter тесно связан со спецификацией Material Design, известной по “карточным мотивам”, хорошо знакомым пользователям Android.

Давайте рассмотрим 13 причин, почему стоит стать пойти путем разработки на Flutter или даже начать свою карьеру в этом направлении.

1. Flutter обходит традиционные ограничения кроссплатформенных подходов.

Появление  кросс платформенного подхода было настоящим проклятием для технических консультантов, уставших от создания множества версий идентичного продукта. А использование мобильных фреймворков на базе JavaScript’а оставляло UX приложений далеко позади от нативных, так как производительность интерпретируемых языков программирования оставляет желать лучшего.

С Flutter вы получаете не только преимущество в виде “единожды написанного” подхода с высокой производительностью, но  и нативным UX, так как Flutter является компилируемым приложением. Это позволяет избежать ряда ограничений кроссплатформенной разработки.

2. Производительность разработчиков увеличивается в десять раз.

Увеличение производительности достигается встроенной “горячей перезагрузкой” (применение изменений без перекомпиляции). Таким образом разработчики могут видеть свои изменения в интерфейсе менее, чем через секунду, а в структуре приложения - не больше десяти секунд.

То есть, вам не надо заново запускать билд через Gradle - вы видите все свои изменения сразу после сохранения. Статистика говорит, что 30-40% времени разработки для ОС Android занимает именно перекомпиляция проекта в Gradle.  А это, хочется отметить, значительное время, так почему бы его не сэкономить?

3. Фронтэнд и бэкэнд - один код

В отличие от написания кода под Android, где есть отдельные файлы для описания интерфейса (XML) и для логики (Kotlin), Flutter  использует единый язык программирования - Dart, который используется и для описания интерфейса, и для бизнес логики.

Dart позаимствовал все самые популярные “фичи” из других языков, при этом он не утратил той изящности, которая присуща, например, Java.  Dart с самого начала разрабатывался как язык с максимальной простотой для разработчиков и тем самым он облегчает выполнение большинства задач. Если уже хочется взглянуть и изучить этот язык, вы можете это сделать в официальном онлайн-учебнике тут.

4. Мощные инструменты для проектирования интерфейса прямо из коробки.

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

Стоит упомянуть, что виджеты Flutter’a также реализуют спецификацию Human Interface Design от Apple, что позволяет создавать “родные” приложения под iPhone и iPad.

5. Обширный каталог открытых пакетов.

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

6. Простая интеграция с Firebase

Firebase предоставляет набор  различных сервисов, таких как облачное хранилище, облачные вычисления, удаленные базы данных, хостинг, сервис авторизации и многое другое. С помощью него ваша архитектура мобильного приложения становится без серверной и масштабируемой.   Это значит, что вам не придется тратить много времени на создание бэкенда. Его также легко объединить с инструментом непрерывной интеграции для автоматизации процесса разработки и выпуска, таким как Fastlane. Это позволит вам отказаться от отдельной команды DevOps для поддержки инфраструктуры.

7. Большинство IDE поддерживают Flutter

Когда вы начинаете программировать на Flutter, у вас есть возможность выбрать среду разработки из достаточно обширного списка. Самая популярная среда разработки - это, конечно же, Android Studio, в которую полностью интегрирован Flutter и уже имеется ряд плагинов. Intellij  Idea Ultimate имеет схожие плагины и поддерживает разработку для этого мобильного фреймворка. Также разработчики могут использовать VS Code - простой и легковесный редактор с широким набором возможностей. Если и это не подходит, то можно погрузиться в Visual Code. В общем, выбрать есть из чего.

8. Единый UI - все есть виджет.

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

9. Использование разных тем под каждую из платформ

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

return new MaterialApp(
 // default theme here
 theme: new ThemeData(),
 builder: (context, child) {
   final defaultTheme = Theme.of(context);
   if (defaultTheme.platform == TargetPlatform.iOS) {
     return new Theme(
       data: defaultTheme.copyWith(
         primaryColor: Colors.purple
       ),
       child: child,
     );
   }
   return child;
 }
);

10. Непрерывная интеграция с помощью Code Magic

Code Magic является проектом с открытыми исходными кодами и был представлен 4-го декабря 2018 года. Он легок в изучении и полностью бесплатен (при размещении на собственной машине). Это изысканный инструмент для непрерывной интеграции, оптимизированный под Flutter, который позволяет сделать бесшовный процесс сборки.

11. Анимация стала еще проще с 2Dimensions Flare

На Flutter Live 2018 года был представлен 2Dimensions Flare - онлайн-инструмент, который позволяет создавать экстраординарный пользовательский интерфейс и потрясающие анимации. Это устраняет разрыв между дизайнерами и разработчиками, сокращая время на правки и доработки интерфейса.

12. Flutter для веба и десктопа

Все были шокированы тем, что команда Flutter’a уже имеет рабочие прототипы приложений, работающие в браузере. Предыдущий секретный проект “Колибри” был представлен во время Flutter Live. Совсем скоро, можно будет разрабатывать одно приложение для всех платформ: мобильных, веб и десктопов.

13. Обширное и активное комьюнити

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

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

Оригинал статьи расположен тут.

Автор перевода: Андрей Латышев.