Авторизация
Сброс пароля
Банковское приложение
Заказчик: под NDA
Страница кейса/результат: https://surf.ru/cases/bank_app/
Мобильное приложение для крупного банка с иностранным капиталом
1. Вводная задача от заказчика, проблематика, цели
Разработать мобильное приложение и помочь банку уйти от коробочного решения
У банка уже было мобильное приложение для физических лиц. Но оно было реализовано на основе коробочного продукта. Такое решение не позволяло кастомизировать приложение под потребности банка и очень ограничивало в его развитии и добавлении новых возможностей.
Банк решил создать собственное приложение, чтобы в дальнейшем отказаться от «коробки» и получить более гибкий инструмент для развития.
Банку нужно было:
- Создать с нуля собственное мобильное приложение и интегрировать его с существующим бэкендом. Его первая версия не должна была уступать по функциональным возможностям коробочному решению.
- Уйти от коробочного решения и получить гибкий инструмент для развития приложения.
- Актуализировать дизайн, сделать его более гибким и интуитивно понятным.
- Внедрить пользовательскую аналитику, чтобы лучше понимать потребности клиентов и им соответствовать.
- Реализовать для клиентов новые возможности: интеграцию с СБП, ГИС ГМП, Know Your Customer (KYC), онлайн-заявку на кредит и кредитную карту.
- Повысить безопасность приложения.
2. Описание реализации кейса и творческого пути по поиску оптимального решения
Проектирование и дизайн
Нам достался UI-дизайн от другого подрядчика. Он был согласован с европейским офисом компании и соответствовал брендбуку — единой концепции дизайна приложений банка по всему миру.
Мы предложили банку свой концепт. Его высоко оценила команда клиента в России, но в работу он не пошел: в первом релизе решили не тратить ресурсы на переработку дизайна. Сфокусировались на разработке приложения, чтобы выполнить основную задачу: уйти от коробочного решения.
Дизайн такого сложного продукта — это непрерывный процесс, который идет бок о бок с разработкой и все время совершенствуется. Так он постепенно превращается из простого набора экранов в сложную дизайн-систему.
За два года разработки мы развили и улучшили исходный дизайн, проработали узкие места и неучтенные юзкейсы. Например, на главном экране, кроме продуктов банка, добавили баннеры с индивидуальными предложениями для клиента: банк мог разместить туда предложение по кредиту или вкладу с выгодными условиями.
Аналитика — важнейшая часть разработки банковского приложения
Бизнес-аналитики проверили возможности бэкенда и убедились, что дизайн можно реализовать.
Это важный этап работы: команды дизайнеров, разработчиков и бизнес-аналитиков плотно взаимодействуют, чтобы учесть все нюансы и технические возможности. Не всегда можно воплотить в реальность красивую картинку — иногда нужно дорабатывать API или переделывать дизайн под возможности бэкенда.
Мы составили ТЗ, в котором описали нюансы поведения приложения, не очевидные из дизайна и документации к API.
Разработка приложения и интеграция с банковскими системами
Мы разработали нативные приложения на Swift для iOS и Kotlin для Android. Архитектура стандартная: SurfMVP для iOS, MVI и MVP для Android. Используем ее во всех проектах Surf.
Наши подходы хорошо задокументированы: это позволяет легко подключать к проекту новых разработчиков или забрать проект инхаус.
В процессе разработки много времени и сил потратили на интеграцию с бэкендом. Собственного бэка у банка не было, они работали с подрядчиком. Кроме того, взаимодействие между нами и бэком происходило через еще одного подрядчика: он выступал агрегатором, в который стягивалась вся информация с бэка и из внутренних систем банка (например, из справочников), адаптировал и передавал наши запросы друг к другу. Такая схема работы потребовала от команды проекта много усилий на то, чтобы реализовать приложение, которое работало с учетом всей специфики бэкенда и внутренних банковских систем.
Тестирование — обязательная часть проверки надежности кода и безопасности приложения
Надежность кода и безопасность важны для всех приложений, но для банковских — особенно. Чтобы обеспечить высокое качество продукта, мы проводим тщательное тестирование.
Код приложений для банка покрыт тестами на 100%. Мы достигли такого показателя благодаря использованию автотестов: без них тестирование занимало бы слишком много времени.
На проекте 1850 проверок, полное тестирование занимает 36 часов. 65% — автоматизированы, остальные 35% проверяются вручную из-за использования сторонних сервисов.
Пользовательская аналитика — эффективный инструмент анализа поведения пользователей
Для пользовательской аналитики мы применили AppMetrica и Firebase. Чтобы не потеряться в количестве событий и данных, начали с трекинга основных событий: входа в приложение, открытия экранов. Проанализировали старт и завершение ключевых воронок: заявки на кредит, выпуска карты, перевода денег через СБП. Для удобной сегментации аудитории собирали обезличенные данные о клиенте: из какого он города и какие продукты у него открыты.
Это стандартный набор аналитики для банка, который позволяет не утонуть в потоке лишней информации. Если в какой-то воронке выявляются проблемы, можно прицельно добавлять в нее события и разбираться с проблемой глубже.
Новые возможности для клиентов банка
Начали разработку с функциональности, которая повторяла коробочный продукт: платежи, просмотр открытых банковских продуктов и т.д. Но по ходу разработки функциональность расширилась. Добавили возможность полного или частичного погашения кредита, интегрировали приложение с системой лояльности Visa Loyalty Program.
Мы реализовали в приложении:
- Интеграцию с системой ГИС ГМП (Государственная информационная система о государственных и муниципальных платежах). В ней пользователь может узнать о своих задолженностях перед бюджетом, а через приложение банка — быстро и удобно оплатить их.
- Систему быстрых платежей (СБП). СБП позволяет мгновенно переводить деньги по номеру телефона клиенту любого банка.
- Систему Know Your Customer (KYC). KYC позволяет идентифицировать личность контрагента, прежде чем проводить финансовую операцию.
- Возможность выпустить цифровую карту вместо пластиковой.
- Удобная онлайн-заявка на кредит и кредитную карту
- В приложении реализовали сервис для подачи онлайн-заявки на получение кредита и кредитной карты. Для пользователя этот процесс выглядит просто и понятно. Он заполняет анкету и отправляет в банк. Через некоторое время получает ответ. Если заявка одобрена — то с конкретными условиями: сроком, суммой и ставкой кредита. Пользователь может сразу согласиться с этими условиями или попробовать их изменить: увеличить срок, уменьшить размер платежа. После этого он получает окончательный ответ от банка, оформляет кредит и получает деньги на счет или выбирает, в каком офисе заберет кредитную карту.
Анкету можно сохранить в черновик и редактировать. После отправки в банк заявка появляется в списке «Мои заявки», в нем можно посмотреть актуальный статус.
С точки зрения банка и мобильного приложения процесс оформления онлайн-заявки требует сложной логики реализации и интеграции со множеством банковских систем. В нем задействованы:
- бэкенд банка;
- справочники, из которых подтягивается информация в анкету;
- система, в которой хранятся данные о клиентах;
- система Dadata — сервис обработки базы контактов, где проверяется корректность адреса клиента и информация о его работодателе;
- отдел рисков, который анализирует информацию и рассчитывает процентную ставку.
Есть много «подводных камней», которые нужно учесть в оформлении заявки. Например, формат передачи данных: как мы будем оформлять дату, чтобы системы банка правильно ее обработали — дд.мм.гг или дд\мм\гг? Какие данные в анкете клиента можно подтягивать из справочника, а какие он должен заполнить самостоятельно? Как уведомить клиента о том, что статус его заявки изменился или о том, что обработка заявки потребует больше времени, чем планировалось? Кроме того, после заполнения пользователем анкеты бэкенду банка уходит json-файл, содержащий около 200 строк с данными пользователя. Его нужно корректно составить, передать и обработать.
Все эти моменты мы учли и реализовали в логике мобильного приложения.
В итоге, получился удобный инструмент, где клиент может быстро отправлять заявку на кредит или кредитную карту, редактировать срок или сумму кредита, следить за статусом заявки и оперативно оформлять кредит в случае одобрения.
3. Результаты сотрудничества
В приложении клиентам доступны все базовые банковские операции: можно открывать и закрывать счета, делать платежи, оформить заявку на кредит и т.д. Также банк внедрил в нем оплату через СБП и интеграцию с ГИС ГМП.
При помощи пользовательской аналитики банк может анализировать ключевые воронки: заявки на кредит, выпуск карты, перевод денег через СБП — и вносить изменения, если видит, что на каком-то этапе у клиентов возникают сложности. Кроме того, в новом приложении банку доступна сводная обезличенная информация о клиенте: из какого он города и какие продукты у него открыты.
4. Заключение
У банка появились нативные мобильные приложения для iOS и Android с современным дизайном и удобным интерфейсом. Теперь он не зависит от ограничений коробочного продукта и может развивать приложение и подстраивать его под свои бизнес-процессы — а не наоборот.