Что такое Flutter?
Flutter — это платформенно-независимая технология Google для создания приложений, используемых на мобильных, настольных и веб-платформах. Официально она была представлена в декабре 2018 года и за это время успела обогнать по популярности React Native как на GitHub, так и на Stack Overflow. Этот успех вполне заслужен. Попробуем разобраться в его причинах.
Очередная платформа. Но зачем?
Когда я рассказываю разработчикам о Flutter, то первое, что обычно слышу в ответ: «Зачем кому-то использовать её, когда есть React Native или какой-нибудь другой инструмент из пакета SDK?». Ответ прост: технология Flutter практически во всём превосходит любой из этих инструментов.
Обычно мы не замечаем того, что возможности используемых нами инструментов ограничены, пока нам не покажут что-то, работающее гораздо лучше. И даже тогда предубеждения, стереотипы да и просто наши привычки не дают отказаться от старого в пользу чего-то нового, более мощного и гибкого.
Так программист, имеющий лишь опыт разработки приложений на PHP, может с пеной у рта доказывать, почему он считает PHP самым крутым языком в мире, и в то же время понятия не иметь о целой экосистеме устройств за пределами простых веб-серверов.
Но веб-сайтом мир не ограничивается, именно поэтому я так ратую за использование специализированного инструментария для разработки приложений в противовес тем средствам и инструментам, которые были привнесены из клиентской части веб-экосистемы.
Преимущества Flutter
У Flutter есть ряд преимуществ по сравнению с конкурентами. Эти преимущества заложены в языке программирования и комплекте средств разработки, позволяющих Flutter устранять проблемы и недостатки, с которыми не справляются другие технологии.
Давайте теперь рассмотрим пять причин, по которым Flutter стоит использовать в вашем следующем проекте:
1. Язык Dart
Не секрет, что языки программирования зачастую испытывают проблемы с приведением к единым стандартам и разные версии этих языков различаются по функциональным возможностям. Причём многие разработчики ориентируются в этих различиях с большим трудом. А вот язык Dart с самого начала был задуман как инструмент для создания клиентских приложений, оптимизируемый и заточенный под разработку пользовательского интерфейса.
Выгоды использования этого языка в том, что:
- здесь нет конкурирующих стандартов;
- нет навязывания языковых средств, принятых в сообществе разработчиков;
- нет странностей, присущих многим языкам программирования;
- нет кучи абсолютно несовместимых шаблонов проектирования;
- наконец, нет необходимости иметь среди стандартных функциональных возможностей и средств очередной инструмент-катастрофу (взять хотя бы тот же Redux).
Dart обладает чистым и невероятно мощным синтаксисом, задающим идеальные условия для создания чёткой архитектуры и дизайна приложения, не говоря уже об обеспечении слаженности совместной работы программистов, долговечности, простоте сопровождения, приведении к единым стандартам и многом другом, чем не может похвастать большинство других инструментов для кроссплатформенных разработок. Для тех, кто уже работал с такими популярными языками, как C#, Java и TypeScript, не составит большого труда перейти на Dart и сразу начать его использовать.
2. Массовый переход разработчиков на Flutter
За какой-то год Flutter обошла по популярности React Native как на GitHub, так и на Stack Overflow. А ведь React Native была самой используемой платформой своего времени. Какая польза от этого для вашего приложения?
Здесь вы получаете мощный запас ресурсов для обучения, больше квалифицированных разработчиков, готовых потрудиться над вашим приложением. И всё это в условиях быстрого роста самой технологии, которая стремительно развивается и дольше не утрачивает своей актуальности по сравнению с теми технологиями, которые многие годы по большому счёту оставались на своём прежнем уровне (например, React Native).
На этом графике наглядно показано, как Flutter вот так из ниоткуда вдруг появилась и сразу вырвалась вперёд. Её лидерство, скорее всего, продолжится, и рано или поздно может так оказаться, что уже днём с огнём не сыщешь разработчиков, готовых осуществлять поддержку кроссплатформенных приложений (и имеющих возможность это делать) с использованием других технологий. И хотя до этого может пройти много времени (несколько лет), такая перспектива вполне реальна, ведь подобные метаморфозы уже не раз происходили в сообществе разработчиков ПО.
3. Высокая скорость
Приложения на Flutter компилируются в машинный код, использующий графику и механизм визуализации, встроенный в C/C++, поэтому приложения получаются очень быстрыми и высокопроизводительными. Они способны стабильно выдавать 60 кадров в секунду на большинстве устройств и до 120 кадров в секунду на устройствах, поддерживающих Flutter.
Использование Flutter даёт более заметный рост производительности в сравнении с другими кроссплатформенными технологиями. Это стало решающим фактором для перехода на Flutter многих разработчиков мобильных приложений. Стоит подчеркнуть, что речь идёт именно о кроссплатформенных (или платформенно-независимых) технологиях, где Flutter имеет явное преимущество перед своими конкурентами в производительности и визуализации, в то время как при создании нативных приложений такого превосходства добиться нереально.
4. Простота освоения (относительная)
Вы можете сказать, что нет такого языка или набора средств и инструментов для разработки в реальной эксплуатационной среде, который было бы легко освоить. Тем не менее существует большая разница между теми из них, которые имеют чёткую документацию и стандартные шаблоны проектирования и работают с большим количеством примеров использования и сценариев применения, и теми, документация которых неоднородна, а способы решения казалось бы простых задач в значительной степени противоречат друг другу.
Ещё одной причиной столь стремительного роста популярности Flutter в среде разработчиков (помимо высокой производительности) стало наличие подробной документации и большого числа примеров. А это очень важно для разработчиков, желающих изучить новую платформу, набор средств и инструментов или язык.
И особенно важно это для опытных программистов, у которых уже глаз намётан, и они легко могут найти ошибки в дизайне языка или в самом инструментарии. Они быстро разочаровываются в новой технологии, когда в процессе изучения обнаруживается, что у неё плохая документация или примеры решения основных задач противоречат друг другу.
Flutter ценят за чёткую документацию и дружное сообщество разработчиков, объединяющее экспертов и новичков, готовых прийти на помощь и поделиться опытом, предоставляя отлично работающие примеры своих проектных моделей и шаблонов разработки. Здесь царит доброжелательная атмосфера, способствующая лёгкому освоению технологий самым широким кругом пользователей.
5. Отличный дизайн
В основание Flutter изначально были заложены две мощные штуки: превосходный язык (Dart) и быстрый, высокопроизводительный механизм визуализации (Skia). Такой выбор был хорошо продуманным решением, избавившим пользователей от дальнейших долгих исканий.
В результате получилась превосходная платформа, помогающая разработчикам самых разных уровней квалификации создавать приложения с использованием подходящих шаблонов проектирования и лучших практик. Можете забыть о противоречиях в стандартах или каких-то технических недоработках, обусловленных несовершенством языка (например, кошмарного JavaScript — и это ещё мягко сказано).
Опытные разработчики, которые собаку съели на создании приложений с использованием самых разных устройств, сразу увидят все преимущества Flutter, едва начав работать с ним. Новички тоже смогут оценить эту технологию, ведь в Интернете полно отличных примеров для изучения лучших практик.
Заключение
Предназначенная для создания высокопроизводительных приложений в рекордные сроки, Flutter помогает разработчикам избегать стольких проблем, что я даже затрудняюсь всех их перечислить. Чтобы в полной мере оценить эту платформу для разработки приложений, надо самому испытать её в деле. Надеюсь, теперь вам стало понятно, почему опытные разработчики делают выбор в пользу Flutter для своих проектов.
Спасибо за внимание и удачи в вашем следующем проекте!
Читайте также:
Перевод статьи Kenneth Reilly: Why Choose Flutter in 2020?