Use the Layout SDK when a Standard Android app needs multiple app-owned panels on Meta Horizon OS. It preserves the app's existing Android UI framework. Do not add Meta Spatial SDK unless the app needs an immersive scene, 3D entities, or full environment control.
Choose the framework first
| Existing app UI | API style | Start here |
|---|---|---|
| Jetpack Compose | SpatialScene, SpatialWindow, WindowModifier |
Compose setup and Compose API |
| React Native | SpatialSceneProvider, SpatialWindow, props and hooks |
React Native setup and React Native API |
The app's UI framework dictates which set of references to continue with. The Jetpack Compose and React Native APIs are intended to strive for behavioral and conceptual parity across platforms.
Mental model
Compose:
setContent {
SpatialScene(
theme = { content -> AppTheme { content() } },
) {
MainScreen()
SpatialWindow(
key = "details",
modifier = WindowModifier
.size(480.dp, 640.dp)
.anchor(WindowAnchor.End),
) {
DetailsScreen()
}
}
}
React Native:
import {SpatialSceneProvider, SpatialWindow} from '@metavr/layout-compat';
<SpatialSceneProvider>
<MainScreen />
<SpatialWindow
label="details"
windowWidth={480}
windowHeight={640}
anchor="end">
<DetailsScreen />
</SpatialWindow>
</SpatialSceneProvider>;
The main content remains in the app's system panel. Each SpatialWindow
declares child content that the compatibility layer can promote into a separate
panel when the platform supports it. Read the framework's placement reference
for anchoring, semantic offsets, asynchronous promotion, priority, and fallback
behavior.
Read what you need
Jetpack Compose
React Native
An installed partner or internal tier may provide additional reference files. Use one only when its filename directly matches the requested capability.
For exact signatures and version-specific availability, use the SDK types and documentation shipped with the dependency, or metavr docs api-search "<Class>" for the indexed API reference.