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)

Featured Samples

CategoryGitHub linkDescription
Basichello-worldSimple sample app to try out sideloading
samplesMore elaborate sample apps for learning
SceneGraphscenegraph-master-sampleGuide to building a basic, high-performance Roku app that passes certification
SceneGraphDeveloperExtensionsPre-built, reusable Roku SceneGraph (RSG) components to enable rapid development of apps that follow a consistent UX paradigm
RAF4RSG-sampleSample demonstrating the Roku Advertising Framework in SceneGraph
tv-safe-zone-overlayFunction to overlay the current UI in a SceneGraph scene with a transparent safety zone overlay
simple-videoplayer-channelSimpleVideoPlayer app remastered in SceneGraph
sgnodes-all-demoDemonstrates 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
Advancedhero-grid-channelSample app with sliding hero row and a grid of content below
tv-safe-zone-channelApp that demonstrates the TV safe zones for Titles and Action in the UI
trickplay-samplesSamples that use BIF/thumbnails during trick play
custom-playback-channelList of content displayed with video continuously playing
multi-live-channelApp example of live TV in addition to multiple live streams support
Authenticationon-device-authenticationAuthenticate 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
Voicetransport-controlHandle voice commands in an app
dynamic-voice-enabled-keyboardsCreate and configure dynamic voice-enabled keyboards
Dialogsstandard-dialog-frameworkCreate built-in and custom dialogs with Roku's Standard Dialog Framework
Deep Linkingdeep-Linking-samplesLearn about Deep Linking and roInput Messaging
Podcastpodcast-player-channelFully working podcast player app - accepts an MRSS feed and parses artwork and playlist
ChannelStorechannelstore-node-tvod-sampleSample demonstrating how to set up transactional purchases using the ChannelStore node
rochannelstore-tvod-sampleSample demonstrating how to set up transactional purchases using the roChannelStore component
Audiodolby-audio-sampleCollection of Dolby test content available in different streaming protocols
Screensaveranimated-screensaverScreensaver demonstrating poster animations across the screen
home-screensaverScreensaver that displays the icons of installed apps
fading-screensaverScreensaver demonstrating fading animations
quadrant-screensaverScreensaver demonstrating a quadrant transition animation
Testingunit-testing-frameworkTool for automating and testing Roku apps
automated-channel-testingRoku Automated App Testing: Selenium-based WebDriver + Robot Framework + JS Framework + Samples
notification-receiver-sampleSample application in Java for receiving notifications from Roku
remote-debuggerPython-based remote debugger demonstrating the BrightScript debug protocol
debug-protocol-vscode-ext-betaVSCode extension for debugging apps with the BrightScript remote network debug protocol
manifestData-sampleSample showing how to use the Video node's manifestData field to detect the periods in a DASH manifest before they are played back