среда, 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!


1 комментарий:

  1. Thanks for sharing, nice post! Post really provice useful information!

    An Thái Sơn với website anthaison.vn chuyên sản phẩm máy đưa võng hay máy đưa võng tự động tốt cho bé là địa chỉ bán máy đưa võng giá rẻ tại TP.HCM và giúp bạn tìm máy đưa võng loại nào tốt hiện nay.

    ОтветитьУдалить