1. Общее описание фреймворка

Justify - это фреймворк для разработки браузерных IPTV/OTT-приложений для устройств типа Set-Top Box и Smart TV (IPTV-портала), состоящий из 2-х принципиальных частей:

  • engine - пакет приложений, осуществляющий общение с API backend’а (Middleware Smarty и другие Middleware) и с API устройства, а также содержащий объявления и описания глобальных сущностей и классов;
  • templates - шаблоны интерфейса приложения, различающиеся не только внешним стилевым оформлением, но и функциональными возможностями. Каждый из них включает в себя набор экранов, наборы css-файлов и картинок, файл инициализации шаблона, а также переопределения некоторых глобальных сущностей и классов, описанных в engine.

Одна из главных целей, которой придерживались разработчики и архитекторы при создании justify - это создание максимально кастомизируемого и расширямого решения, при этом сохранив достаточно простую объектно-ориентированную архитектуру. Данные принципы помогли сделать фреймворк доступным для использования разработчиками любого уровня и квалификации.

Также кастомизация приложения происходит за счёт клиентских настроек, описываемых во внешнем файле client.js, все возможные поля и значения которого будут представлены ниже.

1.1 Термины, используемые в приложении

Устройство просмотра - Set-Top Box или Smart TV, уже адаптированный для Justify и, соответственно, имеющий JS API (приставки: amino, dune, eltex, mag, tvip, sagemcom, wrt, gdc и все приставки под ОС Android; smart TV: Samsung Smart TV (Webkit и Tizen), LG (Webos и Netcast); electron).

Дисплей - монитор устройства с его техническими характеристиками.

Шаблон - одно из уже созданных приложений на основе engine. Данные приложения могут иметь отличную от Microimpuls Middleware Smarty серверную часть, различную логику и оформление. Существуют разработанные шаблоны futiristic, classic, focus, impuls, iridium.

Пользовательские настройки - данные, которые сохраняются в ПЗУ устройства и которые имеет возможность изменять конечный пользователь приложения (данные авторизации, часовой пояс, уровень звука, размер буферизации, язык, стиль оформления и т.д.). Набор этих настроек также зависит от конкретного шаблона и от клиентских настроек.

Клиентские настройки - настройки, прописываемые в файле client.js, они же clientSettings. Каждый оператор имеет свой client.js и с помощью него настраивает нужную конфигурацию своего сервиса. Также в этом файле прописывается адрес серверной части и данные авторизации в Middleware (Client ID, API Key, API URL).

Настройки портала - имеют место только для шаблонов, использующих Microimpuls Middleware (portalSettings). В их число входят: кастомный css-файл, лого оператора, разделы, показываемые в главном меню и т.д. Конфигурируется всё это с помощью панели администратора, настройки динамически подгружаются при каждом новом запуске приложения.

Экран - экран приложения, представляет собой интерфейс пользователя, т.е. совокупность элементов управления, списков, кнопок, текстов, блоков подсказок и т.д. Является структурной единицей приложения, наследуется от класса BaseScreen.

Меню - список каких-либо элементов, включающий в себя функционал по инициализации списка, переключению между его элементами, логику скрытия пустых элементов, прокручивания спсика и т.д. Список может иметь как 1 колонку, так и быть в виде сетки.

Плеер - объект, имеющий функции для воспроизведения, перемотки, остановки и прочих действий над видео-потоками. У каждого устройства он свой и его специфика описывается в stbmediajsenginedevice<имя устройства>device.js.

1.2. Схема взаимодействия основных сущностей

_images/terms.png