android
Skill0 starsChanged 26 days agoMITView on GitHub
Provides expert knowledge for building modern native Android apps using Kotlin, Jetpack Compose, Material Design 3, MVI architecture, Hilt dependency injection, and Media3/ExoPlayer.
11 other projects use a version of this.
Adopted by
Most recently taken up by
- amit-nayar/android-adb-skilltheir own version, first seen Nov 8, 2026
- Codename-11/hermes-relaytheir own version, first seen Nov 8, 2026
- JetBrains/junie-extensionstheir own version, first seen Oct 13, 2026
- BrowserWorks/waterfox-androidtheir own version, first seen Oct 8, 2026
- Eclipse-Community/r3dfoxtheir own version, first seen Oct 8, 2026
- BrowserWorks/waterfoxtheir own version, first seen Oct 8, 2026
Used with
Projects with it also use accessibility-frontend-review, android-new-module and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
BrowserWorksSkillaccessibility-frontend-review
Performs an accessibility code review of a local diff or Phabricator revision in the style of the Firefox accessibility team. Use this skill whenever the user asks to review a Phabricator patch or revision for accessibility issues, mentions a D-number (like D284142) in the context of accessibility review, asks "does this patch have any a11y issues", or wants to check a diff against accessibility guidelines. Also use it when the user says things like "can you review this for a11y", "check this patch", or "give me an accessibility review of D[number]". Invoke proactively when the user pastes a phabricator.services.mozilla.com URL or shares a revision ID alongside any accessibility concern. Invoke when questions about the following topics are raised: aria properties, aria roles, high contrast mode, forced colors, prefers contrast, focus order, screen readers, assistive technology.
Also in 4 projects that use this
BrowserWorksSkillandroid-new-module
Guide for creating new Android gradle modules in the android-components project.
Also in 4 projects that use this
- +10 more from BrowserWorks
Other versions11 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 11
- mozilla-firefox/firefox★ 14ksame name
- BrowserWorks/waterfox★ 6.4ksame name
- Codename-11/hermes-relay★ 432same name
- BrowserWorks/waterfox-android★ 393same name
- Eclipse-Community/r3dfox★ 347same name
- ayush016/android-lead-agent-skills★ 76same name
- amit-nayar/android-adb-skill★ 29same name
- JetBrains/junie-extensions★ 23same name
- ffsshhttiikk/opencode-agents-skills★ 2same name
- iadr-dev/colab★ 2same name
1 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository219 other files it gives its agents.
- .agents/AGENTS.mdAGENTS.md
- AGENTS.mdAGENTS.md
- .claude/CLAUDE.mdCLAUDE.md
- CLAUDE.mdCLAUDE.md
- .cursor/rules/behavioral-discipline.mdcCursor rule
- .cursor/rules/context-budget.mdcCursor rule
- .cursor/rules/orchestration.mdcCursor rule
- .cursor/rules/yagni-stdlib.mdcCursor rule
- android-ui-designSkill
- api-versioningSkill
- astroSkill
- auth-token-inspectorSkill
- backlogSkill
- cc-api-contractSkill
- cc-db-migrationSkill
- cc-featureSkill
- cc-fixSkill
- cc-pagespeedSkill
- cc-refactorSkill
- cc-reviewSkill
- cc-spec-mutationSkill
- cc-tdd-cycleSkill
- cc-test-planSkill
- code-reviewSkill
- commitSkill
- conductor-setupSkill
- councilSkill
- database-migrationsSkill
- django-ormSkill
- django-testingSkill
- django-uvSkill
- drizzle-schema-architectSkill
- evaluationSkill
- fastapi-pydantic-strictSkill
- find-skillsSkill
- jpa-nplusone-detectorSkill
- jpa-postgresSkill
- laravel-specialistSkill
- livewire-alpine-bridgeSkill
- multi-agent-orchestrationSkill
- nextjs-typescriptSkill
- openspecSkill
- pagespeed-insightsSkill
- pagespeed-perfSkill
- php-proSkill
- python-django-stackSkill
- python-fastapi-stackSkill
- pythonSkill
- rust-asyncSkill
- rust-engineeringSkill
- rust-sqlxSkill
- security-ai-llmSkill
- security-blue-teamSkill
- security-cloudSkill
- security-cryptoSkill
- security-exploit-devSkill
- security-grcSkill
- security-incident-responseSkill
- security-log-analysisSkill
- security-malware-analysisSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 3 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 10 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 47
Prefer MVI (Model-View-Intent) for state management.
- Very specific: line 59
Use constructor injection for ViewModels with @HiltViewModel.
- Very specific: line 67
Keep data models immutable.
- Very specific: line 68
Use contentType and key in LazyColumn and LazyRow to optimize item recycling and rendering performance.
- Very specific: line 69
Avoid fixed hardcoded margins.
- Very specific: line 76
Run ExoPlayer / Media3 inside a robust Foreground Service (using MediaSessionService) to ensure playback continues when the app is in the …
- Very specific: line 81
Always inject CoroutineDispatcher instances instead of hardcoding them:
- Distinctive: line 97
Use JUnit 5 and MockK for mocking dependencies.
- Very specific: line 98
Test ViewModels and Reducers by asserting StateFlow updates.
- Very specific: line 102
Create UI tests using Compose test rules: createComposeRule() or createAndroidComposeRule<MainActivity>().
- Distinctive: line 109
Use these commands for building, checking code style, running tests, and profiling performance:
“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Android + Kotlin (Jetpack Compose & Media3)
This playbook defines the architecture, UI design system, performance guidelines, and testing strategy for native Android applications.
android-ui-design owns specialized Jetpack Compose phone UI/UX design,
implementation, review, and audit guidance. This skill remains the general guide
for architecture, Hilt dependency injection, Media3, performance, and testing.
1. Lead Architect & Modularization
Architecture (MVI / MVVM with Clean Architecture)
- Prefer MVI (Model-View-Intent) for state management. Ensure a strict unidirectional data flow:
- UiState: Single source of truth for the UI state.
- UiIntent: Actions initiated by the user or system.
- UiEffect: One-time events (navigation, toasts, snackbars).
- Separate the project into clean logical modules:
app: Application entry point, launcher activity, global dependency injection configuration.core: Shared resources, network layer, media playback logic (ExoPlayer/Media3), storage.feature: Individual business features (isolated and independent of other features).
Dependency Injection (Hilt)
- Annotate the Application class with
@HiltAndroidApp. - Annotate Activities and Fragments with
@AndroidEntryPoint. - Use constructor injection for ViewModels with
@HiltViewModel.
2. Jetpack Compose UI/UX
Recomposition & State Management
- Consume
StateFlowfrom ViewModels safely usingcollectAsStateWithLifecycle()to respect the activity lifecycle. - Keep data models immutable. Mark configuration classes with
@Immutableor@Stableto prevent redundant recompositions. - Use
contentTypeandkeyinLazyColumnandLazyRowto optimize item recycling and rendering performance. - Avoid fixed hardcoded margins. Apply
WindowInsetsto support modern edge-to-edge screens.
3. Performance & Multimedia (Media3 / ExoPlayer)
Playback & Services
- Run
ExoPlayer/Media3inside a robustForeground Service(usingMediaSessionService) to ensure playback continues when the app is in the background. - Clean up resources: release player instances in
onDestroyor when the service is stopped. - Control wake locks strictly to avoid draining the user's battery when playback is paused.
Kotlin Coroutines & Threading
- Always inject
CoroutineDispatcherinstances instead of hardcoding them:Dispatchers.IO: Database access, network operations, file reading.Dispatchers.Default: CPU-intensive operations (parsing JSON, filtering large lists).Dispatchers.Main: UI modifications and light interactions.
R8 & Resource Optimization
- Enable shrinking and obfuscation in production builds:
isMinifyEnabled = trueisShrinkResources = true
- Convert all static images to the modern
WebPformat to minimize the application binary size.
4. Quality Assurance & Automated Testing
Unit Testing
- Use JUnit 5 and MockK for mocking dependencies.
- Test ViewModels and Reducers by asserting StateFlow updates. Use
Turbineto easily test Kotlin Flows. - Mock all multimedia/ExoPlayer components to avoid loading actual audio/video resources in unit tests.
UI Testing
- Create UI tests using Compose test rules:
createComposeRule()orcreateAndroidComposeRule<MainActivity>(). - Assert correct rendering, visibility states, and user interactions without executing real network calls.
5. Key Gradle & ADB Commands
Use these commands for building, checking code style, running tests, and profiling performance:
| Command | Action |
./gradlew init | Initialize a new Gradle project structure. |
./gradlew app:dependencies | List all dependencies of the application module. |
./gradlew assembleDebug | Validate compilation and generate debug APK. |
./gradlew ktlintCheck | Run KtLint check to enforce Kotlin style guidelines. |
./gradlew lintDebug | Run Android Lint tool to inspect code quality and UI issues. |
./gradlew testDebugUnitTest | Run unit tests for debug build variant. |
./gradlew connectedAndroidTest | Run instrumented UI tests on connected emulator or device. |
./gradlew assembleRelease | Generate release build variant with R8 optimizations. |
adb shell dumpsys batterystats | Profile system battery consumption metrics. |
adb shell am dumpheap <package> heap.hprof | Dump application heap memory file for profiling. |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

