Android приложение для банковских коллекторов

Случается так, что уже готовому продукту срочно требуется мобильная версия. Мы готовы разобраться в сложностях новой системы и интегрировать мобильное приложение так, чтобы оно не выглядело «пятым колесом». Именно так и было с приложением для ФИС.

Задача:

Разработать мобильное решение для уже существующего коммерческого продукта.

ФИС (Финансовые Информационные Системы) разрабатывает и продаёт банковское ПО для работы коллекторов, мы сделали быстрое и надежное мобильное приложение органично дополнившее их сервис по сбору задолженностей.

Проблема

Во-первых, наше приложение должно было взаимодействовать c сервером, архитектуру и backend которого, к сожалению, разрабатывали не мы. Сам сервис изначально был сделан под web, и его API совсем не подходил под мобильные решения, а возможности адаптировать необходимые методы под мобайл, не потребовав изменений во всех остальных модулях системы, у нас не было.

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

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

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

Подход

Диана Распопова,
ведущий Andriod разработчик

«Сделать полноценный функциональный оффлайн для приложения (коллекторы на выезде не смогут работать если сеть пропадет), оказалось не самым сложным: все данные и справочники синхронизировались с сервером ( при запуске не чаще 1 раза в час синхронизировались данные, и раз в сутки — справочники). Хотя, учитывая объем данных, пришлось повозиться, чтобы это не было бесконечно долго, и распараллелить транзакции в базу и очередь запросов к серверу».

И тут возникла не вполне техническая сложность:

Оффлайн режим подразумевает, что на телефоне хранится база по клиентам — это автоматически попадает под ФЗ № 152 о защите персональных данных. Шифровать и дешифровать каждую строчку на входе для нескольких десятков таблиц и количеством записей порядка десятков тысяч — немного не рациональное решение, банк уже успеет разориться в ожидании пока слабый процессор смартфона все обработает. Решением стал sqlcipher, который шифрует и дешифрует базу целиком, причем открытие базы в дешифрованном виде возможно только из того же приложения, что базу создало.

Единственным адекватным решением для API, которое никак ни изменить, ни переписать, стала универсализация сериализаторов и десериализаторов. Парсеры сначала проверяли входной тип данных и в зависимости от входного типа определяли нужные действия.

В итоге получился интересный набор фич:

  • Сотрудник банка в офисе мониторит и контролирует работу коллекторов, составляет им список задач на день и имеет возможность следить за ходом их выполнения.
  • У каждой задачи могут быть свои комментарии и требования (часто это зависит от того, что нужно сделать: позвонить клиенту, приехать лично или достаточно написать письмо).
  • Видя задачи на день коллектор сам выбирает оптимальный для себя маршрут.
  • Полная интеграция с уже существующей CRM и web-сервисом, рабочая информация обновляется быстро и без потерь.
  • Приложение чувствует себя комфортно даже в отсутствии постоянного подключения к интернету.
  • Работать с программой удобно и на слабых устройствах с небольшим разрешением экрана.

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

Это всего лишь один из множества примеров эффективных красивых решений, реализованных нашей командой. Пишите нам! [email protected]

Клиент

Финансовые Информационные Системы

Суть:

Мобильное приложение для банковских коллекторов в рамках существующего продукта

Теги:

  • Android
  • Интеграция с API
  • OrmLite
  • Sqlcipher
  • Банковское ПО

Особенности:

  • Полноценный оффлайн режим;
  • Шифрование в соответствии с законом о защите личных данных;
  • Список задач;
  • Поддержка стороннего API;
  • Стабильная работа на слабых устройствах;
Open