Roku
Hosanna ships Roku apps by transpiling TypeScript into BrightScript and SceneGraph components. The Roku target is the most mature device path and is the best reference target for packaging, source maps, device logs, and release automation.
Development Flow
- Develop shared UI in Web for fast iteration.
- List Roku targets with
npx hst target:list --platform roku. - Build with
npx hst build roku dev device. - Deploy and stream logs with
npx hst run roku dev device --device "<roku name or ip>". - Validate focus, remote input, media playback, deep links, and app startup on device.
Runtime Notes
- Input flows through Roku key events into
HsInputEvent,FocusManager.handleInputEvent(event), and focused viewonInputEvent(event)handlers. - Roku render-loop mode is selected at compile time with
buildFlags.ROKU_RENDER_LOOP_EVENT.falseuses the Timer-driven frame loop;trueuses the event-driven main loop. - Native Roku services can be wrapped with typed SceneGraph interfaces or isolated in
hs_native_rokusnippets. - Source maps allow breakpoint debugging from TypeScript into generated BrightScript.
- The MCP debugger and Hosanna DevTools can inspect app state, focus, logs, screenshots, and runtime trees.
- VS Code and BrighterScript debugging remain optional for breakpoint sessions, but the documented launcher path is terminal-first through
hst.
Release Checklist
- Configure
assets/meta/app.config.json. - Confirm package metadata and signing keys.
- Run production compiler and package scripts.
- Test on representative low-end and current Roku hardware.
- Verify channel size, app launch, networking, video, focus, and store deep-link requirements.
See Building For Roku and Native Development Roku for the detailed device workflow.