среда, 26 июня 2013 г.

Программирование для Firefox OS

В субботу 25 мая погода идеально подходила для десятичасового хакафона – холод, дождь и сильный ветер. Вообще, весна в этом году – кошмар. Надо перебираться куда-то ещё южнее, что ли… О чём это я? Ах, да! Пошёл я, значит, в субботу на швейцарский Firefox OS App Day, который проходил в офисе компании Zühlke в Шлирене.

За открытой мобильной платформой Firefox OS от Mozilla я слежу уже давно; ещё с тех пор, как они анонсировали её под именем Boot to Gecko (B2G) на JSConf.EU 2011. Что она собой представляет? С точки зрения разработчика приложений, Firefox OS – это просто браузер. Точка. Все интерфейсы программирования стандартизованы и доступны на уровне JavaScript-а. Таким образом, и разблокирование экрана, и фото/видео-камера, и набор телефонного номера – HTML5-приложения.

Идея мобильной операционной системы, построенной на Web-технологиях, не нова. Не так давно мы были свидетелями многообещающего взлёта и стремительного падения WebOS от Palm Inc. Я бы выделил два существенных отличия Firefox OS от WebOS. Во-первых, в то время как в SDK от Palm, наряду с HTML5-инструментарием, были включены средства нативной разработки на C и C++, Mozilla не позволяет приложениям – даже своим собственным – опускаться ниже JavaScript-а. Проще говоря, слои архитектуры Firefox OS – ядро | HAL | браузер | приложения. Во-вторых, устройства с Firefox OS на борту не будут позиционироваться как конкуренты iPhone-у или даже Nexus-у. Их цель – развивающиеся рынки: Латинская Америка, Африка, Западно-Сибирские деревни (вероятно). В то время как iPhone стоит около 700 евро, цена Firefox OS Keon – 91 евро. И это – ранний прототип для разработчиков; в розницу телефоны будут продаваться ещё дешевле. То есть, Mozilla и её партнёры пытаются создать новую категорию очень дешёвых смартфонов.

Задумаемся на минуту, что означает отсутствие нативных приложений. Допустим, кому-то понадобились смартфоны с температурным датчиком. Скажем, пожарным в ЮАР. Естественно, будет приложение, использующее данные такого датчика. IT-департамент пожарного управления совместно с Mozilla реализует драйвер устройства и протащит его интерфейс через уровни абстракции вплоть до window.thermometer.degreesCelsius(). Причём, не только в Firefox OS, но и в Firefox на десктопе и Андройде, а потом и в другие браузеры и платформы. Интерфейс будет стандартизован W3C, и даже Internet Explorer-у не останется ничего кроме как его поддержать. Этот процесс стандартизации реально работает, и именно благодаря ему мы уже сегодня можем использовать в HTML5 программные интерфейсы для геолокации, асинхронного хранилища данных IndexedDB, push-уведомлений (да-да, сам в шоке) и даже вибро-звонка. Firefox OS толкает, а временами – даже пинает вперёд наш с вами World Wide Web. Молодцы!

Но вернёмся уже к App Day. День начался с нескольких вводных лекций о внутреннем устройстве и идеологии Firefox OS. Особенно интересно было послушать о поддерживаемых программных интерфейсах (WebAPI-s), и о доступных для разработчиков инструментах: симуляторе, генераторе шаблонного кода, и стандартных стилях и элементах управления (а-ля Twitter Bootstrap), например. К докладу про интернационализацию я даже добавил свои "пять копеек", бегло рассказав всем во время заключительной дискуссии о нашем опыте использования ICU в JS/PHP приложениях.

Аудитории было, конечно, любопытно, какие приложения уже доступны и, где, собственно, App Store? Хорошая новость: чтоб увидеть и даже использовать Firefox OS App Store – он же Marketplace – вовсе не обязательно иметь устройство с Firefox OS; достаточно обычного браузера (желательно – Firefiox :). Я попробовал поставить несколько приложений в свой Фаерфокс на Андройде. Работает; и ощущается вполне "нативно". Так что желания перепрошить свой Galaxy S2 под Firefox OS у меня сразу поубавилось: очень многое и так можно попробовать прямо под Android/Firefox. Кстати да, перепрошить телефон предлагалось прям там, на месте; только никто не рискнул.

Теперь новость плохая. В ничего похожего на WhatsApp, Skype, Voxer или Infinity Blade в Marketplace-е пока нет. Есть только мобильные версии веб-сайтов, которые отлично работают и без Firefox OS. Что, в общем-то, не должно вызывать удивления. И это даже, можно сказать, так и задумано. Короче, новость не такая уж и плохая; особенно на данном этапе раннего развития.

После обеда нам предстояла самая интересна часть: программирование своих собственных приложений. Ещё задолго до самого мероприятия я очень вдохновился идеей подкаст-клиента, сделанного полностью на Веб-технологиях; поэтому решил продолжать проект Колина, который он начал на подобной встрече год назад. В итоге, я по уши погрузился в чужой код, и всё моё программирование свелось к попыткам понять, почему что-то не работает либо в эмуляторе, либо на Keon-е. Но зато опробовал всю цепочку инструментов, включая удалённую отладку на настоящем телефоне. Что я могу об этих инструментах сказать? Они хороши! Всё работает как ожидается. По моему мнению, начать программировать для Firefox OS примерно в 156.5 раз проще чем для iOS.

Пока я тупил с подкастами, другие участники успели в какой-то мере закончить очень интересные приложения и даже получить заслуженные призы. Для полноты картины советую почитать отзывы Жорди, Колина и Марка. Мне лично очень понравилось. Спасибо, Mozilla & Zühlke. Вперёд, HTML5!


Комментариев нет:

Отправить комментарий