Firefox для Android больше не будет использовать XUL

Firefox для Android больше не будет использовать XUL
Разработчики из Mozilla решили в дальнейшем не использовать язык XUL для создания интерфейса пользователя в Firefox для операционной системы Android.
Отныне вместо XUL будут использоваться только стандартные механизмы построения интерфейса, которые предоставляет платформа Android.

Что касается веб-движка, то им по-прежнему будет Mozilla Gecko, используемый в Firefox, который предназначен для настольных систем.

Загрузить код прототипа переделанной версии Firefox для Android можно из специального hg-репозитория.

Разработчики говорят, что этот проект пока находится на самой ранней стадии своего развития. В текущее время они создали лишь начальный прототип и проводят согласование различных рабочих моментов с командами, которые занимаются локализацией и созданием средств, предназначенных для разработки дополнений.

До сих пор неизвестно когда эти работы будут доведены до готовности для конечных пользователей. Однако разработчики уверены, что данный проект никак не повлияет на параллельно развиваемые будущие выпуски Firefox для платформы Android, которые сейчас проходят стадию тестирования в ветках Aurora и Beta.
В связи с этим, как минимум, Firefox версий 8 и 9 для ОС Android, как и прежде будут базироваться на технологии XUL, а также будут включать в себя совсем недавно созданный новый интерфейс для планшетных компьютеров.

Три основных мотива отказа от XUL в пользу NativeUI:
- уменьшится время запуска. Использование штатного Android API для создания интерфейса заметно увеличит скорость запуска приложения. Это произойдет в основном за счет возможности параллельной загрузки той части, которая ответственна за интерфейс и благодаря движку Gecko, который собран в виде библиотеки при помощи Android NDK (Native Development Kit). В конце концов, запуск Интернет-браузера будет происходить не за несколько секунд, а за доли секунды.
- уменьшится потребление памяти. Благодаря исключения фазы интерпретации XUL-кода (сам интерпретатор XUL создан на javascript и остается в Gecko ), а также с помощью стандартных виджетов потребление памяти значительно уменьшится.
- увеличится отзывчивость интерфейса. Это вызвано тем, что «родной» API предоставляет возможность без лишних манипуляций выполнять масштабирование и панорамирование. Помимо этого, исчезнет дополнительный интерпретируемый уровень, который приводит к большим накладным расходам.

Отказавшись от дополнительной прослойки в виде языка разметки XUL, разработчики смогут существенно сократить общее потребление ресурсов. Однако при этом установка классических дополнений на базе XUL станет невозможна.

Для создания дополнений разработчики смогут использовать лишь систему Jetpack. Этот инструмент, в отличие от XUL, не требует изучения особенностей внутреннего устройства веб-браузера. Он базируется на стандартных веб-технологиях javascript, HTML и CSS.

Наряду с простотой разработки, достоинством Jetpack-расширений будет возможность мгновенно активировать дополнения, не перезагружая веб-обозреватель, а также отсутствие требований к обеспечению совместимости со всеми грядущими версиями Интернет-браузера.

Сегодня разработчики Mozilla интенсивно продвигают Add-on SDK, который базируется на Jetpack. Со временем он должен полностью вытеснить XUL.

В числе других проблемных моментов отказа от XUL разработчики называют потерю переносимости реализации интерфейса, а также необходимость внедрения новых методов локализации (сегодня процесс локализации очень сильно завязан на XUL).

Если говорить о переносимости, то основная задача XUL заключается в обеспечении возможности создания интерфейса, который сможет без изменения работать на принципиально разных платформах.

Интерфейс определяется на универсальном интерпретируемом языке, абстрагированном от особенностей какой-либо платформы.

После перехода на API Android продукт станет весьма специфичным, что не даст использовать связанные с интерфейсом наработки во время создания Firefox для других мобильных платформ.

Помимо этого, уход от XUL требует переработки и пересмотра самой концепции формирования интерфейса. В этом случае вместо самобытного оформления, обозреватель будет более плотно вписываться в программное окружение, а также станет походить на иные приложения для платформы Android. Он будет базироваться на стандартных элементах управления и виджетах.

Тем не менее, в новой версии разработчики планируют сохранить такие особенности, как сервис синхронизации Firefox Sync, интеллектуальная адресная строка Awesome Bar, а также поддержка навигации на основе вкладок, включая режим вывода эскизов открытых вкладок.