Звучит несколько странно, правда? Cordova (PhoneGap) — это «обертка», которая позволяет веб-приложениям работать на смартфонах, как нативные. Но для Firefox OS веб-приложения и так нативные. Зачем же тут PhoneGap?
На самом деле, это довольно понятный ход.
Firefox OS старается работать на стандартных API, которые бы позволили веб-разработчикам (то есть, при помощи только JavaScript, HTML и CSS) использовать все «железные» возможности смартфонов, как это происходит с нативными приложениями. Проблема в том, что стандарты развиваются медленно, многие еще не реализованы на других платформах, так что веб-приложений Firefox OS вряд ли можно легко портировать на другие, возможно более прибыльные платформы.
Это означает, что у Firefox OS есть проблемы приобретения достаточного количества приложений, для получения успеха на рынке.
Тут то и выходит на сцену Apache Cordova.
Cordova берет ваше веб-приложение и помещает его в контейнер, являющийся родным для конкретного телефона. Такой нативный контейнер работает как веб-браузер для HTML/JavaScript кода.
Кроме этого Cordova предлагает набор специальных программных интерфейсов, которые позволяют JavaScript взаимодействовать с железом телефона и его подсистемами на уровне, который недостижим для стандартного браузера. То есть, контейнер загружает и показывает веб-приложение и берет на себя вопросы взаимодействия JavaScript и телефона.
Это можно представить, как еще одну операционную систему с веб-приложениями внутри оригинальной ОС.
Ключ Cordova к Firefox OS состоит в том, что веб-приложения в нем используют строго заданные API. Если вы захотите использовать камеру, вы всегда пишете:
navigator.camera.getPicture(function (src)
{
do something with the picture returned in src
});
И это работает на всех системах, которые поддерживает Cordova.
Рассмотрим тот же пример в Firefox OS. Для работы с камерой вам надо понять, как взаимодействовать с Web Activity или же дождаться пока не будет завершена работа над всеми API камеры, которые являются частью WebRTC. И даже не важно, как вы это реализуете, скорее всего, это не будет работать на других смартфонах, по крайней мере до тех пор, пока мобильные браузеры не примут те WebAPI, которые реализует Mozilla.
Это все означает, что вы можете использовать Cordova API для создания по-настоящему кроссплатформенных приложений, которые будут к тому же работать и на Firefox OS. А все уже созданные приложения смогут работать на Firefox OS.
И это гораздо лучшая перспектива.