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 thePaymentRequest
model as an optional field. - Enables safe retry of payment creation requests without the risk of duplicate charges in the case of network issues.
- Introduced the
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
- Added support for fully customized UI for:
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 .
- Replaced
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.
- Fixed an issue where navigating between apps on some devices would reset the transaction URL to
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
toViewBinding
. -
Pros:
- Simplifies view management.
- Avoids XML changes and improves performance by eliminating runtime reflection.
-
-
Applied Clean Architecture
-
Layer Breakdown:
-
Presentation/UI
-
Handles UI logic with
Activity
,Fragment
, andViewModel
.
-
Domain
-
Pure Kotlin module containing use cases and repository interfaces.
-
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.