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
- Redwood renders using native UI toolkits, not cross-platform abstractions
- Schema-based approach generates composables and platform-specific widget interfaces automatically
- Treehouse module enables dynamic runtime updates via Zipline between app releases
- Designed for incremental adoption in existing apps, not all-or-nothing migration
- Version 0.5 beta ensures backward compatibility across the updatable bridge
Cash App is releasing Redwood 0.5 beta and rolling out native multiplatform UI experiences to customers after limited internal testing.
About This Article
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.
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.
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.