Skip to content

SYSTEM Cited by 1 source

Zalando Mobile Developer App

The Zalando Mobile Developer App is a standalone greenfield React Native app that consumes the same Entry Point npm package as the Framework SDK but runs with a standard React Native environment — no legacy native-app build required (Source: sources/2025-10-02-zalando-accelerating-mobile-app-development-with-rendering-engine-and-react-native).

Why it exists

Web engineers (Zalando's primary RN contributor pool, via the Rendering Engine lineage) don't necessarily know or want to master Xcode + Android Studio + full Zalando native-app build. Requiring them to build the full legacy app to contribute to RN is a friction barrier.

The Developer App solves this. It:

  • Consumes the Entry Point npm package (the same one the Framework SDK consumes).
  • Runs with a standard RN environment (reactnative.dev environment setup).
  • Gives contributors "all the benefits of React Native, as in any greenfield app, with full isolation from the legacy architecture."

See concepts/greenfield-developer-app-for-hybrid-engineers for the pattern.

Developer menu

On top of RN's default dev menu (accessed via the shake-device gesture), Zalando added a custom dev menu with utilities:

  • Switch between JS bundles — released versions, PR builds, local bundles.
  • Various other developer-experience utilities.

The bundle-switcher is load-bearing for the Developer App's value: a developer can pull a PR build of a colleague's RN screen and preview it without a local build, or compare behaviour across released versions without reinstalling the app.

Mocked native contracts

Features that interop with the legacy native app via the Turbo Module + DI contract have a mock implementation in the Developer App. Zalando explicitly calls this out: "our standalone developer app can implement those same interfaces with a mocked version, allowing us to keep using the developer app even when testing features like the wishlist."

This means wishlist-dependent RN features can be built + tested in the Developer App — the wishlist-badge callback just updates a mock state.

Seen in

Last updated · 507 distilled / 1,218 read