Claude-skill-registry android-dfm

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

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/android-dfm" ~/.claude/skills/majiayu000-claude-skill-registry-android-dfm && rm -rf "$T"
manifest: skills/data/android-dfm/SKILL.md
source content

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