Что такое Flutter и с чего начинать изучение фреймворка для кроссплатформенной разработки

Что такое Flutter? Это бесплатный и открытый фреймворк для разработки кроссплатформенных приложений (iOS и Android). Flutter был создан и выпущен компанией Google в мае 2017 года и за это время успел обогнать по популярности React Native как на GitHub, так и на Stack Overflow.

В статье разберемся, чем так интересен этот фреймворк и к чему нужно быть готовым при его изучении.

Василий, mobile-разработчик:

В чем особенность работы с Flutter?

Главная особенность в работе с кроссплатформенным движком – это использование одной кодовой базы на языке Dart вместо нескольких для Android и iOS платформ. В работе можно использовать среды разработки Android Studio, Intellij IDEA и VSCode, но, увы, нельзя будет воспользоваться Xcode.

Для запуска первого приложения на Flutter вам нужно только установить плагины Flutter и Dart, а среда разработки сама предложит создать шаблонный проект. Теперь можно писать свое бизнес-приложение :)

Какие плюсы?

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

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

Какие минусы?

Один из явных минусов в том, что сборка приложения для iOS, запуск симулятора и запуск на реальный iPhone невозможен без XCode, а XCode не работает на Windows и Linux-машинах. Для решения проблемы нужно иметь XCode, плагин на Android Studio сам подцепит симулятор и реальный девайс.

Другой минус в том, что увеличивается итоговый размер установочного пакета, потому что в нем содержится виртуальная машина Dart.

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

Flutter – это будущее в разработке?

Не могу прогнозировать, как будет развиваться флаттер спустя полгода или год, но уже сейчас видно, что фреймворк набирает обороты и становится популярным. Простота освоения, отличный дизайн, поддержка Google добавляет уверенности столь стремительному росту. Так что в ближайшее время развитие будет.

Татьяна, mobile-разработчик:

В чем особенность работы?

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

При этом нужен компьютер с хорошими вычислительными мощностями: в таком случае вы сможете комфортно разрабатывать и запускать крутые проекты.

Какие плюсы?

Большим плюсом является наличие обширной документации и комьюнити, которое стремительно развивается. Сам Google активно продвигает Flutter, записывает обучающие видео и выкладывает их на своем канале. Есть огромное количество библиотек, которые облегчают жизнь, а на Stack Overflow можно найти ответы практически на все вопросы.

После разработки нативных приложений перестроиться очень легко – этот процесс занял у меня примерно 2 недели. К тому, что «все есть виджет», привыкаешь настолько, что уже не знаешь, как раньше работал – чувствуется некая «свобода» во всем, нет рамок, нет ограничений. За 2 месяца я забыла, как нативно делать те вещи, которые так удобно реализуются на Flutter.

Какие минусы?

Я могу выделить два основных минуса при работе с фреймворком.

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

Во-вторых, увидеть результат работы можно, только запустив приложение, так как верстка экранов создается с помощью кода. Поначалу было трудно предвидеть, как расположатся виджеты, часто не угадывала, и всё «вылезало» за пределы экрана. Но чем дальше, тем лучше – сейчас всё сразу получается так, как задумывала.

Перспективы

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

В итоге, что представляет из себя фреймворк?

Особенность Flutter в том, что он позволяет делать кроссплатформенные проекты, то есть разрабатывать приложение сразу и под iOS, и под Android, а вместо нескольких кодовых баз использовать одну – язык Dart.

К плюсам Flutter можно отнести высокую производительность сборок, простой и лаконичный язык, быструю компиляция и сборку проекта, большой набор UI-компонентов и библиотек, удобную документацию, а также быструю адаптацию к принципу «все есть виджет».

Основные минусы в том, что сборка приложения для iOS невозможна без XCode, который не работает на Windows и Linux машинах; увеличение итогового размера установочного пакета из-за виртуальной машины Dart; верстка экранов создается с помощью кода, поэтому увидеть результат можно только при запуске приложения.

Про дальнейшее развитие фреймворка: разработчики сходятся во мнении, что оно будет. Фреймворк интересен программистам, поэтому он определенно найдет своих фанатов.