Как сделать кроссплатформенное мобильное приложение для программы лояльности
Hola, Amigos!
С вами команда Amiga. Мы занимаемся заказной разработкой мобильных приложений, создаем веб-сайты и корпоративные порталы.
Сегодня поговорим о разработке цифровых продуктов на Flutter. Согласно исследованию, более 92% опрошенных утверждают, что использование Flutter уменьшает срок реализации приложения, а 93% пользователей нравится приложения на Flutter.
Разработка приложения на Flutter — это разработка с нуля, что подразумевает большую подготовительную работу. Наш заказчик, компания Vaillant Group, пришел к нам именно с такой задачей, поэтому мы предложили Flutter как самое оптимальное решение.
Мы разработали кроссплатформенное мобильное приложение с интеграцией программы лояльности для компании по производству оборудования для отопления, охлаждения и вентиляции помещений Vaillant.
Это приложение для сервисных специалистов, чтобы помочь им облегчить процесс регистрации работ и привлечь в программу лояльности PRO.Expert. В ней можно начислять, копить и выводить баллы на банковский счет или же потратить их внутри приложения в разделе «витрина подарков».
Почему выбрали Flutter?
Мы решили использовать кроссплатформенную разработку и технологию Flutter — она позволяет создавать приложение одновременно на двух платформах: Android и iOS.
При разработке нативных приложений нужны две независимые команды. В случае с Flutter нельзя сказать, что платформа сокращает половину расходов, но экономия все равно очень существенная. Большое количество времени также экономится на дизайне и тестировании приложения.
В разработке на 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 мы также получили много положительных отзывов о подходе к работе.
У нас большие планы на развитие приложения PRO.Expert. Система лояльности сейчас работает в энергосберегающем режиме, но в скором времени возобновится. Сейчас мы работаем над улучшением каталога продукции в приложении, разрабатываем дополнительный функционал по геопозиционированию. Уверен, что дальнейшая работа с командой Amiga будет такой же эффективной и плодотворной!
Мы очень ценим нашу команду и хотим отметить их в статье
Сергей Лепшей – PM
Софья Винникова – Системный аналитик
Кирилл Калюжный – Flutter dev
Тимур Моисеев – Flutter dev
Игорь Веденеев – Mobile TeamLead
Леонид Никулин – Арт-директор
Не поленился, скачал ваш апп под айось, глянуть на вашу эту кроссплатформенность..
Спасибо, теперь у меня еще больше уверенности в незаменимости натива на ближайшие 5 лет🙏🏻
Для тех кому лень, оставлю это здесь. Тап на соглашение. Напомню, платформа — айос.
Комментарий недоступен
вы крутые
Спасибо!
В клиент-серверной архитектуре, на клиенте не может быть бизнес-логики. Сильная команда.
Это почему? 😁
По статье вроде всё адекватно. Вне статьи, современные телефоны позволяют делать расчёты на стороне клиента и не насиловать REST. Что-то уходит на сервер, что-то остаётся на мобильном, это более чем адекватно.
Ну да, конечно.
а в чём разница ?
Только без общих фраз "нативное есть нативное"
а как реализовали оффан-регистрацию в приложении? с помощью чего так можно делать
Сервисные специалисты без доступа в интернет могут открыть приложение и заполнить данные, они сохраняются в черновиках. Как только доступ к интернету возвращается, нужно зайти в приложение и подтвердить регистрацию.
система Кейк.Лок - вы тут ничего не напутали?)
система Кек.Лол
:)
Спасибо, что заметили, поправим :)
Далее текст про то что он кроссплатформенный и отличие от native. Пассаж капитана.
Тем временем не нашёл для себя ответа, почему не ламповый KMM или заезженный React Native. Вариантов на самом деле ещё больше. Так почему Flutter?
kmm оставьте финтеху и рокетсайнс стартапам. Выбрав kmm для подобного приложения обошлось бы в лучшем случае 2x ценой. Послушайте подкаст тимлида медузы, где он рассказывает почему они полностью переписали своё приложение на flutter и уволили нативных разрабов)
Все про флаттер, хочется больше подробностей про само приложение. Для сервисных специалистов, а кто они такие?
Сервисные специалисты — это монтажные работники. Те, кто занимается установкой и обслуживанием оборудования компании Vaillant. Приложением также могут пользоваться менеджеры и продавцы компании, во время регистрации выбирается подходящая роль.
заяц годный, но вот со своими рассказами уже замучили
Какую БД выбрали для приложения и почему?
Что выбрали для сканирования шк?
Для локального хранилища используем библиотеку sqflite. Она наиболее популярна в среде Flutter-разработки и, на наш взгляд, стабильна в работе.
Для сканирования ШК использовали библиотеку qr_code_scanner. На данный момент она не поддерживается, поскольку базовые фреймворки этого пакета, zxing для Android и MTBBarcodescanner для iOS, больше не поддерживаются.
Почему просто не разрабатывать PWA-приложения? Вы же из веб-разработчиков...
Мы не только веб-разработчики, но и мобильные разработчики. PWA имеют ряд существенных недостатков в сравнении с классическим приложением. Основной из них в том, что PWA не имеют прямого доступа ко всем возможностям платформы.
Основное его преимущество — кросплатформенность, но Flutter это умеет и так
Можно было как вариант Nintendo назваться
Я сейчас смотрю в сторону Kotlin Multiplatform, мне нравится он тем что бизнес-логика там одна, а UI слой остается нативным