Рестарт BSB Mobile

Два в одном: мобильный банк для физлиц и компаний в приложении БСБ Банка

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

Задача

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

Как строили работу

Чтобы укладываться в сроки, мы оптимизировали процесс разработки параллельно с решением основных задач. Создавали UI-компоненты элементов, чтобы в дальнейшем быстрее готовить макеты для новых фич. Со временем в проекте появился набор готовых решений интерфейса в UI-Kit, с которым стало проще создавать прототипы и соблюдать дедлайны.

Масштабные задачи по разработке закрывали благодаря грамотному планированию и гибкому расширению команды.

Над проектом работали:

4

IOS-разработчика

3

Android-разработчика

1

системный аналитик

Предложили новую архитектуру

Раньше приложение на iOS работало на архитектуре MVC, которая не подходит для сложных проектов с большим количеством функционала. Как итог нарушались принципы разработки, качество кода страдало и приложение выдавало ошибки там, где должно было работать безотказно.

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

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

Создали библиотеку компонентов

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

Внедрили валидацию

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

Один из самых сложных элементов в таких проектах — это элементы ввода: буквы и цифры. Причина в нюансах. Если пользователь нажал на поле и ввёл символы, система должна ждать или сразу выводить подсказку? Или стоит ограничить количество цифр, особенно когда требуется указать номер паспорта? Мы вынесли элементы ввода из табличных ячеек в пул стандартных компонентов, которые были разработаны для приложения. Каждый элемент получил свою вью-модель и стал более гибким: разделили функционал по отображению и поведению.

Результат

Обычно банки разделяют приложения для разных типов клиентов: физлиц и юрлиц. БСБ Банк выпустил новое приложение 2 в 1 с возможностью легко управлять личными и бизнес-финансами. В нем можно взаимодействовать со всеми своими бизнесами, если их несколько, счетами фирм и ИП. Нужные документы формируются в мобильном банке после заполнения нескольких полей и конвертируются в PDF-документ. После их можно отправить на подпись.

Функции приложения BSB Bank

Для бизнеса

Доступ для бухгалтера

Формирование выписок и платежей

Управление списком счетов и реквизитами

Управление документами: визирование, подписание, оплата

Валютный маклер

История документов

История операций

Для частных клиентов

Заказ и выпуск карт

Все виды платежей и переводов

Управление лимитами и блокировка карт

Поиск отделений и банкоматов на карте

Калькулятор валют

История платежей с фильтрами

История документов

cover-img
Стек

Аналитика


BPMN

Android-разработка


Kotlin

Android SDK

Coroutines

Flow

Retrofit

Koin

Room

MVVM

iOS-разработка


Swift

MVC

MVVM

Combine

SnapKit

Concurrency

GCD

Swagger

Alamofire

Jenkins