android-presentation-mvi

Standardize MVI presentation layers in Android and Kotlin Multiplatform apps.

Updated Apr 14, 2026
One-click install
npx skills add https://github.com/kvithayathil/agent-resources --skill android-presentation-mvi
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: android-presentation-mvi
Source: https://github.com/kvithayathil/agent-resources/tree/main/skills/android/android-presentation-mvi
Command: npx skills add https://github.com/kvithayathil/agent-resources --skill android-presentation-mvi

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill solves the problem of inconsistent, error-prone implementation of MVI presentation layers in Android and Kotlin Multiplatform (KMP) projects, which often leads to unmaintainable UI code, bugs in state management, and data loss during process death.

Core Features & Use Cases

  • Standardized MVI Architecture: Provides consistent patterns for State, Action, Event, and ViewModel implementation to reduce boilerplate and avoid common bugs.
  • Composable Best Practices: Guides the split of Root and Screen composables for previewability and clear separation of concerns.
  • Edge Case Handling: Includes built-in patterns for mapping domain errors to UI strings via UiText and recovering critical user input during process death with SavedStateHandle.
  • Use Case: For example, when building a note-taking app, use this Skill to implement a consistent, maintainable screen with proper state management and form field persistence across app restarts.

Quick Start

Use the android-presentation-mvi skill to implement a new note list screen with proper MVI state, actions, event handling, and process death recovery.

Frequently Asked Questions about android-presentation-mvi

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement MVI architecture in Jetpack Compose with proper state management?

Implement MVI in Jetpack Compose by defining standardized State, Action, and Event contracts within a ViewModel. This enforces unidirectional data flow, separates UI models from domain logic, and structures root and screen composables to ensure maintainable, previewable Android UI code.

What is the best way to recover user input during process death in Android ViewModel?

Recover user input during process death by leveraging SavedStateHandle within your Android ViewModel. This preserves critical form field data across app restarts by capturing and restoring state, preventing data loss in MVI presentation layers.

Can I use this MVI presentation pattern for Kotlin Multiplatform applications?

Yes, this MVI presentation pattern supports Kotlin Multiplatform (KMP) applications. It standardizes ViewModel creation, state management, and coroutine dispatcher best practices across shared codebases while maintaining robust Jetpack Compose integration.

Why do I need to split root and screen composables in Android MVI?

Splitting root and screen composables in Android MVI ensures clear separation of concerns and previewability. Structuring composables this way allows independent UI state previewing and enforces standardized naming conventions for production-ready interfaces.