Развиваем приложение для крупного банка
О клиенте
Банк — наш клиент, с которым работаем с 2018 года. У компании есть корпоративные и частные клиенты. Сотрудники получают зарплату и оформляют кредиты. Частные клиенты пользуются всеми доступными сервисами: от оформления карт до подачи заявки на кредит и оплаты ЖКХ. Всего у компании 15 000 корпоративных клиентов и 417 000 частных лиц.
Бизнес-задачи компании
За 2018–2021 годы работы с нами банк получил два мобильных приложения на iOS и Android и бесшовно перевел туда клиентов. Теперь у продуктового менеджера появились новые задачи — масштабировать продукт и сделать его конкурентоспособным:
- Полностью оцифровать оформление кредитов в приложении. В 2022 году клиенты банка всё ещё посещали отделения для подписания документов по кредиту. Это замедляло оформление и выдачу кредитов.
- Создать полноценную экосистему для удержания клиентов и повышения их лояльности. Пользователи ожидали от приложения многофункциональности, как у других банков. Они предпочитали совершать платежи, переводить средства, открывать вклады и кредиты в мобильном телефоне без посещения отделения банка.
В 2023 году появилась ещё одна сложная задача — банк оказался под санкциями США и Великобритании. Приложения удалили из зарубежных сторов и заблокировали аккаунты разработчиков. Это означало остановку в развитии и потерю клиентов. Поэтому руководство банка искало решения для релиза приложений.
Наши задачи для развития приложений
- Разработать новые возможности: динамическую анкету для подачи заявки на кредит, интеграцию с сервисами для оплаты ЖКХ, штрафов и налогов.
- Усилить безопасность операций в приложении.
- Разработать стратегию обхода блокировок в App Store и Google Play.
К 2023 году собрали слаженную команду для проекта. Сейчас в ней три Android-разработчика, два iOS-разработчика, бизнес-аналитик, проектный менеджер, два дизайнера и тестировщик. К 2024 году мы должны были вывести приложения на новый уровень.
Что получилось сделать
К 2024 году помогли банку решить такие задачи:
- Оцифровали розничный кредитный конвейер (РКК) и ускорили выдачу кредитов клиентам в 2 раза с помощью динамической анкеты.
- Реализовали приложение-клон для iOS.
- Внедрили обновления для Android внутри самого приложения.
- Адаптировали приложения под смартфоны Huawei и выложили в RuStore и Samsung Galaxy Store.
- Продолжаем внедрять платёжный сервис А3 для оплаты штрафов и налогов в приложении.
В разработке механика защиты от мошенничества с помощью запрета скриншотов и записи экранов, фиксации событий.
Как мы добились этих результатов
Не просто работали по заданиям от менеджеров банка, а планировали помочь компании добиться реализации всех бизнес-задач. Рассказываем, как добавили новые функциональности для масштабирования приложения.
Оцифровали РКК, чтобы ускорить выдачу кредитов клиентам
Розничный кредитный конвейер — платформа, которая помогает сотрудникам банка управлять выдачей кредитов. РКК самостоятельно заводит заявки на кредиты и анализирует информацию по пользователям с помощью скоринга. Это встроенный калькулятор, который анализирует факторы платёжеспособности пользователя.
Мы подключили мобильные приложения к РКК, чтобы автоматизировать дистанционную подачу заявки и добавили возможность отображения её статуса в приложении. Самой сложной частью доработки стала динамическая анкета для заявки. Сначала мы разработали основные поля, чтобы пользователь мог вернуться к анкете в дальнейшем и заполнить до конца. При этом он не начинал заполнять заявку с нуля.
Банк сформировал требования для разработки. Мы разделили анкету на 3 этапа:
- В первой части пользователь заполняет базовую информацию: контакты, данные паспорта, дату рождения и средний доход в месяц.
- Во второй части пользователь добавляет фото паспорта. Этот этап может быть пропущен, если клиент загружал фото до этого.
- В третьей части пользователь соглашается на передачу информации банку, подтверждает, что не банкрот и не имеет задолженностей. Затем он подписывает заявку и анкета отправляется на рассмотрение.
Внедряем платёжный сервис для оплаты штрафов и налогов в приложении
Банк планировал создать многофункциональное приложение, чтобы клиенты дольше оставались в нём и могли оплачивать внешние сервисы, например, ЖКХ и налоги. Для этого мы:
- Сделали интеграцию приложений с платёжным сервисом A3 и адаптировали приложения под работу сервиса, чтобы не было ошибок при оплате.
- Провели миграцию клиентов во время переходного периода разработки интеграции.
- Добавили возможность переключения на старый или новый сервис в приложении, чтобы клиентам было проще оплачивать услуги.
Например, управляющая компания ЖКХ сообщает сервису, какие данные ей нужны для оплаты счёта. Сервис создаёт форму для оплаты, где пользователь видит только нужные поля, заполняет их и оплачивает счёт. Сервис передаёт подтверждение оплаты поставщику услуг ЖКХ. При этом пользователи могут создавать шаблоны для оплаты и просматривать задолженности в приложении.
Скоро: защита от мошенничества, чтобы сократить риск передачи данных непроверенным лицам
Банк хотел обезопасить пользователей при использовании приложения и сократить количество мошеннических операций. Для этого мы предложили и реализовали такие механики:
- Запрет скриншотов и шеринга экранов. Например, чтобы пользователь не мог прислать одноразовый код для входа в приложении в мессенджеры.
- Отлавливание события записи и шеринга экранов или звонка в мессенджере, чтобы вычислить мошенников.
- Отлавливание события удаленного доступа к приложению.
- Фиксация событий на бэкенде, чтобы можно было проверить информацию и предотвратить мошеннические действия.
Разработали стратегию для максимальной доступности приложений в сторах
Банк не ожидал, что санкции могут коснуться его, так как до этого они распространялись на крупнейшие кредитные организации. В 2023 года США и Великобритания подготовили новый пакет санкций, в котором оказался и наш клиент. В этот же день приложения исчезли из Google Play и App Store, а аккаунты заказчика заблокировали. Банк потерял всю аналитику, оценки и отзывы пользователей. Мы предложили компании варианты обхода санкций, публикации в альтернативных сторах и обновления внутри самих приложений без скачивания из сторов.
Внедрили обновления внутри приложений и выложили в доступные сторы
Мы должны были доставить приложения для пользователей другими способами. Для Android внедрили несколько решений:
- Добавили возможность скачивать APK-файл приложения на сайте банка.
- Одними из первых среди финтех-сферы опубликовали приложение на GalaxyStore и RuStore.
Начали подготовку к публикации на Huawei App Gallery. Для этого перенесли сервисы с Google-сервисов на сервисы Huawei. - Отказались от многих привычных функциональностей Google: платформы Firebase для разработки, оплаты через Google Pay, добавления карт лояльности в Google Pay, построения маршрутов через GoogleMaps и распознавания штрих-кодов. Интегрировали приложение с Huawei-сервисами: добавили локацию и карту, чтобы можно было искать банкоматы на устройствах Huawei.
- Добавили обновления внутри приложения на Android. Теперь пользователю не нужно переходить на сайт за каждым обновлением. Приложение само сообщает пользователю о том, что доступна новая версия. Дополнительно приложение показывает информацию, что изменилось в новой версии.
Опубликовали приложение в App Store с помощью клонов и обфускации
8 месяцев восстанавливали доступ к публикации приложения в App Store. Чтобы разработать правильную стратегию и не ошибиться, сначала обсудили и исследовали возможные подходы к решению этой задачи. Мы знали, что должны разработать приложение-клон, как делают другие банки. Вопрос был в том, как такие приложения проходят проверку App Store.
Выяснили, что разработчики при публикации приложения должны были показать, что приложение полностью соответствует заявленной функциональности. Например, если просто назвать приложение по-другому, администрация площадки в итоге всё равно увидит, что это банк под санкциями. Мы должны были продумать наполнение фейкового приложения и скрыть весь код. При этом приложение должно пройти динамическую (ручную) и статическую (автоматическую) проверку.
Этап 1. Создали приложение-клон для скрытия основного приложения
Реализовали фейковую часть приложения на Feature Flag, который управляется из одобренной Apple платформы Firebase. Мы включаем «флаг» перед проверкой приложения и оно показывает сервис для хранения дисконтных карт разных магазинов. Когда проверка пройдена, мы выключаем «флаг» и приложение превращается в банковское.
Этап 2. Обфусцировали код для прохождения проверки функциональности приложения
App Store проверяет не только соответствие контента приложения заявленному, но и основную часть кода. Поэтому мы провели обфускацию кода. Это значит, что мы «запутывали» код для внешних проверок, но оставляли при этом всю функциональность приложения. App Store не могли анализировать, как работает приложение.
Например, наши разработчики искали вручную все триггерные слова, которые не дадут пройти проверку — «банк», его название и другие. Мы переименовали каждый класс функций приложения и создали словарик для них. Так обезличили основное приложение. При этом разработали отдельное приложение на Mac OS, которое самостоятельно обфусцирует код по ключевому слову и ищет «перевод» изменённой функции. Так мы разгрузили разработчиков от рутинной работы и автоматизировали процесс.
Но это было не всё, что нужно для прохождения проверки. У приложения банка есть большое количество разрешений, которые оно запрашивает у пользователя. Например, геопозиция для показа ближайших отделений банка. Это могло выдать нас и привести к блокировке приложения. Чтобы так не случилось, мы внедрили такие решения:
- Интерфейс для геолокации, который показывает расположение ближайших магазинов. Например, пользователь видит магазины Пятёрочки поблизости, если в приложении есть дисконтная карта сети.
- Когда приложение запрашивает доступ к камере, пользователь может сделать фото дисконтной карты.
Этап 3. Подготовка к публикации в App Store
Если бы мы не прошли проверку на площадке, то пришлось бы всё делать заново: создавать фейковую часть, проходить обфускацию. Это вылилось бы в новые расходы бюджета и времени для заказчика. Поэтому мы совместно долго обсуждали, как должен произойти релиз.
- Создали новый аккаунт разработчика для публикации приложения.
- Согласовали, что будет в приложении при публикации. В нём должна быть вся функциональность до блокировки и все решения, которые добавили в Android-приложение после блокировки.
- Сформировали план релизов, чтобы сократить до минимума риск новой блокировки. Сначала опубликовали фейковое приложение, затем основную функциональность ДБО и дальше запланировали скрытие приложения в сторах.
- Запланировали стратегию информирования клиентов об использовании приложения и изменениях в нём.
Например, мы учитывали, что пользователи могут оставить негативный комментарий и пожаловаться на фейковое приложение. Поэтому после релиза ДБО продержали приложение открытым две недели, а затем скрыли для всех регионов, кроме Грузии. Пользователей попросили поменять геолокацию и объяснили, что это поможет сохранить приложение в App Store.
Благодаря грамотной стратегии сэкономили около 2 млн руб. и 6 месяцев на разработке для банка.
Что делаем сейчас
Развитие приложения не останавливается и мы продолжаем улучшать функциональность и безопасность продукта. Сейчас работаем над такими механиками:
- Внедряем в РКК сканирование паспорта и подпись документов, чтобы пользователи не ходили в офисы банка.
- Обновляем систему лояльности. Для этого внедряем кэшбэк для вознаграждения за определённые категории покупок, категории повышенного кэшбэка для зарплатных клиентов и конвертацию баллов в рубли.
- Разрабатываем обезличенный металлический счёт для вкладов в металлы.
- Планируем внедрение продуктовой аналитики и редизайн приложения на основе бизнес-требований от банка.