Cross-platform Smart TV application in one copy. SmartBox Library for Samsung, LG, Philips, STB Mag 200/250 and others
Delving into the memory of my inexperienced ideal world of the brain, I recall how our story of developing applications for SmartTv began two years ago. In short, it was HELL !!! a wealth of experience.
However, I would like to get this experience right away, without stepping on an undocumented rake, spread out across the technology, and a special children's rake, laid out by each vendor separately. But as they say "c'est la vie" and we had to make our way through the thorns to the stars! ')
As a result, we have a cross-platform extensible library for all SmartTv. And the name of this library is SmartBox . Opensource, and therefore constantly in the process of developing and documenting.
Launch video on different devices Samsung 2011, 2012, Philips, LG.
Prerequisites for creating a library
Despite the fact that almost all SmartTv is based on browser engines (Gecko, Webkit), each individual vendor has its own bugs, nuances and bugs, undocumented features. Actually from here all evil:
Inability to write once. Despite the alliances created by vendors of TVs and even the SDK , no matter how hard you try, you can do several applications. And plus to this, there are vendors who don’t need this alliance for eyes, for example, Samsung . Total: if another platform appears or you want to expand the application to an existing one, you will not have to sweet.
The inability to write once for one vendor. Yes, surprisingly, but there is. The difference in layout, the various browser engines, the difference in the API of objects. Head spin! (e.g. 2011 and 2012 and Samsung TV 2013)
Unwillingness to use someone else's. Here it is just a justified bug of consciousness. By a stranger, I mean specialized different interface controls: keyboards, selects, inputs, forms, etc. Each vendor, unfortunately, is different. Having tried once - refuse forever! And refuse because of the banal intolerance to other platforms.
The need to use someone else's. There is a whole range of low-level for the TV API, which is not possible, and sometimes the desire to transfer to TV-brothers in mind. These include: video players, content protection systems, DRM, etc.
The dampness of the technology as a whole. Indeed, a rare frontend programmer will sit down and make an application for SmartTV on the fly, and even more so for several at a time. In addition, as I said, children's rakes, decomposed by each vendor separately, create some pain in the area of ​​their impact after detection. A deeper awareness of the problem lies in the wild desire to write code abstracting from the end device. This is useful both at the first stage of acquaintance with technology, and after a thorough study of all things in Smart Tv.
Altruism. Ridding the world of the rake! Especially children.
SmartBox Library Features
Tediously and persistently developing our applications for Smarts, we had to study all the documentation up to and including contacting the support for explanations. All this has been systematized and accumulated in our task tracker and wiki.
We also studied the source codes of our competitors brothers in arms - i * i, yo * a, TV * avr, Z ** mbyBox and other video services. (From where and how they were received I do not know, do not even ask) . From these sources, we just found out that we all are on the same road to the happy future of SmartTv.
As a result, we sat down and redid everything by writing a library, which simplified our lives at times. And, we hope that it will simplify the novice "smarts."
Of the possibilities:
Write abstract code based on the library's API, not on each TV or set-top box ( and it really works ).
Extend applications to various platforms without re-filing the application itself.
Supported Platforms:
While we use the term triple penetration, i.e. we have penetration into 3 platforms:
To implement your platform, you can use the documentation on how to do it . To do this, as you understand, you will have to expand the library with the platform file with the implementation of common methods.
From plugins for today:
Single Platform Methods
Console Log,
Navigation (Logic and features are described in great detail in the documentation ),
Input fields
Virtual keyboard expandable into any language or set of characters,
Voice control (relevant for Samsung),
Gesture management
Legend,
Player,
LocalStorage abstraction - storing data on end devices.