Dynamic Feature Modules were announced in 2018 as a new way to modularize and deliver Android apps. It presents a way to decouple features entirely from one another, and avoid a “monoapp” which depends on all code in one place. It has benefits to compile times, app installation size, and enables instant apps – but the feature has had little buzz since then, unknown adoption, and seemingly goes unmaintained now.

Let’s change that!

In this talk we’ll spend a bit of time reintroducing the dynamic feature Gradle plugin and explain what it’s used for, showcase how to extend an existing monoapp with dynamic features, start a new app from scratch and include your existing monoapp as a feature, and uncover all of the gotchas and oddities while doing it.