September 17, 2021

Lightning Touch

"You can touch this!"

Lightning is here for your touch devices! After providing app developers with the ability to create smooth, good looking and easy to develop applications on the big screen TVs, we’re bringing Lightning, and much more, to touch screens!

Inherent top notch performance with Lightning’s WebGL rendering engine and unparalleled compatibility by leveraging browser technology. Develop your Lightning Touch Application once and deploy it across all major brands that support a modern browser without recompiling, reintegrating and redesigning your application.

Touchscreen support

To go beyond the remote controlled TV devices Lightning needs support for a Touch (and mouse) interface. This is a different experience from the typical TV experience where Lightning started. Where the TV is purely a lean-back experience using a remote, touch screens have a very different and mixed experience. Some touch devices are used in both lean forward and lean back experience, for example the Tablet that can be used for close up navigation as well as enjoying video content in a more lean back setting. Being an application framework that is built with an embedded first principle the use cases are endless. Aside from tablets/phones this opens up the ability for Lightning on TV screens in an airplane, information kiosk in the museum or a magic mouse on a big screen. Regardless of the use case between TV and touch devices one thing remains constant: users want a great looking, smooth apps and app developers want an easy to use framework to develop in.


Lightning is originally created to achieve maximum performance on the lowest possible settop box (STB) hardware without doing compromises on the ease of development. This is especially important in the settop box (STB) cable industry, where the average lifecycle of a STB is around 5 years but could go up to 8 or 10 year old devices. The hardware used is often very low end - coming from traditional “zapper” STBs. These “zapper” STBs are low cost devices that are just good enough to do linear TV. This resulted into using old MIPS technologies with 3000 DMIPS on CPU processing power (which is very slow) still being used today. With the rise of apps being able to run modern high quality applications on the older hardware is a huge benefit. This prevents the need to refresh hardware and squeezing even more years out of existing hardware. However as applications became more complex this required an application framework that is “embedded smart”. Not designed for MacBook Pro’s with multi core CPUs and a hefty GPU. Instead Lightning is designed to run on CPU constrained platforms, with a limited memory footprint and a slow GPUs.

Now how does this translate to other use cases that include touch? Let's take airplanes and imagine running Lightning built apps on the built-in TV entertainment screens for passengers. The average life cycle of an aircraft is 20 to 36 years, depedent on how often they fly (source). Now obviously that doesn't speak for the entertainment system used in an airplane, but you can imagine that squeezing every extra year out of the technology used in the airplane reduces costs for the company operating it. This is more than double of that of the STBs and as applications continue to get more complex so does their need for resources from the hardware they run on. What might not be a problem now will certainly become a problem down the road, the hardware of a 12 year old entertainment system in an airplane is going to be vastly outdated from a brand new one.

Selecting the right technology to write the applications is much more important for the transportation industry than any other platform out there. Simply because the transportation industry tends to hold on to hardware much longer than consumer electronics such as TVs, game consoles, etc. As the entertainment experiences are getting more and more complex the Applications are becoming increasingly more demanding on the hardware to meet those expectations. A future proof technology like Lightning will maximize the lifespan of your entertainment devices.

There is a lot more to Lightning then just performance and when to EOL hardware. Because Lightning uses WebGL it provides a lot more features to create eye pleasing user interfaces. Effects such as blurs, gaussians, mirror reflections are suddenly all very easy to add. Creating a blazing fast and hyper responsive user experience is effortless without having a deep understanding of the underlying WebGL mechanics. Because the Lightning Applications are just webapps they run in the same browser as anything else, providing the same compatibility as you would expect from any other web application framework.

New Features

Lightning is now “supporting touch” is a very simple term with a very complex technical meaning. Sure, tapping 1 object on the screen is “touch” but these days there are so many more gestures that users are used to. Such as swiping, pinching and double taps. In order for Lightning to provide the experience the user expects it needs support for multiple gestures and provide the application developers with “vectors” on how fast the user is performing a certain action and “maps” detailing where the user has interacted with the screen

Now it doesn’t end there, for those familiar with Lightning will recognize Lightning’s ability to provide a “focus path”. That focus path mechanism is available for Touch as well. In lay man’s terms each screen in Lightning is built up around “components”, sort of building blocks. Each item on the screen can be a component, a button, a piece of text. But also a collection of items on screen, such as a movie poster with a description, rating, actors and a preview / more info button can be seen as 1 component. For touch Lightning will provide a focus path per “finger” touching the screen based on which component the user ends up touching. As expected the touch events can bubble up through the focus path to determine which part of the code is going to handle it. Just like you are used to doing in Lightning today, just now you can have multiple components firing off events because the user goes from 1 remote control to using 2 or more fingers on the screen.

Lightning will come with a set of default touch gestures and provide a mechanism to extend the recognized gestures with a pluggable interface. The default gestures are:

  • Swipe up/down/left/right
  • Tap and double tap
  • Long press/hold

Get started

To get started with the Lightning Touch kit go here: here on Github.
To see a touch demo you can go here. Or would you rather see the sourcecode?

Enjoy Lightning with Touch support!