Flutter для веб-разработки: преимущества, угрозы, применение
Опубликовано: 2020-05-15В 2022 году Flutter, набор для разработки программного обеспечения, созданный Google, официально превзошел своего самого яростного конкурента React Native, став новым лидером в области кроссплатформенных технологий. Согласно отчетам Google, более 100 000 приложений на основе Flutter были выпущены для широкой публики. Несмотря на свою растущую популярность, Flutter по-прежнему наиболее известен как мультиплатформенный (Android и iOS) инструмент для разработки мобильных приложений. Между тем лишь немногие отраслевые эксперты знают, что Flutter можно использовать и в веб-приложениях! Узнайте о возможностях, приложениях и рисках, связанных с Flutter для веб-разработки , и узнайте, какую ценность он может принести вашему бизнесу.
Flutter становится одним из самых интересных решений, доступных на рынке, не только из-за его экономичности и экономии времени. С каждым обновлением производительность Flutter приближается к нативным решениям. Конечно, многие компании выбирают Flutter для Интернета в качестве дополнения к своему мобильному продукту, уделяя особое внимание увеличению количества точек взаимодействия с клиентами. Но стоит ли рассматривать Flutter для веба исключительно из-за его отдельных особенностей?
Конечно, это является! Flutter позволяет быстро разрабатывать веб-приложения со сложными уникальными интерфейсами и не имеет себе равных, когда речь идет о предоставлении мобильных приложений. Нужны примеры? Просто взгляните на потрясающий инструмент взаимодействия с клиентами PAJO, созданный нашей командой с помощью Flutter для Интернета.
Давайте сразу к делу: каковы преимущества, приложения и риски Flutter для Интернета? Подходит ли Flutter для веб-разработки? Читайте больше, чтобы узнать!
Flutter для веба: начнем с основ
Начнем с самой основной информации:
Что: Flutter — это фреймворк Google, который позволяет разработчикам создавать мобильные, веб-приложения, десктопные и встраиваемые приложения, используя одну общую кодовую базу.
Когда: первая стабильная версия Flutter была выпущена в конце 2018 года.
И почему: Google создал Flutter в ответ на таяние бюджетов мобильных приложений и растущую популярность React Native, став его основным конкурентом.
Теперь давайте перейдем к более конкретной технической информации.
Flutter привлекает внимание к Dart, объектно-ориентированному языку от Google, который, по мнению многих специалистов в предметной области, является будущим всех мобильных, веб- и настольных разработок. По сравнению с JavaScript (используемым его основным конкурентом, React Native), Dart полностью объектно-ориентирован и строго типизирован. Что это значит для вашего бизнеса? Код, поставляемый в Dart, гораздо более устойчив к ошибкам и намного проще в обслуживании даже в течение многих лет в меняющейся команде. Несомненно, язык программирования Flutter является одним из его самых больших преимуществ.
Флаттер для веб-разработки
Знаете ли вы, что функция веб-разработки во Flutter относительно новая? Пару лет назад Google провел исследовательский проект под названием Hummingbird. Группа разработчиков Google, участвовавшая в Hummingbird, пыталась найти способ создания веб-приложений из того же кода Flutter, который использовался в приложениях для iOS и Android.
Эффекты этого проекта в значительной степени способствовали развитию структуры. Хотя это заняло некоторое время, в марте 2021 года Google объявил, что Flutter для Интернета полностью стабилен и готов к использованию в коммерческих проектах. Один код, одна технология, несколько зайцев одним выстрелом.
Как работает Flutter для Интернета, один из новейших проектов Google? Короче говоря, начиная с версии 2021 года разработчики могут компилировать существующий код Dart в веб-продукт, используя ту же среду Flutter, которую они используют для разработки кроссплатформенных мобильных приложений. В этом контексте Интернет — это просто еще одна цель устройства для мобильного приложения, и нет необходимости привлекать какого-либо другого веб-разработчика.
Преимущества Flutter для Интернета
Каковы ключевые преимущества Flutter для Интернета? Самое главное, Google увеличивает свое участие в проекте SDK, о чем свидетельствуют систематические улучшения и выпуски (почти 20 выпусков в 2022 году!). Несмотря на свою относительно короткую историю, Flutter уже преодолел множество проблем ранней зрелости. Каковы другие наиболее важные преимущества Flutter Web?
Хотите быть в курсе самых важных обновлений Flutter?
Подписывайтесь на нашу новостную рассылку1. Flutter для Интернета снижает затраты на разработку
С Flutter для Интернета три приложения создаются с использованием одной кодовой базы в рамках одной технологически связанной команды в одном темпе. Клиентам, разрабатывающим свои приложения с помощью Flutter, не нужно искать поставщиков трех разных технологий, а затем синхронизировать их работу. Нет необходимости дублировать, например, одну и ту же платежную функцию или авторизацию в социальных сетях. Означает ли это прямо тройную экономию? Не совсем!
Конечно, Flutter значительно снижает затраты на разработку. Однако это не означает, что разработка кроссплатформенных приложений ничем не отличается от разработки нативных приложений. Часто немного сложнее предоставить определенную функциональность для кроссплатформенности. Как правило, кросс-платформенный множитель составляет около 1,2-1,5. Что это значит? Если функциональность требует X часов разработки для одной платформы, это займет (1,2-1,5) * X, когда речь идет о кроссплатформенности. Тем не менее, x1,5 по сравнению с x3 может быть выигрышным случаем для вашего бюджета.
2. Простое масштабирование и экономичная проверка идей
Эффективность затрат и времени делает Flutter отличным выбором для PoC и проверки идеи продукта. В течение нескольких недель вы можете разработать полностью работающее приложение, которое можно легко опубликовать в магазинах приложений и распространять через Интернет. После потенциального успеха вы можете рассмотреть возможность масштабирования своих мобильных и веб-приложений, например, путем расширения кроссплатформенных мобильных приложений до нативных приложений.
Несколько отраслевых гигантов, таких как Airbnb, пошли по этому пути. После успеха своих кроссплатформенных мобильных приложений Airbnb решила перейти на нативные решения, которые дают еще больше свободы в адаптации продукта под целевую группу.
3. Упрощенный процесс обслуживания
Что произойдет, когда ваше приложение, наконец, будет успешным? Он входит в техническое обслуживание! И сотрудничать с одним специалистом по Dart/Flutter гораздо проще и выгоднее, чем нанимать трех разработчиков только для поддержки кода. Не говоря уже о том, что любой дисбаланс в навыках разработчиков порождает различия в темпе работы.
Навыки команды разработчиков также имеют решающее значение, учитывая общий внешний вид на разных платформах. Когда вы решаете разработать три проекта, их окончательная форма сильно зависит от навыков разработчика и отношения к пользовательскому интерфейсу. Когда iOS-парень предпочитает закругленные углы, а Android-менеджер их не так любит, может оказаться, что эти два приложения будут отличаться тем, как они повлияют на вашу продуктовую стратегию.
4. Впечатляющий опыт работы с приложениями
По словам основателей Flutter Web, в настоящее время Flutter является идеальным инструментом для внедрения интерактивных возможностей. В качестве среды пользовательского интерфейса Flutter может предоставлять ориентированные на приложения услуги для веб-сайтов и, следовательно, является идеальным решением для прогрессивных веб-приложений, одностраничных приложений и улучшения существующих мобильных приложений Flutter. Вы можете прочитать больше об этом в разделе возможностей ниже. Но сначала давайте, наконец, обсудим наиболее важные веб-риски Flutter.
Угрозы Flutter для Интернета
Как уже было сказано, Flutter Web — относительно новый проект, постоянно совершенствуемый кроссплатформенными экспертами. Когда наша команда Flutter составила список потенциальных рисков, связанных с веб-разработкой Flutter в 2021 году, мы заметили 14 проблем. Сегодня список веб-рисков Flutter сократился на треть. Тем не менее, некоторые проблемы, такие как проблемы с SEO или отсутствие поддержки некоторых браузеров, все еще требуют решения. Каковы наиболее существенные недостатки Flutter для Интернета в 2022 году?
1. Исключения веб-приложений Flutter для Интернета
Возможно, это не прямой недостаток Flutter Web, а заслуживающий упоминания отказ от ответственности. Вселенные приложений для Android и iOS очень похожи, а кодовая база в большинстве случаев одинакова на 95-100%. Однако это может не относиться к браузерной версии!
Нижний ящик листа, нижнее меню вкладок или горизонтальные карусели — отличные шаблоны мобильного UX, которые плохо применимы в Интернете. Часто вам нужно создавать исключения только для веб-приложения. Архитектурный дизайн часто должен быть совершенно другим для мобильных устройств и веб-сайтов. В начале работы неплохо устроить круглый стол между дизайнерами и разработчиками. Пусть они поделятся своей точкой зрения и постараются прийти к консенсусу, особенно если вас волнует ваш бюджет и график.
2. Проблемы с поисковой оптимизацией (SEO)
Проще говоря, Flutter Web не поддерживает SEO. Как создатели фреймворка объясняют SEO-несовместимость веб-приложений, созданных с помощью Flutter?
Flutter web отдает приоритет производительности, точности и согласованности. Это означает, что выходные данные приложения не соответствуют тому, что поисковые системы должны правильно индексировать. Для веб-контента, который является статическим или похожим на документ, мы рекомендуем использовать HTML — точно так же, как мы это делаем на flutter.dev, dart.dev и pub.dev. Вам также следует подумать об отделении вашего основного приложения, созданного во Flutter, от вашей целевой страницы, маркетингового контента и справочного контента, созданных с использованием HTML, оптимизированного для поисковых систем.
Источник: Часто задаваемые вопросы в Интернете от Flutter.dev
Согласно Stack Overflow, SEO-дружественность — одна из следующих целей команды Flutter. Однако на данный момент разработчики, которые хотят оптимизировать веб-приложение с точки зрения SEO, должны использовать дополнительные библиотеки.
3. Нет горячей перезагрузки во Flutter для Интернета
Горячая перезагрузка — одно из самых узнаваемых преимуществ Flutter для мобильной разработки. С помощью этой функции разработчики могут сразу просматривать изменения во внешнем и внутреннем интерфейсе и вносить необходимые исправления на ранней стадии производства. К сожалению, горячая перезагрузка пока не совместима с Flutter Web.
К счастью, во Flutter для Интернета есть определенная альтернатива горячей перезагрузке: горячий перезапуск. Горячий перезапуск позволяет предварительно просмотреть изменения без перезапуска веб-приложения. Единственное (и самое болезненное) отличие состоит в том, что горячий перезапуск, в отличие от горячей перезагрузки, теряет состояние приложения, что потенциально снижает гибкость внесения изменений в разработку.
4. Ограниченная совместимость с некоторыми браузерами
По словам разработчиков Flutter, веб-приложения Flutter могут работать в четырех самых популярных браузерах:
- Хром
- Сафари
- Край
- Fire Fox
Теоретически вы должны быть уверены, что ваше веб-приложение будет работать эффективно независимо от того, какой браузер выберут ваши пользователи. Но как это работает на практике? Некоторые разработчики Flutter сообщают о проблемах с Safari и жалуются на необходимость выполнять трудоемкие обходные пути для некоторых функций.
Flutter Web по-прежнему сталкивается с некоторыми незначительными трудностями, такими как проблемы с SEO, ограниченная совместимость с Safari или отсутствие библиотек. Но в то же время нет никаких сомнений, что Flutter с каждым обновлением становится все более эффективным и близким к полной функциональности. И не будет преувеличением сказать, что через год все эти проблемы могут уйти в прошлое!
Приложения Flutter для веб-разработки
Теперь давайте перейдем к сути: кто может извлечь наибольшую выгоду из Flutter для веб-разработки? Создатели Flutter указывают три идеальных варианта использования Flutter Web:
Прогрессивные веб-приложения
С момента запуска стабильной версии Flutter 2 в 2021 году разработчики Flutter смогли создавать прогрессивные веб-приложения (PWA): веб-приложения, способные не только работать в автономном режиме, но и имитировать функциональные возможности мобильных устройств при работе в браузере.
Проще говоря, PWA — это веб-страницы, которые можно установить на любое устройство, чтобы обеспечить работу, подобную нативной, и, в отличие от специализированных приложений для iOS и Android, можно использовать на любом устройстве.
PWA часто используются компаниями, которые предоставляют продукты для широкой целевой аудитории, хотят предложить безупречный пользовательский опыт во всех точках взаимодействия с потребителем и должны использовать все возможности для взаимодействия с потенциальным пользователем. Примеры? Starbucks, Flipboard, игра 2048. Держу пари, вы использовали хотя бы одно из этих увлекательных приложений!
Одностраничные приложения
Facebook, Gmail, Google Maps, Spotify — все эти популярные приложения имеют как минимум одну важную общую черту. Они работают без перезагрузки страницы. При взаимодействии с одностраничным приложением пользователям не нужно ждать загрузки новой страницы — она присутствует с самого начала вместе с соответствующим контентом.
SPA отзывчивы, их относительно легко кодировать, оптимизировать и поддерживать. И последнее, но не менее важное: их можно быстро разработать с помощью Flutter — и они служат в качестве минимально жизнеспособного продукта отличного качества.
Хотите узнать больше о Progressive Web и одностраничных приложениях? Обязательно прочитайте нашу статью о выборе правильного типа приложения для вашего бизнеса!
Существующие мобильные приложения Flutter можно легко преобразовать во Flutter для Интернета.
Добавить веб-поддержку в существующий мобильный проект на основе Flutter можно быстро и просто: для этого нужно создать веб-каталог и… нажать кнопку «Выполнить»! Конечно, для обеспечения безупречной производительности крайне важно сделать веб-приложение отзывчивым и удобным для навигации. Но по сравнению с созданием приложения с нуля, добавление веб-версии в существующее мобильное приложение во Flutter требует совсем немного усилий.
Стоит ли попробовать Flutter для Интернета?
Стоит ли попробовать Flutter для Интернета? Очевидно, вы должны ответить на этот вопрос самостоятельно. Выбор правильной платформы для вашего продукта зависит от нескольких деловых и технологических факторов, таких как миссия компании, видение, бюджет, размер или технический стек. Однако в некоторых конкретных случаях стоит хотя бы рассмотреть возможность использования Flutter Web.
Во-первых, Flutter Web создает беспрецедентные возможности для стартапов на ранних стадиях. Только представьте, что вы только что придумали блестящую идею продукта, определили свои бизнес-цели, провели конкурентный анализ. Теперь вы должны подтвердить свой MVP как можно скорее — пока момент не упущен. В этом случае выбор Flutter для веб-разработки, безусловно, является безопасным, экономичным и разумным выбором.
Во-вторых, гибкость языка программирования Dart делает Flutter Web отличным выбором для улучшения вашего цифрового продукта. Flutter позволяет быстро разрабатывать приложения для множества различных платформ, повышая узнаваемость вашего продукта и его доступность для пользователей.
Если вы обнаружите хотя бы часть вашей деловой ситуации в любом из вышеперечисленных сценариев, вам, безусловно, стоит заинтересоваться Flutter Web.
И когда не стоит думать о разработке веб-приложения с помощью Flutter? Даже создатели фреймворка признают, что на данный момент не каждая веб-страница имеет смысл во Flutter:
(…) Flutter не подходит для статических веб-сайтов с текстовым контентом, основанным на потоке. Например, статьи в блогах выигрывают от модели, ориентированной на документы, вокруг которой построена сеть, а не на сервисах, ориентированных на приложения, которые может предоставить инфраструктура пользовательского интерфейса, такая как Flutter. Однако вы можете использовать Flutter для встраивания интерактивных возможностей в эти веб-сайты. исследование доступных библиотек должно предшествовать каждому проекту там.
Источник: Часто задаваемые вопросы в Интернете от Flutter.dev
Любому деловому решению должны предшествовать тщательные исследования и консультации с несколькими отраслевыми экспертами.
(Предполагаемое) светлое будущее Flutter для Интернета
На данный момент выбор Flutter для каждого веб-проекта может быть не лучшей идеей. Тем не менее, я ожидаю все более светлое будущее для этой быстро развивающейся структуры. Почему?
Никогда прежде пользователи не были так разбросаны по платформам. Мобильные устройства и веб-браузеры — это лишь верхушка айсберга. Люди используют приложения в автомобилях, часах и телевизорах.
Поэтому возникает необходимость упростить процесс и снизить затраты на производство программного обеспечения. Одна кодовая база для веб-разработки и мобильной разработки уже является распространенным шаблоном, и Flutter для веб- разработки — отличный пример.
Долгое время я считал Flutter Web зарождающейся технологией. Моя недавняя работа заставила меня передумать. Флаттер напоминает мне взрослого молодого человека, стоящего перед блестящим будущим. Это кажется привлекательным выбором для идей с небольшим бюджетом и короткими сроками. Flutter — идеальный выбор для тех, кто хочет быстро и с минимальными затратами проверить свои идеи, а также для тех, у кого есть идея и кто реагирует на потребности рынка.