Modernizing the Backbase iOS SDK for SwiftUI

Technical Details

Role

iOS SDK Consultant

Platform

iOS SDK

Language

Swift

UI Framework

SwiftUI, UIKit

Architecture

Journey Framework, MVVM

Testing

Snapshot, XCTest

Modernizing the Backbase iOS SDK for SwiftUI

Consulting for Backbase to rewrite banking journeys from UIKit to SwiftUI.

Backbase is one of the leading digital banking platforms in the world, powering mobile applications for over 150 financial institutions globally. As a consultant for Backbase, I worked directly with their iOS platform team to modernize the SDK's journey framework—transitioning the core banking experiences from UIKit to SwiftUI while maintaining backward compatibility for hundreds of existing bank implementations.

The Platform Challenge

Backbase's iOS SDK provides pre-built "journeys"—complete user flows for common banking tasks like account opening, money transfers, and card management. These journeys had been built over years using UIKit and needed modernization:

  • UIKit Legacy: Journeys were built with UIViewController-based architecture
  • Customization Complexity: Banks struggled to customize journeys to match their brands
  • State Management: Complex state handling spread across view controllers
  • Testing Difficulty: UI testing was brittle and slow
  • Developer Experience: New developers faced steep learning curves

SwiftUI Migration Strategy

Migrating a platform SDK used by 150+ banks required careful planning:

Phased Approach: 1. Core UI components rebuilt in SwiftUI 2. New journey framework with SwiftUI-first architecture 3. UIKit compatibility layer for existing integrations 4. Gradual migration path for bank implementations

Backward Compatibility:

  • UIHostingController bridges for embedding SwiftUI in UIKit
  • Protocol-based abstractions hiding implementation details
  • Feature flags for gradual SwiftUI adoption
  • Parallel UIKit journeys maintained during transition

Journey Architecture

The new journey framework embraced SwiftUI's declarative paradigm:

Step-Based Navigation:

  • Each journey composed of discrete steps
  • Coordinator pattern adapted for SwiftUI
  • Deep linking support for step resumption
  • Analytics automatically tracked per step

Customization System

Banks need extensive customization without modifying SDK source code:

Theming Layer:

  • Design tokens for colors, typography, spacing
  • Component-level style overrides
  • Dark mode support built-in
  • Dynamic Type accessibility scaling
Content Customization:
  • Localization with bank-specific copy
  • Configurable field validation rules
  • Optional step inclusion/exclusion
  • Custom step injection points
Behavioral Customization:
  • Protocol-based service injection
  • Custom analytics providers
  • Error handling overrides
  • Navigation behavior modification

Component Library

We built a comprehensive SwiftUI component library for banking UIs:

Core Components:

  • `BBTextField`: Secure text input with validation
  • `BBButton`: Primary/secondary actions with loading states
  • `BBCard`: Account and transaction cards
  • `BBList`: Optimized lists for transactions
  • `BBBottomSheet`: Modal presentations
  • `BBAlert`: Inline and modal alerts
Composition Patterns:
  • ViewModifiers for consistent styling
  • Environment values for theme propagation
  • Preference keys for child-to-parent communication
  • Custom layout containers for banking screens

Testing Infrastructure

SwiftUI enabled dramatically improved testing:

Snapshot Testing:

  • Automated visual regression testing
  • Multiple device size coverage
  • Dark mode and accessibility variants
  • CI integration with diff reporting
Unit Testing:
  • ViewModels fully testable in isolation
  • Mock injection via protocols
  • Combine publisher testing utilities
  • 90%+ coverage requirement for journeys
UI Testing:
  • Accessibility identifier-based selectors
  • Journey flow automation
  • Performance benchmarking
  • Memory leak detection

Results and Impact

The SwiftUI modernization delivered significant improvements:

For Banks:

  • 70% faster journey customization
  • 50% less code for typical implementations
  • Improved accessibility out of the box
  • Consistent experience across all journeys
For Backbase:
  • 3x faster new journey development
  • 80% reduction in UI-related bugs
  • Easier onboarding for new SDK developers
  • Future-proof architecture for visionOS
The modernized SDK is now the foundation for Backbase's mobile platform, with SwiftUI journeys shipping to millions of banking customers worldwide.