Найти тему
proger ЧАЙНИК

Стоит ли изучать Flutter

Оглавление
Источник: https://flutter.dev/images/flutter-logo-sharing.png
Источник: https://flutter.dev/images/flutter-logo-sharing.png

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

Сегодня я хочу рассказать о Flutter, стоит ли изучать его, взвесить все "за" и все "против".

Что есть Flutter?

Flutter – это опенсорсное решение для создания кросс-платформенных приложений, развиваемая компанией Google, первый выпуск которой состоялся в мае 2017 года. Если говорить в двух словах, Flutter позволяет создавать как мобильные, так и веб приложения только с одной кодовой базой. Это означает, что вы можете использовать один язык программирования, он называется Dart и одну кодовую базу для создания двух разных приложений (для iOS и Android). Также есть реализации Flutter в вебе, десктопе (Linux, macOS и даже Windows!), правда, пока это все в сыром состоянии, однако фундамент заложен.

Flutter компилирует AOT в нативный код ARM и x86, что обеспечивает производительность. AOT - ahead of time - "раньше времени" означает, что фреймворк компилирует код до того, как он фактически будет использоваться в приложении.

В конкурентном фреймворке React Native используется JIT (just-in-time) компиляция, то есть код компилируется в тот момент, когда он нужен. В теории, из-за AOT приложение должно работать быстрее, так как он компилируется заранее и ему не нужно будет общаться с платформой через мост как в React Native. Однако во время разработки Flutter компилируется JIT, что делает возможным hot-reload/restart приложения.

Источник: https://flutter.dev/
Источник: https://flutter.dev/

Плюсы

  • Быстрая разработка, которая экономит время, силы и деньги (но это всё относительно, так бывают случаи, когда не обойтись без нативных языков, например, если нет соответствующих библиотек).
  • Hot reload. Flutter позволяет вносить изменения в код и сразу же видеть результат в предварительном просмотре приложения без необходимости пересборки. Таким образом можно мгновенно видеть изменения, отлавливать ошибки, экспериментировать с UI.
  • Статически типизированный язык. Однако, по большому счету, это вкусовщина, но для меня это значительный плюс.
  • Удобная документация. Также есть канал в YouTub, который я часто смотрю. Особенно люблю рубрику Flutter Widget of the Week.
  • Отличные инструменты разработчика. Flutter может похвастаться хорошей экосистемой инструментов разработчика. Есть плагин для VSCode, в Android Studio он уже встроен.
  • Растущее комьюнити. Всё больше людей интересуются фреймворком, появляются новые библиотеки, множество готовых решений в интернете.
Источник: https://dart.dev/
Источник: https://dart.dev/

Минусы

  • Один из жирных минусов это всё-таки пока что фреймворк очень молод. Небольшое сообщество не только самого у самого Flutter, но и у языка Dart, ну уж очень небольшое.
  • Конечный установочный пакет больше, так как в него добавляется виртуальная машина Dart.
  • Не настолько стабильный как хотелось бы. Но по моему сугубо личному мнению он стабильнее "старенького" React Native.
  • Библиотек меньше, чем для нативной разработки или же для React Native.
  • Вряд ли заменит нативную разработку. Как минимум в данный момент.
  • Сложнее найти работу. Вакансий действительно мало по сравнению с Kotlin/Java, Swift или React Native, а многие компании требуют опыт в первую очередь именно в нативной разработки, а Flutter у них что-то типа "за компанию". По крайней мере я с этим столкнулся.

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