В нашем большом современном мире происходит всё настолько быстро, что не успеваешь оглянуться, как что-то новое появляется, старое уходит на задний план.
Сегодня я хочу рассказать о 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 приложения.
Плюсы
- Быстрая разработка, которая экономит время, силы и деньги (но это всё относительно, так бывают случаи, когда не обойтись без нативных языков, например, если нет соответствующих библиотек).
- Hot reload. Flutter позволяет вносить изменения в код и сразу же видеть результат в предварительном просмотре приложения без необходимости пересборки. Таким образом можно мгновенно видеть изменения, отлавливать ошибки, экспериментировать с UI.
- Статически типизированный язык. Однако, по большому счету, это вкусовщина, но для меня это значительный плюс.
- Удобная документация. Также есть канал в YouTub, который я часто смотрю. Особенно люблю рубрику Flutter Widget of the Week.
- Отличные инструменты разработчика. Flutter может похвастаться хорошей экосистемой инструментов разработчика. Есть плагин для VSCode, в Android Studio он уже встроен.
- Растущее комьюнити. Всё больше людей интересуются фреймворком, появляются новые библиотеки, множество готовых решений в интернете.
Минусы
- Один из жирных минусов это всё-таки пока что фреймворк очень молод. Небольшое сообщество не только самого у самого Flutter, но и у языка Dart, ну уж очень небольшое.
- Конечный установочный пакет больше, так как в него добавляется виртуальная машина Dart.
- Не настолько стабильный как хотелось бы. Но по моему сугубо личному мнению он стабильнее "старенького" React Native.
- Библиотек меньше, чем для нативной разработки или же для React Native.
- Вряд ли заменит нативную разработку. Как минимум в данный момент.
- Сложнее найти работу. Вакансий действительно мало по сравнению с Kotlin/Java, Swift или React Native, а многие компании требуют опыт в первую очередь именно в нативной разработки, а Flutter у них что-то типа "за компанию". По крайней мере я с этим столкнулся.
Подытожив, хочу сказать, что Flutter – это очень достойная альтернатива нативу или же React Native и другим фреймворкам. Я его очень люблю. Именно после знакомства с ним я полюбил мобильную разработку. Поэтому, если вы еще не определились, стоит ли его изучать, то я скажу вам – стоит!