ZombieBox is a JavaScript framework for development of Smart TV and STB applications.
Init a node.js project:
npm init
Install ZombieBox and some of its components that you will most likely need:
npm install zombiebox
npm install zombiebox-platform-pc zombiebox-extension-cutejs
Either create application config.js
manually and start developing or start with a boilerplate:
npx zombiebox init $NAME
# or without npx:
./node_modules/zombiebox/bin/cli.js init
Run the development server:
npx zombiebox run
ZombieBox supports a lot of modern Smart TV and STB platforms and also some legacy but high-demand platforms, which allows you to deliver your application to a wide number of devices. Any capable platform can be easily support by extending it.
Platforms are a subtype of ZombieBox Addon. See addons for more information.
List of supported platforms:
Platform | Package | Version |
---|---|---|
Desktop browsers | zombiebox-platform-pc |
|
Android TV | zombiebox-platform-android-tv |
|
Samsung Tizen (2015+) | zombiebox-platform-tizen |
|
Samsung Orsay (2012-2014) | zombiebox-platform-samsung |
|
LG webOS (2014+) | zombiebox-platform-webos |
|
LG NetCast (2012-2014) | zombiebox-platform-lg |
|
MAG STB | zombiebox-platform-mag |
|
Dune HD | zombiebox-platform-dune |
Archived platforms:
Platform | Package | Version |
---|---|---|
Headless browsers | zombiebox-platform-headless |
|
Eltex STB | zombiebox-platform-eltex |
|
TVIP STB | zombiebox-platform-tvip |
Installation of a new platform is easy and nothing more than installation of a new npm package with further saving in the dependencies.
For example, for LG Netcast platform:
npm i zombiebox-platform-lg --save
Then configure the installed platform for building of a distribution package:
// Your config.js
module.exports = () => ({
platforms: {
lg: {
// Some platform-specific configuration, see platform documentation
}
}
});
Finally, build a package:
npx zombiebox build lg
Extension is a special npm package that extends default functionality of the framework. To add an extension just install a package via npm and save it in the dependencies.
Extensions are a subtype of ZombieBox Addon. See addons for more information.
List of available extensions:
Description | Package | Version |
---|---|---|
CuteJS Template engine | zombiebox-extension-cutejs |
|
Set of basic TV-oriented components | zombiebox-extension-ui |
|
Dependency Injection | zombiebox-extension-dependency-injection |
|
I18n support | zombiebox-extension-i18n |
|
Tools for Pixel Perfect testing | zombiebox-extension-pixelperfect |
|
Popup with main info about the application | zombiebox-extension-about |
|
Lodash library integration | zombiebox-extension-lodash |
|
Environment for interactive UI development | zombiebox-extension-storybook |
|
Emoji support | zombiebox-extension-emoji |
|
Subtitles | zombiebox-extension-ui-subtitles |
Configuration file is a module that exports a function returning configuration object.
By default, the framework will try to find file config.js
in the root of the project, but you can set a custom path passing --config
to the CLI commands.
See configuration for details.
Use npx to access ZombieBox CLI utility: npx zombiebox
or npx zb
.
npx zb init <name> [root]
- generates skeleton of a project interactivelynpx zb run
- starts the development servernpx zb build <platforms..>
- builds a distribution packagenpx zb buildCode
- generates runtime codenpx zb (addScene|addPopup|addWidget) <name> [path]
- generates boilerplate code for UI componentsnpx zb generateAliases [filename]
- generates alias map for development toolsnpx zb <platform> <command>
- runs a specific command provided by a specific platformSee the CHANGELOG.md.
ZombieBox is not semver compatible. We tried, but this wasn't working well. ZombieBox tries it's best to follow a version policy close to semver that makes sense.
@dev
dist-tag.All ZombieBox components declare their dependencies on each other with peerDependencies
field in package.json. Node itself does not enforce this field, but ZombieBox does in its CLI commands.
ZombieBox was developed and is maintained by Interfaced.
It was created as internal framework for numerous Smart TV and STB applications developed for industry leaders.
This library is distributed under MIT license. See LICENSE.
Copyright © 2012-2021, Interfaced. All rights reserved. If you have any questions about license, please write to licensing@zombiebox.tv.