# Android Dfm

> Create Android dynamic feature modules with Gradle, Koin DI, Navigation registration. Use for new features, modularization, feature flags.

- Skill: `majiayu000/android-dfm` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/android-dfm`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/android-dfm/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/android-dfm

---


# Android Dynamic Feature Module Creator

Create new dynamic feature modules for Android projects using Play Feature Delivery.

## When to Use

- Adding new feature modules to modularized Android apps
- Creating install-time, on-demand, or conditional delivery features
- Setting up feature-specific Koin DI modules
- Implementing feature navigation registration

## Quick Reference

Module structure:
```
feature/{name}/
├── build.gradle.kts           # Plugin: android.dynamic.feature
├── src/main/
│   ├── AndroidManifest.xml    # dist:module delivery config
│   ├── kotlin/.../{name}/
│   │   ├── di/{Name}FeatureModule.kt
│   │   ├── navigation/{Name}NavigationProvider.kt
│   │   └── screen/{Name}Route.kt
│   └── res/values/strings.xml # title_{name} required
```

## Creation Steps

1. **Read structure template**: `references/dfm-structure.md`
2. **Create module files**: Build script, manifest, DI, navigation
3. **Register in app**: Update `app/build.gradle.kts` dynamicFeatures
4. **Register in settings**: Add `include(":feature:{name}")`
5. **Register DI**: Add to `FeatureRegistry.KNOWN_FEATURE_INITIALIZERS`
6. **Register Nav**: Add to `FeatureNavigationRegistry.KNOWN_NAVIGATION_PROVIDERS`
7. **Add route**: Create `{Name}RouteData` in `core/navigation/Routes.kt`

## Key Patterns

- **DI**: `{Name}FeatureInitializer : FeatureModuleInitializer` interface
- **Nav**: `{Name}NavigationProvider : FeatureNavigationProvider` interface
- **Build**: `implementation(project(":app"))` required in feature modules
- **Manifest**: Use `<dist:install-time />` for install-time delivery

## References

- [DFM Structure](references/dfm-structure.md) - Complete file templates
- [Delivery Options](references/delivery-options.md) - Install-time, on-demand, conditional

