Modernizing a Mobile SDK for a Global Payment Platform

Kotlin

iOS

Android

About the project

Our team partnered with a major international payment provider to help scale its global platform. The company needed an updated mobile SDK that would ensure stable payment processing and offer flexible UI configuration for new partner integrations

people in team
9 months
of development
67%
Successful payments processed through the mobile SDK

Tasks

  • Fix critical issues that affected successful payment completion.
  • Modernize the outdated, tightly coupled Java-based SDK with a unified architecture.
  • Enable customization of UI components for onboarding new partners.
  • Improve development speed, reliability, and overall maintainability

Solutions

We carried out the modernization in three major phases:

Updating the build foundation

  • Upgraded Gradle and the Android Gradle Plugin to current versions.
  • Added product flavors and organized build configurations.
  • Set up automated delivery pipelines using Fastlane.

Restructuring and decoupling the legacy SDK

  • Separated the SDK into independent Core and UI components.
  • Isolated business logic and streamlined layout structure.
  • Eliminated repeated code and resolved long-standing defects.

Creating a new SDK on a modern tech stack

  • Developed a Kotlin Multiplatform core with an MVVM/MVI architecture.
  • Adopted Jetpack Compose for Android and SwiftUI for iOS.
  • Completed full migration to Kotlin.
  • Integrated analytics and implemented automated unit and UI testing.

Outcomes

All tasks were delivered on schedule.

The share of successful payments processed through the mobile SDK increased from 18% to 67%.

The SDK now supports faster feature development, improved stability, and easier partner integrations.

Contact Us

Our Experts will get in touch with you within 24 hours

CEO of UplineSoft

Contact Us

Our Experts will get in touch with you within 24 hours

Thank you!
Your submission has been received
Something went wrong while submitting the form. Please, try again