A skill distilled from the official Android architecture guide (recommended layer structure, ViewModel / Lifecycle, Hilt, Paging 3). Depending on the user's task, read the appropriate README.md and follow it to the individual files.
Directory structure
skills/android-architecture/
SKILL.md
references/
layers/
README.md
layers.md
intro.md
ui-layer.md
ui-state-holders.md
ui-events.md
ui-state-production.md
domain-layer.md
data-layer.md
offline-first.md
recommendations.md
models-and-naming-conventions.md
modularization.md
modularization-patterns.md
lifecycle-viewmodel/
README.md
viewmodel.md
viewmodel-cheatsheet.md
viewmodel-compose.md
viewmodel-scoping-apis.md
viewmodelprovider-factory.md
viewmodelscope.md
viewmodelstoreprovider.md
androidviewmodel.md
savedstatehandle.md
saving-ui-state.md
lifecycle.md
lifecyclescope.md
lifecycleowner.md
defaultlifecycleobserver.md
lifecycleeventobserver.md
repeatonlifecycle.md
flowwithlifecycle.md
collectasstatewithlifecycle.md
locallifecycleowner.md
rememberlifecycleowner.md
lifecycleeventeffect.md
lifecyclestarteffect.md
lifecycleresumeeffect.md
livedata.md
mutablelivedata.md
observeasstate.md
processlifecycleowner.md
savedstateregistry.md
di-hilt/
README.md
hilt-android-app.md
android-entry-point.md
inject.md
module-install-in.md
provides.md
binds.md
dagger-basics.md
hilt-components-scopes.md
hilt-jetpack.md
hilt-multi-module.md
qualifier-named.md
hilt-view-model.md
hilt-viewmodel-compose-split.md
entry-point.md
hilt-testing.md
manual-di.md
paging/
README.md
pager.md
migrate-to-paging-3.md
pagingconfig.md
pagingsource.md
closestitemaroundposition.md
testpager.md
pagingdata.md
remotemediator.md
loadstate.md
cachedin.md
pagingdata-transforms.md
collectaslazypagingitems.md
itemkey-itemcontenttype.md
pagingdataadapter.md
Exploration procedure
Derive the category from the task, and identify the target page in the category's README.md:
- Find the category corresponding to the task in the mapping table below
- of that category
references/{category}/README.mdto identify the target page - Read the
.mdof the relevant page to check the details
Task → Category Mapping
| Task | Category | Reference README |
|---|---|---|
| I want to know the recommended structure of the UI / Domain / Data layers | layers | references/layers/README.md |
| I want to know the design guidelines for state holder / UI state / UI events | layers | references/layers/README.md |
| I want to know the policy for offline-first and modularization | layers | references/layers/README.md |
| I want to use ViewModel / viewModelScope / SavedStateHandle | lifecycle-viewmodel | references/lifecycle-viewmodel/README.md |
| I want to handle the lifecycle with Lifecycle / repeatOnLifecycle / collectAsStateWithLifecycle | lifecycle-viewmodel | references/lifecycle-viewmodel/README.md |
| I want to observe data with LiveData / observeAsState | lifecycle-viewmodel | references/lifecycle-viewmodel/README.md |
| I want to design DI using annotations, components, and scopes with Hilt | di-hilt | references/di-hilt/README.md |
| I want to know how to write HiltViewModel / EntryPoint / Hilt tests | di-hilt | references/di-hilt/README.md |
| I want to implement paging processing with Pager / PagingSource / RemoteMediator | paging | references/paging/README.md |
| I want to display a paging list with collectAsLazyPagingItems / PagingDataAdapter | paging | references/paging/README.md |
Room / DataStore are handled by android-data, WorkManager / coroutines by android-background-work, and screen navigation by android-navigation.