What makes Roku development different
Roku channels are written in BrightScript with SceneGraph XML for the interface, not in a mainstream framework. There is no DOM, no npm ecosystem and limited memory on low-cost devices, so lean rendering and careful image sizing matter more than clever abstractions. Memory is the quiet constraint. Large posters, unbounded lists and uncompressed images crash channels on lower-end players, so we load thumbnails at display size and release components that are off screen.
Debugging happens over a telnet console and the Roku developer sideload mode. We keep business logic in well-tested components, use the Roku Advertising Framework and the Roku Video player node where possible, and avoid custom playback code that tends to fail certification. Roku also separates what the app does from how it looks. We keep data access in Tasks running off the render thread, which prevents the interface from stuttering during network calls and parsing.