Samples

The Roku Developers GitHub repo provides a large selection of sample app code. Repos from SceneGraph nodes and implementations, to full integrated master sample apps, are briefly described below.

After mastering the basics, you might want to look next at the following SceneGraph examples.

  • Roku SceneGraph (RSG) components: Building block components for configuring and rendering the app UI from scratch (refer to the scenegraph-master-sample)

  • SceneGraph Developer Extensions (SGDEX) views: Full screen components to save the effort of building from scratch (refer to the SceneGraphDeveloperExtensions)

Category GitHub link Description
Basic hello-world Simple sample app to try out sideloading
samples More elaborate sample apps for learning
SceneGraph scenegraph-master-sample Guide to building a basic, high-performance Roku app that passes certification
SceneGraphDeveloperExtensions Pre-built, reusable Roku SceneGraph (RSG) components to enable rapid development of apps that follow a consistent UX paradigm
RAF4RSG-sample Sample demonstrating the Roku Advertising Framework in SceneGraph
tv-safe-zone-overlay Function to overlay the current UI in a SceneGraph scene with a transparent safety zone overlay
simple-videoplayer-channel SimpleVideoPlayer app remastered in SceneGraph
sgnodes-all-demo Demonstrates how the sgnodes all SceneGraph debug console command (port 8080) returns the reference counts held by the Roku OS (osref) and the app itself (bscref); used in conjunction with the console debugger
Advanced hero-grid-channel Sample app with sliding hero row and a grid of content below
tv-safe-zone-channel App that demonstrates the TV safe zones for Titles and Action in the UI
trickplay-samples Samples that use BIF/thumbnails during trick play
custom-playback-channel List of content displayed with video continuously playing
multi-live-channel App example of live TV in addition to multiple live streams support
Authentication on-device-authentication Authenticate customers and validate their access to content when they sign in to an app from their Roku devices, without requiring them to visit an external webpage
Voice transport-control Handle voice commands in an app
dynamic-voice-enabled-keyboards Create and configure dynamic voice-enabled keyboards
Dialogs standard-dialog-framework Create built-in and custom dialogs with Roku's Standard Dialog Framework
Deep Linking deep-Linking-samples Learn about Deep Linking and roInput Messaging
Podcast podcast-player-channel Fully working podcast player app - accepts an MRSS feed and parses artwork and playlist
ChannelStore channelstore-node-tvod-sample Sample demonstrating how to set up transactional purchases using the ChannelStore node
rochannelstore-tvod-sample Sample demonstrating how to set up transactional purchases using the roChannelStore component
Audio dolby-audio-sample Collection of Dolby test content available in different streaming protocols
Screensaver animated-screensaver Screensaver demonstrating poster animations across the screen
home-screensaver Screensaver that displays the icons of installed apps
fading-screensaver Screensaver demonstrating fading animations
quadrant-screensaver Screensaver demonstrating a quadrant transition animation
Testing unit-testing-framework Tool for automating and testing Roku apps
automated-channel-testing Roku Automated App Testing: Selenium-based WebDriver + Robot Framework + JS Framework + Samples
notification-receiver-sample Sample application in Java for receiving notifications from Roku
remote-debugger Python-based remote debugger demonstrating the BrightScript debug protocol
debug-protocol-vscode-ext-beta VSCode extension for debugging apps with the BrightScript remote network debug protocol
manifestData-sample Sample showing how to use the Video node's manifestData field to detect the periods in a DASH manifest before they are played back