ylliX - Online Advertising Network

Introducing Trio | Part III

Part three on how we built a Compose based architecture with Mavericks in the Airbnb Android app 10 min read · Apr 11, 2024 By: Eli Hart, Ben Schwab, and Yvonne Wong Trio is Airbnb’s framework for Jetpack Compose screen architecture in Android. It’s built on top of Mavericks, Airbnb’s open source state management library […]

Exploring the Android Photo Picker

The Photo Picker allow us to reduce friction when working with Media selection on Android, along with creating a simpler + consistent experience for users. In this blog post, we’re going to take a quick look at how we can use it in our own apps – both in Composable UI and within activities/fragments. Looking […]

Introducing Trio | Part II

Part two on how we built a Compose based architecture with Mavericks in the Airbnb Android app By: Eli Hart, Ben Schwab, and Yvonne Wong In the previous post in this series, we introduced you to Trio, Airbnb’s framework for Jetpack Compose screen architecture in Android. Some of the advantages of Trio include: Guarantees type […]

Introducing Trio | Part I

A three part series on how we built a Compose based architecture with Mavericks in the Airbnb Android app 10 min read · Mar 28, 2024 By: Eli Hart, Ben Schwab, Yvonne Wong At Airbnb, we have developed an Android framework for Jetpack Compose screen architecture, which we call Trio. Trio is built on our […]

Encapsulate your @Composable functions

TL;DR Encapsulate your composable functions and associated types with a surrounding object and use the operator fun invoke of that object as your composable function. This is a convenient convention for complex components. Details Complex Composable functions often require numerous associated types for their implementation: state holders, UI models, default values, etc. While it does […]

Graduating from View IDs

I found an old screen in Cash App today that wasn’t retaining its scroll position across configuration changes. A peek into git history revealed that the author forgot to assign an ID to its scrollable layout for enabling state restoration. And would you even blame them? Sure, View IDs are necessary, but maintaining them manually […]