The challenges to develop my first public SceneGraph channel
I just submitted my first public SceneGraph channel this week, I hope it will be available soon. As all my previous experience was working with "pure" BrightScript SDK 1 and the 2D API (for games). After the announcement of the scheduled obsolescence of SDK 1 by Roku, I decided to put my hands on SDK 2.
First I developed a prototype channel for a potential customer (can't disclose now, sorry) fully based on HeroGrid sample, just to learn the basics of SceneGraph, then I decided to implement a project that I initially planned to make using the roScreen and 2D API. The channel is a client for Trello.com, a well known Kanban tool for project management (or any use you can imagine for a Kanban board). As it is an app, not a regular streaming channel, I had several challenges to represent data on screen, so I decided to share those with the community.
Before even start the channel I knew I would have to create a solution for authentication (Trello uses OAuth), so I developed a simple NodeJS server app to make this work. I published a simplified version of it as open source at: https://github.com/lvcabral/SGDatePicker
Besides being a digital version of a kanban board on TV, another of the cool things to have it in Roku is the possibility to play media attached to the cards, so I just parsed the urls and checked the extension for media types (I already can foresee the emails complaining that a specific mkv they attached will not play).
For the audio, I created a very simple player, that support only pause and back. BTW Roku Team, would be great to have the video player supporting mp3 and show a custom image we can provide, with all controls predefined as it does for video playback. Just rename it to MediaPlayer
For the attached links that are not a supported media, I had the idea to show a QR Code so user can still check the attachment with a mobile device. For YouTube I also can get the poster from Google API and show it along with the QR Code.
Finally for the Options screen I used a LabelList to make the menu, having mixed option buttons and checkboxes, the only thing I would love to have implemented is make the section dividers visible when vertFocusAnimationStyle is configured to "floatingFocus", the navigation on the menu would be a much better experience.
Below a video I created to demo the features of the channel,it says the channel is available but as of today it is not yet (I will edit this later). After watching it, if you have questions about how I implemented something there, just ask here I would be happy to answer.
Re: The challenges to develop my first public SceneGraph channel
I wish that it was somehow possible to see (some of) your code, without harming your ability to sell the pro channel upgrade.
I'm curious about how you integrate your Roku <-> Rokanban <-> Trello bridge.
Specifically, in the product video, you show going to your site to enter a 5-digit code. So far, pretty normal. (Thanks again for posting your node implementation of the token authentication. Huge life saver!)
Then it shows your site doing an OAuth2 connection against the Trello API.
Does this mean that you are effectively acting as an intermediary between client Rokus and the Trello API? Sort of a benevolent man-in-the-middle?
I really wish there was something like a standard library for BrightScript. It's really frustrating that there's no npm/bundler/cpan for BRS.
BTW, what should we ideally be sending back to the Roku as a token? A JWT? A unique string or UUID keyed to a user?