Lightning, Thunder, and Resource-Constrained Set-tops: Training Recap

What does it take for a room full of people to write a code base for an attractive, relatable UI/UX, for a legacy/lower-end set-top box – in two days? That was the intent of a recent hands-on framework training and in-course challenges, led by technologists with Metrological.

The training happened at the Comcast Technology Center (CTC) in Philadelphia on Feb 10-11, and was the first-ever training event for the RDK’s “Lightning” framework, which is important to operators seeking attractive apps capable of running on legacy, fielded devices — many of which lack the processing and memory resources of more advanced, modern set-tops.

The training was administered by a four-person Metrological team consisting of Roel Jansen, Erik Haandrikman,  Douwe Cnossen and Thom van Ledden.

“Legacy boxes, as a general rule, are not that powerful,” Haandrikman said. “That’s why we developed these frameworks – especially Lightning, and lower-layer Thunder, to make sure you can write and run awesome, web-based apps, and build an app store, even on low-end boxes.”

Lightning, Haandrikman explained, is a user interface (UI) framework, with a clean, small code base that deliberately uses less memory and processing power. Specifically, it’s a javascript TV app development framework that uses WebGL for rendering; apps developed in Lightning will run on all platforms with a modern, HTML5-based browser. The Lightning SDK contains utilities for page routing mechanisms, image folders, and metrics; upcoming features include a web audio library, keyboards, a media player interface, an improved API for localization.

And where there’s lightning, there’s usually thunder. The RDK Thunder framework follows a modular architecture, with a plug-and-play design that can be used to enable or disable a feature via a plug-in. During the training, this was mostly discussed int the context of communicating from Lightning, to the embedded layer, such as to search for WiFi hot spots, or to discover a Bluetooth device.

“The UI  joins the same websocket as the embedded player of any Thunder joins,” Haandrikman explained. “It can send messages; Lightning can communicate with Thunder, and vice versa. It can listen for PIN activity, or any ‘big button’ you want to put on the box, or to discover devices.”

The training for the 30+ on-site attendees included six coding challenges, all focused around creating a game in the Lightning framework: Building a splash page, a fully-functioning menu, a media player that displays video behind an app, a way to link remote control key presses to specific app components, a way to change how “players” in a game look (in the challenge, a rectangle becomes an animated bunny), the addition of pause, play, skip, and a progress bar to the media player, and, lastly, a way to automate the bunny, from idle to running.

“The construct was a game, but more importantly, an app developed in a way that is mindful of memory and resources, such that it could run on any set-top box,” Haandrikman said.

Attendee feedback was positive. Here’s a sampling of comments: “It’s clear that a lot of effort went into the exercises, which is appreciated.” “Interesting challenges, very responsive instructors.” “Good overview of the many pros of Lightning.” “In-depth, good Q&As, fun, 1:1, with direct access to knowledge.”

 

Related Posts