Кейс: как мы перенесли приложение для социальных услуг с миллионной аудиторией на Flutter

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

Кейс: как мы перенесли приложение для социальных услуг с миллионной аудиторией на Flutter

В чем суть

Привет! Мы компания KR Digital, с 2007 года занимаемся цифровизацией услуг и бизнеса для крупных компаний. Наша компания разработала личный кабинет для «Мособлгаза», вот уже 7 лет мы занимается его техническим обслуживанием.

В прошлом году, анализируя пользовательское поведение, мы поняли, что скоро количество мобильных пользователей превысит десктоп. Существующее мобильное приложение развивалось медленно, часть функций в него не переносилась вовсе: стало понятно, что нужно что-то менять, ведь личный кабинет - ключевая точка контакта компании с потребителями, буквально «лицо» организации. И теперь мобильное приложение должно быть максимально удобным.

После всестороннего аудита мы написали проект развития, согласно которому в текущем приложении нужно было переделывать примерно всё: вносить более 100 корректировок в бэклог, внедрять около 20 новых функций в мобильную версию. Мы предложили заказчику смелую идею: вместо разработки двух отдельных приложений на iOS и Android переписать приложение на кроссплатформенном Flutter, что позволит вести разработку уже в едином приложении.

В чём плюс? Мы подсчитали, что таким образом сможем сэкономить 35–40% ресурсов – и временных (наших), и денежных (заказчика). Но самое важное – стратегическая выгода для заказчика: наш план развития приложения рассчитан на несколько лет с постепенным внедрением всё более широкого функционала, и каждый раз это будет разработка одного продукта вместо двух.

Подробнее о технологии

Flutter - бесплатный и открытый набор средств разработки мобильного пользовательского интерфейса от Google, который позволяет использовать единый язык программирования и базу кода сразу для IOS и Android. Фреймворк был создан в 2017 году. Для него используется язык программирования Dart, также созданный в Google.

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

А что мы конкретно сделали?

Задача 1: Определить спектр доработок UX на основании бэклога. В старых приложениях не было аналитики, поэтому добывать информацию пришлось самостоятельно.

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

Задача 2: Переработать UX и UI-дизайн приложения с учётом всего фидбэка.

Решение: Основная сложность – актуализировать UI-дизайн приложения в соответствии с планом, но не перерабатывать с нуля. Мы поработали над интерфейсом совместно с аналитиками, чтобы предусмотреть множество мелочей, которые могут повлиять на UX и конверсию пользователей в целевые действия. Причём наш дизайнер в процессе работы нашла концепцию, которая так понравилась заказчику, что легла в основу всего фирменного стиля компании и стала использоваться на корпоративном сайте. С учётом переработанного дизайна и функционала, мы перенесли всё с рефакторингом на новую технологическую платформу flutter.

Кейс: как мы перенесли приложение для социальных услуг с миллионной аудиторией на Flutter
Кейс: как мы перенесли приложение для социальных услуг с миллионной аудиторией на Flutter
Обновленный дизайн приложения
Обновленный дизайн приложения

Задача 3: Обновить всю платформу и переписать на новый движок.

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

Задача потребовала высококлассной менеджерской работы: по мере процесса у нас увеличивался объем задач и изменений, а любое изменение – огромный круг согласований у заказчика.

Были ли подводные камни в работе с Flutter?

Мы обнаружили два. Первый - большая зависимость от библиотек: иногда ошибки возникают из-за проблем в библиотеках и ждать решения приходится долго. Например у нас была ошибка, из-за которой на Android 8 приложение вылетало. Но всегда можно найти способ, как это исправить, также можно дописывать кастомные решения самостоятельно. Второй - увеличение веса приложения, из 13 Мб у нас оно выросло до 50 Мб.

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

Чего мы добились

  • Сократили будущие затраты заказчика на развитие приложения и увеличили скорость выпуска новых сервисов на 35% за счет переноса на Flutter
  • Переработали более 230 экранов, разработали новый дизайн приложения, реализовали интеграцию с 10 внутренними системами по различным протоколам и режимам обмена
  • Сделали приложение, основанное на открытых технологиях; убедились, что Flutter подходит для больших комплексных проектов
  • Повысили оценку приложения в Google Play с 3.4 до 4.8
Кейс: как мы перенесли приложение для социальных услуг с миллионной аудиторией на Flutter

А вы использовали Flutter для создания/переработки приложений? Довольны ли результатом?

22
3 комментария

А че там у флаттера, мультиоконность уже завезли на десктопы?

для линукса и мака - да. Для винды - нет. Ещё для первых двух есть https://pub.dev/packages/multi_window, для винды открыт таск https://github.com/flutter/flutter/issues/30701

1

Пересел с iOS на Flutter осенью 2019 чтоб написать систему диспетчеризации для управляющих компаний. В итоге: три Flutter проекта, одно web-приложение, 4 мобильных (для клиентов и сотрудников под iOS и Android) и telegram бот.
Удобно что единая кодовая база, в целом приложения не лагали (но и нагрузки сильной не было в виде анимаций или еще чего).
Сейчас пока проект в доработке, но если интересно - https://v2.operator18.ru
Логин: operator@mail.ru
Пароль: operator