Ralf Wondratschek

Principal Engineer at Amazon

Talk Title

Managing state beyond ViewModels and Hilt


Tokyo Room




13:30 > 40 min


on Twitter

Separation of concerns is a common best practice followed by all successful software projects. In Android applications, there is usually a UI layer, a data layer, and a domain layer. Given the infinite number of ways to implement these layers, it's not clear how to get started quickly. Therefore, many projects follow Google's high-level guide to app architecture, which suggests many reasonable defaults and best practices. But how do the proposed recommendations work in practice? How do you set up an architecture that is ready for your use cases with this guide in mind? Are suggestions such as using Hilt as the backbone for your architecture really a good recommendation?

This talk will discuss best practices for taking ownership of your own architecture, decoupling your business logic from Android components, and creating and managing scopes for your use cases. There will be concrete advice on how to loosely couple classes in the data and domain layers, how to prevent memory and thread leaks, and how to adopt the dependency injection framework of your choice.

Speaker Bio

Ralf is a principal engineer at Amazon and helps simplify the delivery process of millions of packages. This includes providing a platform for internal and external partners to integrate their features, shipping applications for vehicles and other form factors and making the whole delivery process safer.

Prior to Amazon Ralf led the feature sandboxing initiative at Square. He created and maintains several open-source projects on Github like Anvil. Anvil makes dependency injection with Dagger 2 easier and is used by many other companies like Tonal, Slack, Dropbox and Snap.