Оглавление

    3 в 1: мобильное, веб- и десктопное приложение на Flutter для бизнеса

    Статья 3 в 1: flutter

    Российские компании находятся в активном поиске путей для продвижения своих приложений после закрытия доступа в сторы, и сейчас вариантов много: десктопное приложение вкупе с мобильным и браузерным на кроссплатформенных фреймворках, Android application package (APK) на сайте компании или progressive web application (PWA). Быстрая и недорогая разработка в приоритете, поэтому в этой статье разберем одну из самых удобных кроссплатформ для бизнеса — Flutter — и расскажем, как может дать буст для бизнеса, расширить клиентскую базу и облегчить клиентам доступ к продукту.

    С момента релиза в 2019 году Flutter стал полноценной кроссплатформой для бизнеса. Его последняя версия 3.13 дает максимум возможностей: разработка приложения для 6 платформ на одной кодовой базе, уникальный дизайн с классными фичами, доступ к нативным возможностям и экономия бюджета на разработку до 60%. Разберемся со всем по порядку.

    Немного истории: от iOS и Android к десктопному приложению

    Google презентовал Flutter в 2017 году как возможность создавать приложения для бизнеса на iOS и Android, а сейчас функционал кроссплатформы расширился — например, стало доступно создание десктопных приложений. Мы начали работать с Flutter в 2019 году и за несколько лет реализовали на нём более 25 проектов в разных сферах: для банка, ритейла, корпораций и медиа. 

    Кроссплатформу поддерживает большое сообщество разработчиков по всему миру, а команда Surf активно развивает его в России — мы записываем подкасты, пишем технические статьи и создаем собственные стандарты архитектуры в открытых репозиториях.

    Каждые несколько месяцев Flutter выпускает обновления. Совсем недавно мы писали о Flutter 3.0, а в августе 2023 года вышла последняя версия 3.13. В ней добавилось больше новых возможностей для создания эффективного кроссплатформенного приложения, что полностью перевернуло наши представления о фреймворке. Если коротко — это революция, которая облегчит использование приложений для бизнеса и пользователей. 

    Преимущества Flutter для бизнеса

    Кроссплатформенный фреймворк Flutter — это набор инструментов, который позволяет создать одно приложение сразу для 6 платформ: iOS, Android, web, Windows, MacOS и Linux. В отличие от разработки нативного приложения, вы можете создать сразу мобильное, веб- и десктопное приложения на разных устройствах — и таким образом облегчить доступ клиентов к своему продукту. 

    Основные плюсы Flutter:

    • Экономичность. Бизнес тратит меньше времени и денег на разработку, потому что Flutter-разработчик создаёт одну кодовую базу сразу для всех платформ. Финальная стоимость такой разработки составляет на 40–60% меньше, чем создание отдельных нативных приложений. При этом пользователи не заметят никакой разницы, с точки зрения функций и внешнего вида. При разработке приложения для крупнейшей аптечной сети Ригла мы сэкономили 40% бюджета компании по сравнению со стоимостью создания нативного приложения и создали 6 приложений на одной кодовой базе, но с уникальными дизайнами, для 3 брендов компании. 
    • Time-to-market короче. Для запуска Flutter-приложения потребуется на 60% меньше времени, чем на запуск нативного, что позволяет вывести цифровой продукт на рынок гораздо быстрее. 

    Один из сложных и ярких примеров быстрого выпуска продукта на рынок — разработка не только приложения, а целой экосистемы для маркетплейса автоуслуг IZZI. В рамках проекта всего за 7 месяцев мы создали единый сервис для b2b-сферы и мобильное приложение IZZI Drive для b2c-клиентов компании, а также интегрировали эти продукты друг с другом и предложили дизайнерские решения.

    • Нет ограничений в дизайне. Это важный пункт для любого бизнеса, который дорожит своей уникальностью. Flutter позволяет реализовать любой дизайн, включая сложную анимацию, благодаря новому графическому движку Impeller и поддержке Material Design, о которых расскажем подробнее чуть ниже.
    • Высокое качество и загрузка изображений. Новый API асинхронно декодирует изображения из главного потока с помощью встроенных в браузер кодеков изображений. Такое решение ускоряет декодирование изображений в 2 раза и не блокирует главный поток. То есть никаких лагов при загрузке изображений. Сегодня эту технологию поддерживает большинство браузеров на базе Chromium (Chrome, Edge, Opera, Samsung Browser).
    • Безопасность. Код Flutter-приложения преобразуется в нативный, который нельзя восстановить с помощью реверс-инжиниринга. Благодаря этому приложение соответствует всем требованиям безопасности. Для банков это особенно важно: мы всегда комплексно подходим к каждому проекту, как например, при создании b2b-приложения для Росбанка и b2c-решения для СМП Банка.
    • Удобный процесс разработки. Hot Reload — фирменная фича Flutter, которая позволяет вносить изменения в код на разных платформах и видеть изменения в реальном времени, без необходимости полного перезапуска приложения.
    • Высокая производительность и стабильность. Flutter обеспечивает стабильную производительность на уровне 60–120 кадров в секунду (FPS), что имеет большое значение для обучающих и игровых приложений, требующих быстрого отклика и плавной работы. Например, при создании платформы видеостриминга The Hole на Flutter нам удалось добиться плавного воспроизведения и перемотки Full HD видео даже при низкой скорости соединения.

    Теперь к этим основным характеристикам Flutter добавились новые фичи версии 3.13, что делает кроссплатформу еще удобнее.

    Что изменилось с выходом Flutter 3.13

    Более совершенный движок и производительность

    Около года назад Flutter перешел на движок Impeller — технология улучшила производительность и сделала анимацию и рендеринг в iOS значительно лучше. Благодаря оптимизации, Impeller демонстрирует более высокие средние показатели в benchmark-тестах и меньшую задержку в iOS-приложениях. 

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

    Уже сейчас теперь можно протестировать работу Impeller на MacOS, а к концу года — на Android.

    Приложение The Hole

    Что это значит? Приложение сможет похвастаться плавной работой  без зависаний, даже если используются сложные анимации и требуется воспроизведение видео  в высоком разрешении. 

    Узнать больше на примере кейса The Hole
    Читать кейс

    Улучшения в Material Design 

    Material Design — это дизайн-система, разработанная Google, которая позволяет унифицировать дизайн на всех устройствах, а не разрабатывать для каждой платформы свой. Таким образом вы экономите время и средства для разработки и при этом можете реализовать практически любые задумки по дизайну. 

    Чтобы улучшить адаптивность к разным платформам и обеспечить более гибкую кастомизацию десктопного приложения или веб-приложения, в Material 3 разработчики внесли ряд улучшений. Что изменилось:

    • Распознавание символов в TextField. Благодаря этому приложение распознает символы с помощью камеры устройства и пользователь вставляет их в поле ввода.
    • Адаптивный диалог AlertDialog для корректного отображения приложения на всех платформах;
    • Больше опций кастомизации виджетов (добавление подсказок, отображение ошибок) и поддержка жестов.

    Например, новый дизайн рипплов — эффект волнового распространения анимации при нажатии — и эффект stretch overscroll — эффект растягивания границ прокрутки. Теперь можно масштабировать отдельные виджеты с помощью двойного тапа с вертикальным перетаскиванием.

    Источник: https://www.kindacode.com/wp-content/uploads/2020/12/flutter-zoom-image-view.gif

    Что это значит? Material You — новая версия дизайн-языка Material Design, которая используется при разработки дизайна мобильных приложений. Возможность поддержки самой актуальной версии означает, что как мобильное, так и десктопное приложения теперь будут выглядеть современно, и UX/UI дизайнеры  смогут легко реализовать самые модные «фишки».

    Упростился контроль жизненного цикла веб-приложений

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

    Что это значит? Теперь мы можем визуализировать процесс загрузки веб-приложения до момента его запуска. Пользователь больше не будет смотреть на белый экран. Новая возможность даёт больше контроля над начальной загрузкой веб-приложения с HTML-страницы на стороне сервера. К тому же, она упрощает анализ производительности приложения в Lighthouse — инструменте для измерения качества веб-страниц.

    Улучшена поддержка складных устройств

    Появилось новое API жизненного цикла для веб-приложений. Это помогает делать качественнее сам продукт, улучшает UX конечного пользователя. 

    Что это значит? Теперь мы можем визуализировать процесс загрузки веб-приложения до момента его запуска. Пользователь больше не будет смотреть на белый экран. Новая возможность даёт больше контроля над начальной загрузкой веб-приложения с HTML-страницы на стороне сервера. К тому же, она упрощает анализ производительности приложения в Lighthouse — инструменте для измерения качества веб-страниц.

    Появилась поддержка складных устройств

     Flutter уже на протяжении нескольких релизов поддерживает создание приложений для мобильных раскладушек. В версии 3.13 разработчики доработали возможности фреймфорка и добавили новый API, для доступа к дисплеям складных устройств с помощью getter-метода FlutterView.display, что позволяет точнее с ними взаимодействовать.

    Что это значит? Даже на самых новых моделях телефонов-раскладушек приложение будет работать и отображаться корректно.

    Источник: samsung.com

    Релизы для iOS и Android

    Для iOS: Исправлены искажения при поворотах экрана, что делало его не похожим на нативный в iOS-приложениях. Новый релиз сглаживает такие искажения.

    Для Android: появилась поддержка Android 14 (API level 34), проработка нескольких фич пока в процессе, но в целом это уже полностью рабочая версия.

    Поддержка игр

    Теперь разработка казуальных игр на Flutter стала еще проще. Появились игровой шаблон, туториалы, документацию, пространство в сообществе и кредиты GCP/Firebase/Ad — все для того, чтобы вовлекать пользователя как в мобильном, так и в десктопном приложении. 

    Например, мы разрабатывали геймификацию для HR-приложения, где сотрудники компании могут в игровой форме зарабатывать и тратить баллы на книги и другие полезные для профессионального развития товары. А в приложении для крипто-социальной сети Main для большей вовлеченности пользователей создали систему звездочек для повышения рейтинга: чем выше рейтинг, тем красивее звездочка.

    Узнать больше о новых изменениях во Flutter можно на нашем сайте
    Читать

    Всё сразу: мобильное, веб- и десктопное приложение на Flutter

    Разработка на Flutter позволяет сократить сроки и стоимость разработки мобильного приложения до 60% — все 3 версии вашего цифрового продукта (мобильная, веб- и десктопная) создаются из одной базы кода с незначительными изменениями. Это подтверждает наш кейс с концептом необанка. Например, с помощью кроссплатформенного фреймворка мы реализовали идентичное нативному банковское приложение для разных устройств с привычными и удобными для пользователя функциями:

    • В разделе «Карты» — видны открытые карты с общим и разделённым балансом.
    • «Счета и «Цели» — имеют привычную функциональность «копилки» и доступных счетов: дебетового и кредитного.
    • «История» — отображает траты каждого месяца по категориям. 
    • «Автоплатежи», переводы по номеру телефона и оплата по QR-коду — тоже легко реализуемая функциональность.
    Приложение для СМП Банка

    Зачем создавать не только мобильное и веб-, но и десктопное приложение на Flutter?

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

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

    • простота нативных интеграций; 
    • впечатляющие библиотеки UI-компонентов (Windows, macOS);
    • готовые решения для управления мультиоконностью (window_manager);
    • утилиты для сборки десктопных артефактов (msix).

    Что это значит для бизнеса? Команда разработчиков Flutter не просто обеспечила возможность запустить мобильное приложение на десктопе, как это уже умеют делать Windows 11 и macOS — она создала настоящее десктопное приложение, удобное для пользователей. Теперь им не нужно скачивать его из сторов, и при этом не страдает качество продукта или удобство использования, что важно для компаний, оказавшихся под санкциями.

    Создайте ваше приложение на Flutter
    Свяжитесь с нами

    Почему именно Flutter: итоги

    Мы рассказали о самых важных изменениях и эволюции Flutter. Самое важное, что стоит отметить — Flutter ваш бизнес может получить несколько приложений, заложив ресурсы только на одно. А это значит:

    • Не нужно собирать 3+ разные команды под каждую платформу. Достаточно иметь в одной команде несколько разработчиков с компетенциями в этих платформах. Они будут помогать друг другу по платформенным задачам, а общий пул унифицированных задач делить поровну.
    • Проект на Flutter удобно поддерживать — все проблемы решаются раз и навсегда через единый код. Не нужно передавать информацию обо всех правках по всем платформам и платить нескольким командам разработчиков.
    • Код будет стабильным — он тестируется один раз и под все платформы, то есть все баги правятся одновременно на всех платформах.
    • Проект выйдет на рынок на 30-60% быстрее и обойдётся на столько же дешевле.

    Важно понимать, что часть кодовой базы проекта будет унифицирована (80–95%, в зависимости от специфики проекта), а адаптации будут необходимы — как по платформенным фичам, так и по UX. Но это будут именно адаптации, а не переписывание приложения с нуля. Именно поэтому мы в Surf постоянно следим за развитием кроссплатформы и активно участвуем в её развитии. 

    «У нас есть внутренний проект, на котором мы пробуем всё то, к чему наши клиенты будут готовы лишь «завтра». Да, это проект на Flutter Web.»

    Евгений Сатуров, Head of Flutter в Surf

    Развитие продукта зависит не только от технологии, но и от опыта команды разработчиков. Мы в Surf создаём мобильные приложения более 12 лет, а на Flutter — уже больше 4 лет, прошли сертификацию в Google и поддерживаем развитие самой кроссплатформы. 

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