Dynamic Feature Modules in Android: On-Demand Feature Delivery

This project demonstrates the implementation of Dynamic Feature Modules (DFMs) in Android for on-demand feature delivery. Dynamic Feature Modules allow you to modularize your Android app, delivering features to users only when they are needed. This reduces the initial install size, optimizes storage, and provides a more tailored user experience.


Demo Video

Android on demand dynamic feature module delivery tutorial


Modularization: Break down your app into smaller, independent modules.

On-Demand Delivery: Deliver features only when they are required, reducing the initial install size.

Conditional Delivery: Conditionally deliver modules based on factors such as device features, user preferences, or interactions.

Logical Separation: Encourage logical separation of features for a more maintainable codebase.

Reduced APK Size: Optimize app storage by allowing users to download only the modules they need.

Getting Started


  • Android Studio (latest version recommended)
  • Android device or emulator with API level 21 or higher


  • Clone the repository:
git clone https://github.com/hasancse91/dynamic-feature-module-android.git
  • Open the project in Android Studio.

  • Build and run the app on your device or emulator.


Explore the Main App Module: The main app module includes the core functionalities of the app.

Discover Dynamic Feature Modules:

Open the features directory to find individual dynamic feature modules. Each module represents a specific feature or functionality.

On-Demand Delivery:

Interact with the app to trigger the on-demand delivery of specific modules. Modules are delivered and installed as needed.


View Github