Skip to main content

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

  1. Develop shared UI in Web for fast iteration.
  2. List Roku targets with npx hst target:list --platform roku.
  3. Build with npx hst build roku dev device.
  4. Deploy and stream logs with npx hst run roku dev device --device "<roku name or ip>".
  5. 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 view onInputEvent(event) handlers.
  • Roku render-loop mode is selected at compile time with buildFlags.ROKU_RENDER_LOOP_EVENT. false uses the Timer-driven frame loop; true uses the event-driven main loop.
  • Native Roku services can be wrapped with typed SceneGraph interfaces or isolated in hs_native_roku snippets.
  • 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.

Talk to us