Skip to content

SYSTEM Cited by 1 source

Zalando Mobile Framework SDK

The Zalando Mobile Framework SDK is Zalando's native library/package (iOS + Android) that wraps the entire React Native stack behind a simple-to-use interface and is consumed by Zalando's legacy native app — the mobile-side half of Zalando's React Native as a package architecture (Source: sources/2025-10-02-zalando-accelerating-mobile-app-development-with-rendering-engine-and-react-native).

What it exposes

On iOS (Swift):

public class ReactNativeViewFactory {
  public func initialize()
  public func loadView(
    _ deepLinkProps: DeepLinkProperties,
    launchOptions: [AnyHashable: Any]? = nil,
  ) -> UIView
}

On Android (Kotlin):

public interface ReactNativeViewFactory {
  public fun initialize()
  public fun createViewHostedInActivity(
    activity: FragmentActivity,
    screenParameters: ReactNativeScreenParameters,
  ): View
  public fun createViewHostedInFragment(
    fragment: Fragment,
    screenParameters: ReactNativeScreenParameters,
  ): View
}

The legacy app calls initialize() at startup and loadView / createViewHostedIn... to mount an RN screen as a native UIView / View — the same way it consumes any other native framework. It does not link RN at source; it links the SDK.

Role in the integration architecture

  ┌─────────────────────────────┐
  │  Entry Point (npm package)  │
  │  React Root + init logic    │
  └───────────────┬─────────────┘
                  │ consumed by
       ┌──────────┴──────────┐
       ▼                     ▼
┌──────────────┐   ┌─────────────────────┐
│ Developer    │   │ Framework SDK       │
│ App (RN,     │   │ (native iOS/Android)│
│ standalone)  │   │ hides RN stack      │
└──────────────┘   └──────────┬──────────┘
                              │ linked by
                   ┌────────────────────┐
                   │ Legacy Native App  │
                   │ (iOS + Android)    │
                   └────────────────────┘

Consumer apps get a native-framework-shaped API, not an RN-shaped API — they don't need to know RN exists behind it. This is the isolation property Zalando's integration depends on:

  • Legacy native devs can integrate RN screens without learning RN.
  • RN team can swap the JS bundle, change the Entry Point, or adjust the RN runtime version behind the SDK's facade without changing consumer code.

Interop with the legacy app

Bidirectional communication (e.g. RN wishlist-add must update the native app's badge counter) uses the Turbo Module + DI contract pattern: TypeScript Spec + Swift protocol + Kotlin interface + DI injection point.

Seen in

Last updated · 507 distilled / 1,218 read