Skip to main content

API contracts (planned)

Frozen naming targets for v0.1 MVP and forward. Nothing here is published until implementation lands.

Maven coordinates (Gradle apps)

Group: dev.decoupled.cabin (illustrative; finalize at first publish).

ArtifactCoordinateMVP
Tokensdev.decoupled.cabin:cabin-tokensYes
Compliancedev.decoupled.cabin:cabin-complianceYes
Viewsdev.decoupled.cabin:cabin-viewsYes (Theme Kit + System/Status bars Alpha)
Composedev.decoupled.cabin:cabin-composePost-MVP (Experimental Theme + bars)

Soong module names (build-tree)

ModuleMVP SystemUI
CabinTokensRequired
CabinComplianceRequired
CabinViewsRequired
CabinComposeDo not depend from SystemUI

See build-tree.

Kotlin / Java package roots (planned)

ModulePackage root
cabin-tokensdev.decoupled.cabin.tokens
cabin-compliancedev.decoupled.cabin.compliance
cabin-viewsdev.decoupled.cabin.views
cabin-composedev.decoupled.cabin.compose

Views Theme Kit types: dev.decoupled.cabin.views.theme.CabinThemes, …CabinThemeResolver. Views chrome: …CabinSystemBarView, …CabinStatusBarView (Alpha).

Compose Theme + bars (Experimental): dev.decoupled.cabin.compose.theme.CabinTheme, …CabinSystemBar, …CabinStatusBar.

Stability

LabelMeaning
ExperimentalMay change without notice; Compose bar parity starts here
Alpha / BetaTracking to stable; migration notes required
StableSemVer; tests green; pillars satisfied

v0.1 library drop may ship Tokens + Compliance + Views bars as Alpha.

SemVer policy (sketch)

  • MAJOR — breaking token renames, removed public types, Soong name changes
  • MINOR — additive components/APIs, new optional interactions
  • PATCH — bugfixes, doc-equivalent behavior fixes

Token renames are high-cost; prefer additive aliases then deprecate. Platform pins Cabin by manifest tag/revision, not floating main (soong).

Dependency rules (contract)

cabin-tokens

cabin-compliance

cabin-views cabin-compose (Views Alpha bars; Compose Experimental bars)

Theme Kit Alpha in cabin-views depends on tokens only; bars also wire cabin-compliance. Compose Theme + bars depend on tokens + compliance and must not depend on cabin-views.

  • Tokens & compliance: no UI toolkit deps
  • Views ⊀ Compose and Compose ⊀ Views
  • SystemUI static_libs: tokens + compliance + views only (never CabinCompose)