Как сделать кроссплатформенное мобильное приложение для программы лояльности

Hola, Amigos!

С вами команда Amiga. Мы занимаемся заказной разработкой мобильных приложений, создаем веб-сайты и корпоративные порталы.

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

Разработка приложения на Flutter — это разработка с нуля, что подразумевает большую подготовительную работу. Наш заказчик, компания Vaillant Group, пришел к нам именно с такой задачей, поэтому мы предложили Flutter как самое оптимальное решение.

Мы разработали кроссплатформенное мобильное приложение с интеграцией программы лояльности для компании по производству оборудования для отопления, охлаждения и вентиляции помещений Vaillant.

Это приложение для сервисных специалистов, чтобы помочь им облегчить процесс регистрации работ и привлечь в программу лояльности PRO.Expert. В ней можно начислять, копить и выводить баллы на банковский счет или же потратить их внутри приложения в разделе «витрина подарков».

Почему выбрали Flutter?

Мы решили использовать кроссплатформенную разработку и технологию Flutter — она позволяет создавать приложение одновременно на двух платформах: Android и iOS.

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

Тимур Моисеев, Teamlead Amiga

В разработке на Flutter есть и другие преимущества:

  • Оптимизация бюджета. Создание приложения на Flutter стоит на 40% дешевле, чем разработка двух нативных. А с пользовательской стороны нет разницы.
  • Одинаковая бизнес-логика на всех платформах. Вся инфраструктура приложения выглядит нативно за счет особенностей фреймворка Flutter.
  • Ускоренный релизный цикл. Приложение на Flutter запускается быстрее, чем нативное, за счет работы с одной командой и на одной платформе. Значит и прибыль компании оно принесет быстрее.
  • На Flutter можно реализовать любой дизайн: от каталогов интернет-магазина до сложных анимаций.

Какие задачи проекта?

Мы подключили аналитика, разрабатывали дизайн-системы, проектировали back-end часть, занимались проработкой коммуникации с пользователями и интегрировали программу лояльности PRO.Expert.

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

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

Как выглядит приложение?

Раньше каждый раз при входе в приложение нужно было вводить логин и пароль, это неудобно. Мы провели интеграцию с системой Keycloak. Теперь при первой авторизации передается долгоиграющий токен, который месяц позволяет пользователю не вводить данные для входа.

Регистрация специалиста

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

Личный кабинет

В личном кабинете специалиста можно посмотреть баллы, в один клик перевести их на карту или приобрести подарок.

Регистрация работ

Раньше монтажники вводили адрес работ «от руки». Это занимало в среднем 5 минут, можно было допустить ошибки. Мы интегрировали сервис Da.Data – сервис справочников, и теперь это занимает до 30 секунд. Но из-за того, что долгое время сервисные специалисты вводили неверные адреса, нам нужно было сохранить старую базу и сметчить ее с новой. Как проблема решилась: мы придумали нелинейную систему, которая проверяет условия корректного ввода данных. Часть решения перенесли на back, часть на front.

Автоматическая регистрация работ

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

Офлайн-регистрация

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

Подведем итоги

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

Приложение можно скачать в App Store и Google Play, а с сентября 2022 и в Huawei AppGallery.

За всеми согласованиями, сметами и проектирование бывает, что теряется цель проекта. Но это не тот случай. Мы общались с отделом продаж, маркетинга, специалистами по программе лояльности, чтобы собрать полный список ожиданий. Было приятно сотрудничать с командой специалистов, которые знают, чего хотят. От команды Vaillant мы также получили много положительных отзывов о подходе к работе.

Софья Винникова, системный аналитик Amiga

У нас большие планы на развитие приложения PRO.Expert. Система лояльности сейчас работает в энергосберегающем режиме, но в скором времени возобновится. Сейчас мы работаем над улучшением каталога продукции в приложении, разрабатываем дополнительный функционал по геопозиционированию. Уверен, что дальнейшая работа с командой Amiga будет такой же эффективной и плодотворной!

Артем Растунов, директор по маркетингу Vaillant

Мы очень ценим нашу команду и хотим отметить их в статье

Сергей Лепшей – PM

Софья Винникова – Системный аналитик

Кирилл Калюжный – Flutter dev

Тимур Моисеев – Flutter dev

