Обновление мобильного SDK для системы онлайн-платежей крупного международного провайдера
Нередко доработка имеющегося функционала помогает многократно улучшить продуктовые метрики. В этом кейсе рассказываем о сотрудничестве с крупным международным провайдером онлайн-платежей, для которого мы обновили старый мобильный SDK, а также разработали новую версию с нуля.
Задача
Клиент обратился к нам в 2021 году. Его продукт — глобальная платежная система с поддержкой более 100 методов оплаты. В связи с запуском нового направления бизнеса, компания решила создать новую версию имеющегося мобильного SDK (пакета инструментов для разработки приложения). Нам предстояло исправить несколько ключевых ошибок, влияющих на успешное проведение платежей, а также «научить» SDK настраивать вид приложения при подключении новых партнеров. Для этого нужно было разработать новый функционал, обновить цветовую палитру и добавить новые UI-элементы.
Трудности
На старте проекта мы столкнулись с несколькими проблемами:
- сильно связанный код текущего mSDK, отсутствие единой архитектуры;
- старый стек технологий, отсутствие автоматизации кода;
- 90% кода было написано на Java, что существенно замедляло темпы разработки нового функционала из-за специфики языка;
- отсутствие единого подхода к верстке;
- множественное дублирование кода (отсутствие корректной иерархии наследования классов).
Процесс
Мы разделили предстоящую работу на несколько шагов и приступили к последовательному выполнению каждого этапа.
Этап 1. Обновление инструментов сборки:
- обновление Android Gradle plugin;
- внедрение product flavors;
- настройка build variants для тестирования;
- внедрение Fastlane.
Этап 2. Уменьшение связанности кода, оптимизация, рефакторинг:
- разделение на подмодули (Core + UI);
- инкапсуляция логики в отдельные методы/классы;
- оптимизация xml-верстки;
- исправление багов + попутный рефакторинг;
- удаление дублирующего кода (обобщение функционала).
Этап 3. Разработка новой библиотеки с применением современного стека:
- создание core-модуля на Kotlin Multiplatform;
- архитектура: MVVM + MVI;
- 100% кода на Kotlin;
- UI на Jetpack Compose (Android) и SwiftUI (iOS);
- внедрение сбора аналитики;
- автоматизация (Unit/UI-тестирование).
Результат
Мы выполнили все поставленные задачи в срок и клиент остался полностью доволен качеством проделанной работы. Количество успешных платежей, проводимых через мобильный SDK, выросло с 30% до 75%.
Технологии
Kotlin Multiplatform, Swift, SwiftUI, MVVM, MVI, Jetpack Compose, Ktor