cmp-app-intents-compose¶
cmp-app-intents-compose¶
Compose Multiplatform extensions for cmp-app-intents — AppIntentsRegistration() Composable for lifecycle-bound registration + AppIntentsRegistry() Material 3 dev/debug invocation UI.
Why this module exists¶
Authored as part of inter-app-comms-compose-completeness (v0.4 → v1.0 epic) per S0.B PIVOT-aware Phase 4 design. Parallel to cmp-share-compose + existing cmp-intent-launcher-compose. Closes the gap where v0.3-alpha shipped cmp-app-intents core but no Compose adapter for Composable-friendly registration + debug UX.
Targets (9 — Compose-MP supported)¶
Standard 9-target shape: androidLibrary, jvm, iosX64/iosArm64/iosSimulatorArm64, macosX64/macosArm64, js, wasmJs.
Coordinates¶
implementation("io.github.mobilebytelabs:cmp-app-intents:<version>")
implementation("io.github.mobilebytelabs:cmp-app-intents-compose:<version>")
Usage¶
AppIntentsRegistration(config) — lifecycle-bound registration¶
import com.mobilebytelabs.kmptoolkit.appintents.appIntents
import com.mobilebytelabs.kmptoolkit.appintents.compose.AppIntentsRegistration
@Composable
fun MyApp() {
val config = remember {
appIntents {
intent("openHome") {
title = "Open Home"
description = "Navigate to the home screen"
perform { _ -> AppIntentResult.Done }
}
}
}
AppIntentsRegistration(config)
// ... rest of your app
}
AppIntentsRegistry() — Material 3 debug UI¶
import com.mobilebytelabs.kmptoolkit.appintents.compose.AppIntentsRegistry
@Composable
fun DebugScreen() {
AppIntentsRegistration(config)
AppIntentsRegistry(
modifier = Modifier.fillMaxSize(),
onInvokeResult = { id, result -> println("$id → $result") },
)
}
Dependencies¶
Transitively pulls Material 3 + materialIconsExtended (same as cmp-share-compose).
Versioning + API stability¶
Ships with the shared kmptoolkit.version (currently 3.3.2; this module lands in the next bump). @ExperimentalAppIntentsApi marker is retained at first ship — marker drop is a future toolkit-release decision.
Module reference¶
Module Identity (auto-gen)
| Artifact | Package | Current version | Maven | Since | API tier |
|---|---|---|---|---|---|
io.github.mobilebytelabs:cmp-app-intents-compose |
com.mobilebytelabs.kmptoolkit.app.intents.compose |
UNKNOWN |
Central | 2026-05-30 | experimental |
Module purpose (one paragraph):
§2 Per-Platform Parity Matrix (auto-gen)¶
| Target | Source-set present | Real impl | UnsupportedPlatform stub | .kt count | Last reviewed | Coverage | Notes |
|---|---|---|---|---|---|---|---|
| (no src/{platform}Main/ directories found) | — | — | — | — | 2026-06-01 | — | — |
Legend (Real impl): ✅ real impl, 🟡 partial / wontfix-OS / wontfix-infra / legacy stub, ⛔ not declared, — N/A.
Legend (Coverage enum, since 2026-06-01): full (all public-API methods backed by OS primitive) · partial (most real; some typed UnsupportedPlatform fallbacks for contracts that don't apply) · wontfix-OS (OS lacks the primitive) · wontfix-infra (impl possible but CI/toolchain blocks it) · (legacy:full|stub) (auto-derived; pre-opt-in modules — add a // LD-2-coverage: {enum} comment to the platform's primary .kt file to graduate). See RULE-LIB-DEVELOPMENT-MD-001 LD-2 + ADRs for accepted wontfix cases.
API reference¶
Each release ships the module's full Dokka HTML site inside its
-javadoc.jar artifact on Maven Central.
In IntelliJ / Android Studio the IDE mounts the jar and surfaces it automatically in hover popups, Quick Documentation, and Symbol search.