Игорь Веденеев – Mobile TeamLead

Леонид Никулин – Арт-директор

0
55 комментариев
Написать комментарий...
Максим Деребаско

Не поленился, скачал ваш апп под айось, глянуть на вашу эту кроссплатформенность..
Спасибо, теперь у меня еще больше уверенности в незаменимости натива на ближайшие 5 лет🙏🏻

Ответить
Развернуть ветку
Максим Деребаско

Для тех кому лень, оставлю это здесь. Тап на соглашение. Напомню, платформа — айос.

Ответить
Развернуть ветку
8 комментариев
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
2 комментария
Ильяна Левина

вы крутые

Ответить
Развернуть ветку
Amiga
Автор

Спасибо!

Ответить
Развернуть ветку
Уинстон Смит
Одинаковая бизнес-логика на всех платформах.

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

Ответить
Развернуть ветку
Дмитрий Перепёлкин

Это почему? 😁
По статье вроде всё адекватно. Вне статьи, современные телефоны позволяют делать расчёты на стороне клиента и не насиловать REST. Что-то уходит на сервер, что-то остаётся на мобильном, это более чем адекватно.

Ответить
Развернуть ветку
11 комментариев
Тринадцать Двенадцатый
А с пользовательской стороны нет разницы.

Ну да, конечно.

Ответить
Развернуть ветку
Женя Гагарин

а в чём разница ?
Только без общих фраз "нативное есть нативное"

Ответить
Развернуть ветку
3 комментария
Христос Воскресович

а как реализовали оффан-регистрацию в приложении? с помощью чего так можно делать

Ответить
Развернуть ветку
Amiga
Автор

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

Ответить
Развернуть ветку
Олег

система Кейк.Лок - вы тут ничего не напутали?)

Ответить
Развернуть ветку
Филипп Новиков

система Кек.Лол
:)

Ответить
Развернуть ветку
Amiga
Автор

Спасибо, что заметили, поправим :)

Ответить
Развернуть ветку
Дмитрий Перепёлкин
Почему выбрали Flutter?

Далее текст про то что он кроссплатформенный и отличие от native. Пассаж капитана.
Тем временем не нашёл для себя ответа, почему не ламповый KMM или заезженный React Native. Вариантов на самом деле ещё больше. Так почему Flutter?

Ответить
Развернуть ветку
Сергей Сергей

kmm оставьте финтеху и рокетсайнс стартапам. Выбрав kmm для подобного приложения обошлось бы в лучшем случае 2x ценой. Послушайте подкаст тимлида медузы, где он рассказывает почему они полностью переписали своё приложение на flutter и уволили нативных разрабов)

Ответить
Развернуть ветку
6 комментариев
Ольга Князева

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

Ответить
Развернуть ветку
Amiga
Автор

Сервисные специалисты — это монтажные работники. Те, кто занимается установкой и обслуживанием оборудования компании Vaillant. Приложением также могут пользоваться менеджеры и продавцы компании, во время регистрации выбирается подходящая роль.

Ответить
Развернуть ветку
Олег Малахов

заяц годный, но вот со своими рассказами уже замучили

Ответить
Развернуть ветку
Mike Kosulin

Какую БД выбрали для приложения и почему?

Что выбрали для сканирования шк?

Ответить
Развернуть ветку
Amiga
Автор

Для локального хранилища используем библиотеку sqflite. Она наиболее популярна в среде Flutter-разработки и, на наш взгляд, стабильна в работе.
Для сканирования ШК использовали библиотеку qr_code_scanner. На данный момент она не поддерживается, поскольку базовые фреймворки этого пакета, zxing для Android и MTBBarcodescanner для iOS, больше не поддерживаются.

Ответить
Развернуть ветку
1 комментарий
Сергей Дьяконов

Почему просто не разрабатывать PWA-приложения? Вы же из веб-разработчиков...

Ответить
Развернуть ветку
Amiga
Автор

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

Ответить
Развернуть ветку
EduardC

Можно было как вариант Nintendo назваться

Ответить
Развернуть ветку
Maksim Isaev

Я сейчас смотрю в сторону Kotlin Multiplatform, мне нравится он тем что бизнес-логика там одна, а UI слой остается нативным

Ответить
Развернуть ветку
52 комментария
Раскрывать всегда