Redwood: A Multiplatform UI Framework for Native Apps
Redwood is Cash App's solution for multiplatform mobile client UI development. Built on top of the Kotlin programming language, Redwood enables developers to create native UIs for Android, iOS, and the web using a single codebase. By leveraging the power of Compose, a UI toolkit developed by JetBrains, Redwood simplifies the process of creating UI nodes and managing state across different platforms.
One of the key features of Redwood is its ability to generate a common definition of UI widgets, known as the schema. This schema serves as a programmatic representation of the app's design system, allowing developers to easily interface with each platform's native UI toolkit. Redwood takes care of the plumbing by binding the generated composables to the native UI components.
In addition to its multiplatform capabilities, Redwood also introduces Treehouse, a module that utilizes Zipline to dynamically update the composable logic at runtime. This not only improves the development experience but also enables app logic updates without requiring app upgrades.
Today, Cash App is releasing Redwood 0.5, marking it as a "beta" version. While breaking changes are still allowed, all changes will be compatible with previous versions when running across the updatable Treehouse bridge. This means that future versions of Redwood can still target older apps running Redwood 0.5.
If you're interested in learning more about Redwood, Zipline, and Treehouse, Cash App recommends watching their recent conference talks. With the beta release of Redwood, Cash App is excited to start rolling out experiences to all customers soon.
This article is part of Cash App's Summer of Kotlin Multiplatform series, showcasing the power and versatility of Kotlin for multiplatform development.