I’ve been kicking around the idea of a new type of Android blog post. A blog post that’s simple and applicable to your apps today. No new architecture pattern. No shiny new library. Simpler. Just a few tips and code snippets that we, at Tonal, have found useful that you can use today.

If you find #AndroidLifeHacks useful, let me know. I would love to see this become a trend where people and companies start sharing their own #AndroidLifeHacks. That way, we can all benefit from each other’s work.

Tip 1: Green Gutter Culture

Okay, I cheated. Tip 1 isn’t code at all, it’s a…


When we first saw Jetpack Compose, we weren’t sure how or even if Mavericks still fit into the picture. Now that we’ve had the chance to learn it and build some simple apps, it’s clear that not only does Mavericks work well with Compose, it arguably works even better than it ever did with classic Android views.

Today, we’re releasing the first alpha of mavericks-compose . Mavericks Compose builds off of the recently-released Mavericks 2.0 release with full support for the Jetpack Compose beta.

To use Mavericks with Compose, add the new artifact to your project that already supports Compose.


Today, we’re excited to announce the release of Mavericks 2.0. Mavericks 2.0 is a ground-up (but fully backward compatible) rewrite of MvRx 1.0 built for Coroutines, with an entirely new world-class testing suite and a revamp of our documentation that makes it easier than ever to get started.

Mavericks tl;dr

If you aren’t familiar with Mavericks, it is a framework built on top of Jetpack ViewModel. Instead of exposing individual state properties, your ViewModel is generic on a single immutable data class that your ViewModel updates and your UI renders. …


When we released Lottie 1.0 in 2017, it was just a few baby steps from its hackathon roots. Since then, Lottie has evolved into a mature library that has become the industry standard for enabling beautiful animations across any platform. Lottie for Android just crossed 30,000 stars on GitHub and is used in tens of thousands of apps across billions of devices. With this popularity comes a responsibility for Lottie to work reliably and for it to adapt as the Android community evolves.

The next major chapter for the Android world will revolve around Jetpack Compose. Jetpack Compose is a…


Wow, what a journey Lottie has been. As Lottie nears its third birthday, it continues to grow and delight app creators and users around the world. The scale of Lottie continues to amaze us:

  • Lottie is used in hundreds of thousands of apps and projects
  • Lottie Android, iOS, and Web have over 64,600 GitHub stars and the repos get over 4000 unique visitors per day
  • Lottie is on every Android device and nearly every iOS device in the world

As we approach Thanksgiving in the United States, there is so much to be thankful for.

Thankful For You

You bring Lottie to life…


Today, we’re extremely excited to announce the official release of MvRx 1.0. MvRx is an Android architecture library built on top of Jetpack that is easy to integrate and learn yet powerful to scale to large and complex apps. MvRx was created at Airbnb with the goal of allowing Android engineers to focus on building product. While the Android framework is powerful, it can be cumbersome to work with, even for experienced developers and can take many months to ramp up on for newer ones. In addition, at Airbnb, we saw people reinventing solutions to familiar problems such as sharing…


What if I told you that there was a way to get reliable hot reload on Android with zero compiler hacks using Android APIs that have been available since 1.0? While this trick doesn’t allow you to introduce new code, it does let you invoke a lambda with arguments from the command line and without recompiling or relaunching your app.

Turns out it’s pretty easy to trigger a function in your app with a locally registered BroadcastReceiver that can be invoked with an adb shell am broadcast. …


The new framework for Android is fully native but eliminates 50–75% of product code.

Havana Vieja, a great place to hang out at Airbnb HQ when you want to catch up with friends

At Airbnb, we are moving at a faster pace than ever. Each year, more and more people are using Airbnb to travel. This year alone, we have already launched Airbnb Plus and we have countless other projects underway that we can’t wait to share.

On the Android side of things, the astronomical growth of the business has kept us extremely busy. Our app does more than ever. In the past year alone, we have added 286 new screens and that pace shows no signs of slowing down. …


Due to a variety of technical and organizational issues, we will be sunsetting React Native and putting all of our efforts into making native amazing.

This is the fourth in a series of blog posts in which we outline our experience with React Native and what is next for mobile at Airbnb.Where are we today?

Although many teams relied on React Native and had planned on using it for the foreseeable future, we were ultimately unable to meet our original goals. In addition, there were a number of technical and organizational challenges that we were unable to overcome that would have made continuing to invest in React Native a challenge.

As a result, moving forward, we are sunsetting React Native at Airbnb and reinvesting all…


Bringing the best back to native

This is the fifth in a series of blog posts in which we outline our experience with React Native and what is next for mobile at Airbnb.

Exciting Times Ahead

Even while experimenting with React Native, we continued to accelerate our efforts on native as well. Today, we have a number of exciting projects in production or in the pipeline. Some of these projects were inspired by the best parts and learnings from our experience with React Native.

Server-Driven Rendering

Even though we’re not using React Native, we still see the value in writing product code once. …

Gabriel Peal

Android at Tonal. Lottie and MvRx. Formerly Airbnb and Android Auto at Google.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store