android-coil-compose
Skill14 starsChanged 8 months agoMITView on GitHub
Use Coil in Jetpack Compose with AsyncImage, painter variants, sizing, and accessible image loading patterns.
In this repository68 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .cursor/rules/android-architecture-clean.mdcCursor rule
- .cursor/rules/android-ci-cd-release-playstore.mdcCursor rule
- .cursor/rules/android-coil-compose.mdcCursor rule
- .cursor/rules/android-compose-accessibility.mdcCursor rule
- .cursor/rules/android-compose-foundations.mdcCursor rule
- .cursor/rules/android-compose-performance.mdcCursor rule
- .cursor/rules/android-compose-state-effects.mdcCursor rule
- .cursor/rules/android-compose-xml-interoperability.mdcCursor rule
- .cursor/rules/android-coroutines-flow.mdcCursor rule
- .cursor/rules/android-di-hilt.mdcCursor rule
- .cursor/rules/android-emulator-automation.mdcCursor rule
- .cursor/rules/android-gradle-build-logic.mdcCursor rule
- .cursor/rules/android-gradle-build-performance.mdcCursor rule
- .cursor/rules/android-kotlin-core.mdcCursor rule
- .cursor/rules/android-local-persistence-datastore.mdcCursor rule
- .cursor/rules/android-material3-design-system.mdcCursor rule
- .cursor/rules/android-media-files-sharing.mdcCursor rule
- .cursor/rules/android-mobile-frontend-design.mdcCursor rule
- .cursor/rules/android-modernization-upgrade.mdcCursor rule
- .cursor/rules/android-modularization.mdcCursor rule
- .cursor/rules/android-navigation-deeplinks.mdcCursor rule
- .cursor/rules/android-networking-retrofit-okhttp.mdcCursor rule
- .cursor/rules/android-performance-observability.mdcCursor rule
- .cursor/rules/android-permissions-activity-results.mdcCursor rule
- .cursor/rules/android-room-database.mdcCursor rule
- .cursor/rules/android-rxjava-to-coroutines-migration.mdcCursor rule
- .cursor/rules/android-security-best-practices.mdcCursor rule
- .cursor/rules/android-serialization-offline-sync.mdcCursor rule
- .cursor/rules/android-state-management.mdcCursor rule
- .cursor/rules/android-testing-ui.mdcCursor rule
- .cursor/rules/android-testing-unit.mdcCursor rule
- .cursor/rules/android-ui-states-validation.mdcCursor rule
- .cursor/rules/android-viewsystem-foundations.mdcCursor rule
- .cursor/rules/android-workmanager-notifications.mdcCursor rule
- android-architecture-cleanSkill
- android-ci-cd-release-playstoreSkill
- android-compose-accessibilitySkill
- android-compose-foundationsSkill
- android-compose-performanceSkill
- android-compose-state-effectsSkill
- android-compose-xml-interoperabilitySkill
- android-coroutines-flowSkill
- android-di-hiltSkill
- android-emulator-automationSkill
- android-gradle-build-logicSkill
- android-gradle-build-performanceSkill
- android-kotlin-coreSkill
- android-local-persistence-datastoreSkill
- android-material3-design-systemSkill
- android-media-files-sharingSkill
- android-mobile-frontend-designSkill
- android-modernization-upgradeSkill
- android-modularizationSkill
- android-navigation-deeplinksSkill
- android-networking-retrofit-okhttpSkill
- android-performance-observabilitySkill
- android-permissions-activity-resultsSkill
- android-room-databaseSkill
- android-rxjava-to-coroutines-migrationSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 4 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Use this skill when the request is about: coil compose image loading, asyncimage android compose, rememberasyncimagepainter android.
- Very specific: line 20
Read references/patterns.md for the AsyncImage vs painter vs subcomposition decision guide.
- Very specific: line 21
Read references/scenarios.md for list-performance and screenshot-stable validation paths.
- Very specific: line 28
Prefer AsyncImage first, then drop down to painter APIs only when the component truly needs them.
- Distinctive: line 30
Check list rendering, state churn, and visual fallbacks before considering the implementation done, and confirm that remote data or decoder …
- Very specific: line 34
Prefer AsyncImage for most Compose surfaces.
- Distinctive: line 35
Keep image requests sized to the rendered UI surface when possible.
- Distinctive: line 37
Avoid subcomposition-heavy image patterns in scroll-heavy lists unless the UX truly needs them.
- Very specific: line 38
If you need painter state directly, remember that rememberAsyncImagePainter does not infer on-screen size by itself.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Android Coil Compose
When To Use
- Use this skill when the request is about: coil compose image loading, asyncimage android compose, rememberasyncimagepainter android.
- Primary outcome: Use Coil in Jetpack Compose with
AsyncImage, painter variants, sizing, and accessible image loading patterns. - Reach for this skill when the work is specifically about image loading, placeholders, error states, sizing, or list performance in Compose.
- Read
references/patterns.mdfor theAsyncImagevs painter vs subcomposition decision guide. - Read
references/scenarios.mdfor list-performance and screenshot-stable validation paths. - Handoff skills when the scope expands:
android-compose-foundationsandroid-compose-performance
Workflow
- Identify whether the UI needs a simple image surface, low-level painter access, or custom slot-based loading states.
- Prefer
AsyncImagefirst, then drop down to painter APIs only when the component truly needs them. - Constrain size, placeholders, and content description so the image behavior is both performant and accessible; for painter APIs, supply an explicit size resolver when needed.
- Check list rendering, state churn, and visual fallbacks before considering the implementation done, and confirm that remote data or decoder modules are actually present when the source type needs them.
- Hand off general Compose layout or broader performance issues to the neighboring skills after the image pipeline is stable.
Guardrails
- Prefer
AsyncImagefor most Compose surfaces. - Keep image requests sized to the rendered UI surface when possible.
- Provide meaningful accessibility behavior: descriptive
contentDescriptionfor informative images,nullfor decorative ones. - Avoid subcomposition-heavy image patterns in scroll-heavy lists unless the UX truly needs them.
- If you need painter state directly, remember that
rememberAsyncImagePainterdoes not infer on-screen size by itself.
Anti-Patterns
- Loading full-size remote assets into tiny list items.
- Using
SubcomposeAsyncImageeverywhere when a simple placeholder is enough. - Treating image loading failures as silent no-ops with no error fallback.
- Forgetting accessibility semantics on actionable or informative images.
Review Focus
- API choice:
AsyncImage,rememberAsyncImagePainter, orSubcomposeAsyncImage. - Correct sizing and request construction for the rendered surface.
- Remote-loading prerequisites such as the right Coil network modules.
- Stable placeholders and error states for lists, tests, and screenshots.
Examples
Happy path
- Scenario: Build the Compose fixture and verify a stable
AsyncImagesurface renders in the task board. - Command:
bash skills/android-coil-compose/scripts/run_examples.sh
Edge case
- Scenario: Review a list cell where placeholders, sizing, and lazy-list performance all matter.
- Command:
cd examples/orbittasks-compose && ./gradlew :app:testDebugUnitTest
Failure recovery
- Scenario: Re-check the image surface after a placeholder or error-state change using screenshot-friendly validation.
- Command:
cd examples/orbittasks-compose && ./gradlew verifyRoborazziDebug
Done Checklist
AsyncImageis the default unless a lower-level painter API is justified.- Sizing, placeholders, and error states are explicit.
- Accessibility behavior is intentional.
- List and screenshot behavior has been validated on the Compose fixture.
Official References
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.

