Этот смартфон должны были выдавать выпускникам курсов JavaScript — смотрим на Alcatel Fire E на базе FireFox OS
Веб-технологии давно и прочно вошли в нашу жизнь. Мы каждый день пользуемся уже ставшими привычными нам сервисами вроде социальных сетей или новостных сайтов. Браузер стал неотъемлемой частью современного смартфона, а некоторые приложения и вовсе полностью «переехали» в браузер, получив название PWA, хотя подавляющее большинство приложений всё ещё остаются нативными. Ребята из Mozilla как-то раз подумали: «отдельные PWA приложения это, конечно, круто, но почему бы не сделать мобильную систему, которая построена практически полностью на веб-технологиях?». И таки умудрились сделать, дав ей имя — FireFox OS(B2G), предназначенная для бюджетных смартфонов! Сегодня мы с вами: узнаем, что же это за ОС такая, что у неё под капотом и проверим, на что она способна в 2023 году. Встречаем — Alcatel OneTouch Fire E!
❯ Предыстория
Попытки запихнуть веб в обычные, повседневные приложения предпринимались ещё в нулевых. Сам Стив Джобс, представляя первый iPhone в 2007 году заявлял, что нативные приложения новому устройству не нужны и пользователь должен довольствоваться сайтами-сервисами, которые можно было вывести на главный экран.
Как показала практика — он несколько поспешил с этим заявлением и через год, к моменту выхода iOS 2.0, поддержка нативных приложений была всё же добавлена. Концепция веб-приложений была весьма перспективной и в 2007 году, однако в те годы веб был гораздо менее функционален. Даже банального Canvas не было, не то что WebGL, что отсекало немаловажный для мобилок сегмент — игры.
Однако, несмотря на это, большинство приложений в iOS всё ещё оставались нативными, а полноценно концепция «ОС на JS/HTML» была реализована немного позже. И не абы где, а в одном из последних коммуникаторов от Palm — Pre, который работал на базе совсем молодой тогда webOS. Да, той самый webOS, что используют смарт-ТВ от LG.
И выбор такого стека технологий можно понять, ведь HTML/CSS легко сделать адаптивными, их несложно стилизовать/подгонять под необходимый дизайн, а порог вхождения в JS гораздо ниже, чем, например, в Java. Да и банально нет необходимости писать сложный UI-фреймворк с нуля, где нужно учесть не просто UX виджетов (кнопочки, флажки, радио-кнопки, ползунки), но и их правильную расстановку в независимости от разрешения экрана и DPI. Портировал условный WebKit и вот у тебя уже есть мощнейший движок для построения UI, чем сейчас и пользуется, например, Discord.
Другой вопрос, что далеко не каждый смартфон может потянуть достаточно тяжелую по тем меркам «веб-морду», а девайсы с приличным по тем временам железом (256мб ОЗУ, 512мб ПЗУ, ARMv6 чипсет с частотой 500-1ггц) стоили достаточно дорого. Зачем было рисковать, покупая смартфон с неизвестной ОС, когда за те же деньги можно было взять iPhone или активно набирающий обороты Android?
Ситуация поменялась ближе к 2013 году. Разработчики чипсетов MediaTek и Spreadtrum «уронили» цену смартфонов до ~1-1.5 тысяч рублей (MediaTek), 800-1.000 рублей (Spreadtrum, это не шутка если что. Статью про этот девайс я писал), что позволяло задуматься об альтернативах для бюджетного рынка. Да и Qualcomm сделал бюджетный чипсет Snapdragon 200, который дал зеленый свет очень дешевым смартфонам на Windows Phone (который, видимо, был прибит к «квалкому»). Тут пришла и Mozilla со своей открытой FireFox OS, кодовое название которой было B2G (Boot2Gecko, Gecko — название браузерного движка FireFox) и метить она решила в самое перспективное место — бюджетный рынок. Ребята нашли заинтересованных производителей, которые согласились выпустить один или несколько смартфонов на перспективной мобильной ОС: ими оказалась GeeksPhone, ZTE, Spice и Alcatel.
Работала FireFox OS на базе Linux. Но все не так просто. Казалось бы, уже есть инфраструктура, есть нативные драйвера на GPU, звук, модем, сеть, есть прослойки между Android и железом (RIL, surfaceflinger)… Зачем производителям чипсетов портировать драйвера на ещё одну ОС, успех которой весьма туманный. Да и свежих мобильных ОС уже развелось пруд-пруди: Sailfish OS, Ubuntu Touch, чуть позже появилась и pmOS. И чтобы иметь возможность использовать уже готовые бинарные блобы (драйвера) из Android, энтузиасты написали libhybris. Hybris — это специальная библиотека, которая даёт возможность загружать нативные библиотеки, скомпилированные для Android (т. е. для стандартной библиотеки bionic) из обычного Linux-окружения с libc. Таким образом, становится возможным использовать нативные драйвера почти любого устройства без ущерба функционалу и необходимости портировать все заново.
Костыль, однако касалось это по большей части портов на другие устройства. Как я понял, Qualcomm без каких-либо проблем согласились поддерживать FireFox OS, благодаря чему мы увидели ZTE Open на базе древнего бюджетного MSM7225A и Open C/OneTouch Fire E на базе более свежего Snapdragon 200:
Но пользователь в большинстве случаев не знает, что там под капотом: какая версия ядра linux, или какая версия Gecko там используется. Для него гораздо важнее была подсистема Gaia, которая как раз таки и реализовывала весь интерфейс системы и её стандартные приложения. Всё, что вы видите на экране смартфона — это просто WebView (окно браузера), и запущенная в ней Gaia, как обычное PWA приложение!
Поскольку все приложения в Gaia были построены на базе стандартной связке HTML/CS/JS, система экспортировала в JavaScript необходимые методы для работы с базовыми возможностями телефона: API для звонков, приёма и отправки SMS, контактов и прочих фишек.
Даже сервисы баз данных были написаны на JS: для хранения плейлистов в плеере (который доступен любым приложениям) используется обычный localStorage!
Что особенно интересно — так это реализация браузера. Поскольку вся система — это по сути уже запущенный браузер, Mozilla ввела новый HTML элемент — <webview>, который являлся более изолированным и функциональным iframe. Что мы получаем в итоге: браузер отображает интерфейс системы, которая отображает приложение браузер, который имеет отдельный браузер в каждой вкладке! Чудеса подхода Mozilla!
Отдельного упоминания стоит подход к разработке от Mozilla. Поскольку FireFox OS — открытая система, огнелисы сразу же открыли магазин приложений и предоставили публичное «SDK» для разработки приложений. Но почему я выделил SDK в кавычки? Потому что никакого SDK и не было, как и какого либо эмулятора! Приложения предлагалось разрабатывать и отлаживать прямо в обычном десктопном FireFox, без каких-либо систем сборок! Разработчик просто создаёт манифест, указывает там главную страницу приложения (index.html) и начинает реализовывать своё приложение, попутно отлаживая его в обычном десктопном браузере. Разработка приложений напоминала разработку самых обычных расширений и в этом была главная изюминка FF OS. Если Cordova или PhoneGap требовали установки SDK, системы сборки (а то и покупки мака, если речь идет об iOS), а отладка производилась только на устройстве/эмуляторе, то у огнелиса было всё куда проще:
Прожила FireFox OS, к сожалению, недолго. Вендоры банально не хотели связываться с непонятной ОС от Mozilla, продолжая выпускать десятки одинаковых смартфонов на Android без какой-либо отличительной черты. Появившись ещё в 2012 (с первым публичном релизом в 2013) и пережив две мажорные версии, FFOS была закрыта в начале 2017 года, распустив команду из 50 человек. И казалось бы, webOS есть только на ТВ от LG, FFOS мертва… но не всё так просто! Помним про KaiOS — ОС, на которой работают современные кнопочные 4G мобильники от Nokia? А ведь это та самая FireFox OS, наработки которой были оптимизированы для кнопочного управления без тачскрина! Даже чипсеты ставят Qualcomm'овские: Snapdragon 210/215, иногда разбавляя их медиатеками 10-летней давности (MT6572) и свежими спредтрумами. Пока ещё продаются кнопочники на KaiOS, можно считать, что дело FFOS ещё живёт!
Но давайте же познакомимся с загадочным девайсом поближе: недавно я купил новый Alcatel Fire E за 1.000 рублей на известной онлайн-барахолке. Со слов продавца, когда-то он из интереса купил этот смартфон, но этот девайс ни разу ему не пригодился. До этого читатель с Хабра предложил мне два LG Fx0 с условием перепрошивки одного из них на Android и отправки обратно, но увы, у него не получилось его отправить. Я плотно заинтересовался темой мобилок на FFOS и начал мониторить онлайн-барахолки, и буквально через день человек выложил этот смартфон, который я в итоге и забрал.
Как уже было сказано выше, смартфон — новый. У него неплохо держит АКБ, несмотря на возраст, он с полным комплектом и в пленках. Но что он из себя представляет в 2023? Давайте посмотрим!
❯ Знакомимся с Fire E
Комплектация смартфона самая стандартная: кабель, блок питания 5в и сам смартфон. Ничего необычного, никаких трехэтажных текстурированных коробочек тут нет, всё таки это смартфон бюджетного сегмента, цена которого составляла всего 70 евро, которые превратились в 5.000 рублей в 2014 году. Устройство выпускалось в двух видах: первый вариант работал на ОС Android (OT-6014), а второй на FireFox OS (OT-6015).
Зато дизайном смартфон заметно отдаёт iPhone 5: здесь несъемный аккумулятор, три хардварные кнопки (громкость и включение) и одна тач-кнопка «домой», которая выполняет точно такую же функцию, как и в яблочном девайсе. В целом, выглядит достаточно стильно, материалы приятные, а вес устройства не «лопатный», но и не слишком лёгкий.
Наверняка многие читатели, увидев «веб» в названии, подумали что мобилка жрет немерено ресурсов и постоянно тормозит на весьма скромном железе: двухъядерный 3G чипсет Snapdragon 200, 512мб ОЗУ и 2гб ПЗУ. Но… это не так! Если запустить свежий Chrome на планшете 2013 года среднего класса и попробовать загрузить, например, Habr, то мы получим как минимум не особо плавный экспиренс. Но слабенький Fire E умудряется работать весьма шустро и по сегодняшним меркам. Да, это не 120, и даже не 60 FPS, но тормозом устройство назвать сложно.
Другой вопрос, что предоставляет производитель в плане софта. И тут у нас две стороны медали — с одной стороны webapps можно свободно установить из браузера, как apk на Android, а с другой есть нюанс. Официальный магазин закрыт ещё в начале 2018 года и бэкапов софта практически не осталось в интернете… По итогу у нас получился эдакий GNU-телефон — какие-то крупицы софта можно найти на Github и установить их чуть ли не с Github pages!
Но в целом, учитывая низкий порог вхождения в JS и то, что такие устройства в 2023 году берут только энтузиасты, даже выпускник каких-то курсов вероятно сможет реализовать минимальные клиенты для нужных ему сервисов, даже если этот клиент будет простым iframe'ом, который редиректит на нужный сайт! Это вам не Nokia N900, где софт пишется на плюсах, а для UI используется GTK…
Вообще, что касается стандартного софта, то необходимый минимум тут точно есть: почтовый клиент, СМС/ММС, номеронабиратель, контакты с возможностью импорта как с SIM, так и с почтового аккаунта, галерея, камера, музыка, браузер. Что приятно — Mozilla не ограничивала доступ к API этих приложений. Благодаря системе разрешений, любая программа может использовать системные функции устройства и реализовать, например, импорт контактов из проприетарного формата. Удобно!
В свою почту мне удалось войти сразу, без каких либо проблем с SSL:
С отображением html-писем проблем у него, по понятным причинам, нет. :)
Что касается функций звонилки, то здесь всё стандартно. Одна симка в сим-лотке, контактов (вроде бы) не ограниченное число (а хранятся они тоже в localStorage, и к ним тоже есть доступ через API), номеронабиратель приятный и не имеет тенденции каждую цифру делать запрос к контент-провайдеру с приличными тормозами.
Что касается мультимедиа, то помимо поддержки microsd флэшек, смартфон имеет встроенную память 4гб, из которых 1гб доступно приложениям, а ещё 1гб под пользовательские данные. Не густо, но не сказать что всё прям плохо — немного музычки накидать явно можно! Сам плеер приятный, умеет в плейлисты, сам сканирует музыку, качество звука приемлемое. Ну, в целом, совсем плоским звуком грешат в основном бюджетные спредтрумы из-за простенького DAC, и некоторые медиатеки, а у квалкомов звук всегда был как минимум на уровне.
Камера… она тут есть и по меркам бюджетника вполне неплохая, даже с автофокусом, однако даже при относительно хорошем свете получается мазня. Сравните Fire E и мой флагманский BlackBerry Z30, который вышел на год раньше.
Настроек камеры немного, но на FxOS выходили в основном бюджетные устройства (кроме красавца LG Fx0), так что жаловаться на качество съемки смысла нет. Есть минус — картинки в превьюшках неправильно пережимаются, от чего фото на экране смартфона кажутся хуже, чем есть. Впрочем, в наше время камеры работают в паре с цифровыми сигнальными процессорами, которые и делают всю магию картинки типа программного боке, а как организовать такую работу из жабоскрипта для меня загадка. :)
Есть даже рабочие карты Here Maps, прямо как на Nokia. Работают шустро, но GPS не работает из-за санкций. Что забавно, ведь именно благодаря Here, навигация и карты всё ещё живут на люмиях и FireFox OS:
И вот мы плавно подходим к главной жемчужине FireFox OS: браузер! Да, это FireFox, с дизайном а-ля 2014 год, но тем не менее это всё ещё полноценный браузер в браузере. Другой вопрос, что он может загрузить в 2023? Ну, немалую часть сайтов, FireFox образца 2014 года ещё может загрузить, но вот корректно отображать далеко не все. Даже старая версия «Хабра» здесь
работает не очень, а DTF или Pikabu браузер загрузить совершенно не в состоянии. Слишком
сильно поменялись веб-технологии за последние 9 лет.
Но мобильную версию ВК девайс всё ещё в силах загрузить. Да, со сломанными стилями, ошибками сертификатов, но всё же…
❯ Заключение
FireFox OS была весьма перспективной на мой взгляд. Низкий порог вхождения для разработки приложений, хорошая производительность и открытость системы могли сделать свое дело и пробить бюджетный сегмент рынка для подобных смартфонов. Однако, этого не случилось. ОС была слишком мало распространена, а у Mozilla нет ресурсов Google для продвижения своей системы и крутых конкурсов на разработку приложений. Даже Windows Phone потихоньку начинала терять рынок в 2014, а BlackBerry вообще оказалась финансовым провалом. Рыночек уже поделили ведь.
Но идея FireFox OS ещё жива и её реализовали на кнопочных мобилках! KaiOS всё ещё жива, регулярно выходят новые версии и новые кнопочные смартфоны с поддержкой современных технологий. Но даже тут появился ещё более дешевый конкурент в лице кнопочников на Android. А вам понравился девайс? Жду ваше мнение в комментариях!