Cash App Jake Wharton Jul 5, 2023

Native UI and multiplatform Compose with Redwood

Article Summary

Cash App just open-sourced Redwood, their answer to the multiplatform UI problem. Unlike other solutions, it renders with native UI toolkits instead of recreating them.

Jake Wharton explains how Cash App built Redwood to share UI logic across Android, iOS, and web while keeping platform-native rendering. The framework uses Kotlin and Compose to generate composables that interface with each platform's native components.

Key Takeaways

Critical Insight

Cash App is releasing Redwood 0.5 beta and rolling out native multiplatform UI experiences to customers after limited internal testing.

The schema-to-composable generation approach could change how teams with design systems think about cross-platform UI architecture.

About This Article

Problem

Cash App engineers needed to build mobile UIs that worked across multiple platforms. They wanted to keep using their existing app styles and custom controls, and they didn't want to learn a completely new ecosystem.

Solution

Jake Wharton's team picked Kotlin because it compiles to Java bytecode, native code through LLVM, and JavaScript. This meant they could run the same code on Android, iOS, and web platforms using Compose to manage state.

Impact

Redwood 0.5 beta maintained backward compatibility through the updatable Treehouse bridge. This lets future versions like 0.6 work with older apps that are still running 0.5 without causing problems.