Skip to main content

Changelog

A comprehensive log of notable changes made to the Android SDK.


Version (Latest): 1.0.9

What's New

  • Added Support for Payment Creation Idempotency
    • Introduced the givenID parameter to the PaymentRequest model as an optional field.
    • Enables safe retry of payment creation requests without the risk of duplicate charges in the case of network issues.

Pros:

  • Ensures idempotent payment creation.
  • Prevents duplicate transactions during retries.

Version: 1.0.8

What's New

  • Custom Payment UI Support
    • Added support for fully customized UI for:
      • Credit Card payments
      • STC Pay payments

Pros:

  • Design your own payment screens with full control over fonts, colors, styles ... etc.
  • Greater flexibility for branding and UX consistency.

Version: 1.0.7

What's Changed


  • Removed Jetifier

    • Jetifier, which converted legacy Android Support libraries to AndroidX, has been removed.

Pros:

  • Faster builds – Jetifier adds processing overhead; removing it speeds up Gradle builds.
  • Smaller APK/AAB size – Fewer redundant dependencies and mappings.
  • Cleaner dependency graph – Avoids messy mix of AndroidX and legacy support libraries.
  • Modern ecosystem compatibility – Most libraries have dropped support for legacy Android Support, so Jetifier becomes obsolete.

  • Migrated to AndroidX

    • All dependencies have been migrated from the old Android Support libraries to AndroidX.

Pros:

  • Access to latest APIs – AndroidX continues to evolve with Jetpack libraries.
  • Better tooling support – Full integration with Android Studio, Lint, R8, etc.
  • Improved testing libraries – Jetpack Test libraries are AndroidX-first.
  • Security updates & bug fixes – Only AndroidX receives active maintenance.
  • Better interop with modern libraries – Most modern Android libraries are built for AndroidX.

  • Removed Kotlin Annotation Processing Tool (like KAPT and KS)

    • KAPT has been removed from the build process.

Pros:

  • Faster builds – No annotation processing = less compile-time work.
  • Fewer dependencies – Reduces the risk of version conflicts and simplifies the build.
  • Simpler Gradle configuration – One less plugin to manage.
  • Cleaner codebase – Moving away from annotation-heavy libraries (e.g., Dagger) often results in more readable code.

  • Removed Data Binding from sdkDriver

    • Data Binding has been removed in favor of simpler alternatives like ViewBinding or Jetpack Compose.

Pros:

  • Better runtime performance – No data binding reflection overhead or XML-to-Java bridging.
  • Faster builds – Data Binding generates a lot of code at compile time.
  • Easier to debug – Plain old ViewBinding or Compose is easier to trace.
  • Fewer bugs due to silent failures – Data Binding silently fails on incorrect variable names or types.
  • Smaller SDK size – No Data Binding classes or dependency bloat.

Version: 1.0.6

What's Changed

  • Currency Symbol Update
    • Replaced SAR / with the localized Saudi currency symbol .

Pros:

  • Enhances localization and native user experience.
  • Aligns with industry conventions and local expectations.

Version: 1.0.5

What's Fixed

  • Redirect Issue on Some Devices
    • Fixed an issue where navigating between apps on some devices would reset the transaction URL to null, causing redirects to fail.

Version: 1.0.4

What's Improved

  • UI/UX Enhancements
    • General improvements to interface for a smoother user experience.

Version: 1.0.3

What's Changed

  • Asset Naming

    • Prefixed all asset names with unique identifiers to avoid naming conflicts with third-party SDKs.
  • Fragment Reuse Fix

    • Resolved an issue where stale data persisted during fragment reuse for multiple transactions by properly cleaning up data during reinitialization.

Version: 1.0.2

What's Changed

  • View Binding Migration

    • Migrated from DataBinding to ViewBinding.

    • Pros:

      • Simplifies view management.
      • Avoids XML changes and improves performance by eliminating runtime reflection.
  • Applied Clean Architecture

    • Layer Breakdown:

      1. Presentation/UI

      • Handles UI logic with Activity, Fragment, and ViewModel.

      1. Domain

      • Pure Kotlin module containing use cases and repository interfaces.

      1. Data

      • Manages data sources and repository implementations.
    • Pros:

      • Improves modularity and separation of concerns.
      • Easier to test and scale.
      • Accelerates feature development.
  • Testing Strategy

    • Unit Testing: Covers entities, use cases, and repository logic.
    • Integration Testing: Validates full data flow between UI and SDK.