ViewCompose Documentation
This directory is the canonical documentation entrance for ViewCompose. It is organized for both human readers and AI-assisted maintenance, and it is also the content boundary for the published GitHub-hosted documentation site.
The repository state and active documents below are authoritative. Files under
archive/ are
historical evidence only.
Choose a reading path
| Goal | Start here |
|---|---|
| Build the first application | Build your first application |
| Learn one capability | Capability tutorials → choose any topic; chapters have no ordering requirement |
| Understand the framework | Architecture overview → Multi-design-system standard → Modifier model → NodeSpec model |
| Migrate from Jetpack Compose | Compose migration overview → choose the state, layout, host, or navigation path |
| Choose or maintain a published artifact | Published module catalog → the owning module manual |
| Look up an application-facing entry | Capability Reference → versioned API/KDoc → the owning module manual |
| Build with a feature | Select the relevant document under Guides |
| Connect an AI agent | AI Integration |
| Work with previews, diagnostics, or performance | Preview → Diagnostics → Performance |
| Contribute a change | Development workflow → Documentation governance |
| Prepare a release | Publishing → Capability verification |
| Restore project context | Roadmap and the active document for the affected area; do not start from archived plans |
Architecture
Long-lived contracts, boundaries, and runtime semantics:
- Architecture overview
- Navigation runtime architecture
- Theme runtime architecture
- Text input runtime architecture
- Lazy collection runtime architecture
- Multi-design-system architecture and integration standard
- Architecture decisions
- Modifier model
- NodeSpec model
- State snapshots
- Transactional effects and structured work
- Lifecycle and SavedState
- Render failures
- Session containers
Tutorials
Independently runnable learning pages backed by one compiled source file per capability:
- Build your first application — create the smallest native-View counter and optional static preview.
- Capability tutorial catalog — choose state, layout, text input, lazy lists, theming, navigation, overlays, Android View interop, animation, gestures, performance, or diagnostics without completing another chapter first.
Guides
Feature behavior and platform integration:
- Switch application theme mode
- Enable Material 3 dynamic color
- Override theme tokens for one subtree
- Edit, validate, and submit text
- Use rich and received text content
- Choose and control lazy collections
- Focus and input
- Nested scrolling
- Configure a production navigation host
- Overlays
- Shadows
- Image loading
Migration from Jetpack Compose
Semantic comparisons and migration paths with explicit source and target versions:
- Compose migration overview and consolidated capability matrix
- State, recomposition, and restoration
- Layout, Modifier, and environment
- Hosts, lifecycle, and Android interop
- Navigation 2 and Navigation 3
- Image loading
Published modules
The published module catalog is kept in lockstep with Maven publication
metadata. Every published artifact has a dedicated manual under docs/modules/<artifact-id>/ and
can evolve independently.
Capability and API Reference
The source-derived Capability Reference groups application-facing DSL, Modifier, component, integration, host, and tooling entries by user capability. Its counts, versions, and routes are freshness-gated. Use the versioned API Reference for exhaustive signatures and KDoc/Javadoc, then follow the entry's module-manual link for artifact contracts.
AI Integration
Machine-readable reference, local MCP tools, standard Agent Skills, and executable evidence:
Tooling
Development-time tooling, inspection, and performance:
Project maintenance
Current process, release, and planning information:
- Development workflow
- Documentation governance
- Localization workflow
- Source documentation and API comments
- Documentation site operations
- Publishing
- Roadmap
- Capability verification
- Active execution plans
Documentation rules
- Keep the repository root limited to landing pages and community governance files.
- Separate cross-module concepts from artifact-specific installation, compatibility, and API contracts.
- Update KDoc/Javadoc and the owning module manual with public API changes.
- Apply the documentation change impact matrix in every code pull request;
No documentation impactrequires a rationale. - Put cross-session execution plans under
docs/project/plans/; move completed plans todocs/archive/. - Use repository-relative links. Never commit a local absolute path.
- Make every active document reachable from this index through a section index.
- Do not use archived documents as current requirements.
- Run
./gradlew verifyDocumentationStructurebefore committing documentation changes. The same check is included inqaQuick. - Keep titles, headings, and narrative English in
docs/, and Simplified Chinese in the matchingzh-CNmirror; mark foreign-language UI literals as inline code. - Follow the canonical-first localization workflow for every public content change; never refresh a translation fingerprint without reviewing meaning.
The complete contract, naming rules, lifecycle, and review checklist are defined in Documentation governance.