What’s Next for Mobile at Airbnb

Bringing the best back to native

Gabriel Peal
6 min readintermediate
--
View Original

Overview

The article discusses Airbnb's transition from React Native back to native mobile development, highlighting their ongoing projects and innovations. Key topics include server-driven rendering, the Epoxy framework, and a new Android product framework called MvRx, which aims to enhance developer experience and application performance.

What You'll Learn

1

How to implement server-driven rendering in mobile applications

2

Why using Epoxy can improve component management in mobile development

3

How to leverage MvRx for building seamless Android screens

4

How to enhance iteration speed in mobile development

Prerequisites & Requirements

  • Understanding of mobile development frameworks and design patterns
  • Familiarity with Android Studio and Kotlin(optional)

Key Questions Answered

What are the benefits of server-driven rendering in mobile apps?
Server-driven rendering allows developers to send data to devices that describe components and screen configurations. This approach enables instant updates and experimentation over-the-air, improving the flexibility and responsiveness of mobile applications.
How does Epoxy improve mobile UI development?
Epoxy simplifies the creation of heterogeneous RecyclerViews, UICollectionViews, and UITableViews by allowing developers to break screens into isolated components. This leads to better management of UI elements and supports lazy rendering, enhancing performance and maintainability.
What is MvRx and how does it enhance Android development?
MvRx is a new framework developed by Airbnb that combines principles from Epoxy, Jetpack, and React to streamline screen building in Android. It is designed to be thread-safe, reducing lifecycle management complexity and improving the fluidity of scrolling and animations.
What improvements were made to iteration speed in mobile development?
Airbnb implemented infrastructure changes that allow for partial app compilation, significantly reducing build times. Development builds are now 2.5 times faster on average, with a notable decrease in builds taking longer than five minutes.

Key Statistics & Figures

Build speed improvement
2.5 times faster on average
This improvement was achieved by enabling partial compilation of the app.
Reduction in builds taking longer than five minutes
15 times
This was accomplished through the implementation of new gradle product flavors.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Frontend
Epoxy
Used for creating heterogeneous RecyclerViews and managing UI components efficiently.
Backend
Mvrx
A framework for building Android screens that simplifies lifecycle management and enhances performance.
Programming Language
Kotlin
Used for implementing DSLs in Epoxy and MvRx frameworks.
Frontend
React Native
Previously used at Airbnb for mobile development before transitioning back to native.

Key Actionable Insights

1
Implement server-driven rendering to enhance your mobile app's flexibility and update capabilities.
This approach allows for real-time updates and experimentation, making it easier to adapt to user feedback and changing requirements.
2
Utilize Epoxy to manage complex UI components efficiently in your mobile applications.
By breaking down screens into isolated components, you can improve performance and maintainability, especially in large applications.
3
Adopt MvRx for a smoother development experience in Android applications.
This framework simplifies lifecycle management and enhances performance, making it easier to build responsive and fluid user interfaces.
4
Focus on optimizing iteration speed by implementing partial compilation in your development workflow.
This can significantly reduce build times, allowing developers to test changes more quickly and improve overall productivity.

Common Pitfalls

1
Relying solely on outdated articles or experiences when making technology decisions can lead to poor choices.
The article emphasizes the importance of revalidating technical points due to the rapid evolution of frameworks and ecosystems.

Related Concepts

Mobile Development Frameworks
Server-driven Rendering
Component-based UI Design
Performance Optimization Techniques