Что такое Sailfish OS и зачем она нужна.

Android всё больше монополизирует рынок смартфонов. Каждую неделю появляется как минимум десяток моделей устройств на базе операционной системы от Google. В то же время за весь прошлый год было анонсировано всего 15 моделей смартфонов на базе других ОС. За семь месяцев этого года статистика и того печальнее – всего три модели. Две из них основаны на Sailfish OS. Первая, Jala Accione, может стать одним из самых продвинутых смартфонов на базе финской платформы, но продаваться будет только в далёкой Боливии. Другая, Inoi R7, имеет отчасти российское происхождение, использует адаптированную для России версию Sailfish OS (так называемая Sailfish Mobile OS RUS от «Открытой мобильной платформы») и ориентирована на российский рынок. Давайте изучим это устройство и его операционную систему.

Технические характеристики Inoi R7:

  • Сеть: 2G, 3G, 4G
  • Платформа: Sailfish OS 2.1.1 Jämsänjoki
  • Дисплей: 5", 1280х720 точек, 294 ppi
  • Камера: 8 Мп, автофокус, f/2,1, запись видео 720p@30fps
  • Фронтальная камера: 5 Мп, f/2,3, запись видео 720p@30fps
  • Процессор: 4 ядра, 1,2 ГГц, Qualcomm Snapdragon 212
  • Графический чип: Adreno 304
  • Оперативная память: 2 ГБ
  • Внутренняя память: 16 ГБ
  • Карта памяти: microSD
  • A-GPS, ГЛОНАСС
  • Bluetooth
  • Wi-Fi (802.11b/g/n)
  • Порты: microUSB, 3,5 мм
  • Светодиодный индикатор
  • Аккумулятор: съёмный, 2500 мАч, 4,35 В, литий-полимерный
  • Размеры: 145,9х71,5х8,9 мм
  • Вес: 145 г

Комплектация и дизайн

Inoi R7 поставляется в белой коробке. В качестве производителя на ней указана компания Mobile Informatics Services из ОАЭ. На её сайте нет ничего, кроме фотографии Бурдж-Халифа, хотя офис компании находится в другом небоскрёбе. На самом деле (по сертификационным документам), производством Inoi R7 занимаются заводы Maxon и Desay. Внутри, помимо самого смартфона, можно найти защитную плёнку, кейс, простенькое зарядное устройство (5 В, 1 А), USB-кабель и документацию.

Смартфон бывает только чёрным. Корпус полностью пластиковый, используется покрытие софт-тач. И он странно пахнет... грязными носками. Задняя крышка съёмная, под ней прячутся два слота micro-SIM, отдельный лоток microSD и извлекаемая батарейка на 2500 мАч. Дизайн аппарата максимально спокойный, но при этом его нельзя назвать отталкивающим, аппарат приятен глазу. Единственный изыск, рифлёная кнопка блокировки, смотрится даже как-то неуместно в столь простом общем исполнении. Несмотря на огромные рамки, аппарат нетрудно использовать одной рукой, всё-таки экран тут не самый большой, всего 5", да и система заточена под одноручное управление. Динамик расположен на задней панели, чтобы он не перекрывался, есть бугорок, громкость средняя.

5" дисплей Inoi R7 имеет разрешение 1280х720 точек. Не самое высокое, но для комфортного использования его вполне достаточно. У экрана хорошая цветопередача (есть небольшая синева, но это общая болячка всех недорогих IPS) и высокие углы обзора. Диапазон изменения яркости не очень велик, солнечным днём на улице максимального значения может немного не хватать. Мультитач есть, а вот олеофобного покрытия нет. Иногда экран сходит с ума и начинает фиксировать фантомные касания. Само не проходит, но на время помогает блокировка-разблокировка.

Программное обеспечение

Как я уже говорил, Inoi R7 – один из немногих смартфонов не на Android, вышедших в этом году. Он использует операционную систему Sailfish OS, разработанную небольшой финской компанией Jolla. Она основана выходцами из Nokia, занимавшимися там созданием Maemo и MeeGo, но в итоге брошенных корпорацией при «смене платформы». Чем эксперимент с Windows Phone закончился для Nokia, мы знаем, но и у Jolla судьба не проще. Компания зарабатывает очень мало денег, но уже много лет кое-как поддерживает свою операционную систему. Сейчас она дошла до версии 2.1.1, имеющей название Jämsänjoki (Йямсянйоки). Раньше версии Sailfish OS назывались в честь финских озёр, теперь – в честь рек.

Sailfish OS обходится без каких-либо кнопок под экраном, управление смартфоном полностью жестовое. При этом в системе различаются просто свайп и свайп от края экрана. Свайпы от левого и правого краёв в любом месте системы ведут на домашний экран. Свайп от верхнего края открывает верхнее меню, а от нижнего – нижнее сетку приложений с вертикальной прокруткой. Свайп вправо используется для действия «назад», свайп вниз – для открывания «вытягиваемого меню» открытого в настоящее время приложения. Наличие вытягиваемого меню индицируется светящейся полоской вверху экрана.

Я назвал очень много меню, теперь пора объяснить, что на них есть. Экран блокировки очень простой, свайпом вверх с него можно открывать камеру, а в вытягиваемом меню есть три приложения на ваш выбор. Если стоит пароль, открыть их без ввода пароля не получится. Основной экран системы («Домашний экран») идеологически напоминает первые версии BlackBerry OS 10: там располагаются плитки открытых в настоящее время приложений, с которыми можно взаимодействовать. Прямо с домашнего экрана можно открывать новые вкладки в браузере, создавать заметки, новые сообщения и так далее. У некоторых приложений эти виджеты состоят из нескольких страниц, из-за чего получаются очень информативными. Удобно, что можно, например, смотреть последние вычисления в калькуляторе, не заходя в него.

Свайпом влево или вправо из главного меню можно попасть в окно событий. Там есть виджет погоды (можно убрать) и туда попадают все уведомления из приложений. По сути, аналог шторки из более распространённых ОС. В качестве вытягиваемого меню в окне событий – переключатели беспроводных соединений, ползунки яркости и громкости, кнопки быстрых действий и другие приятности. Их можно добавлять или убирать по своему выбору в «Настройках». Там же можно сделать так, чтобы окно событий открывалось по свайпу с левого края вместо домашнего экрана (тогда домашний экран останется только по свайпу справа).

Окей, если шторку заменяет окно событий, то что такое «верхнее меню»? Там есть кнопка блокировки смартфона, но это не главное. Главное: это меню, в котором можно менять атмосферы. Атмосферы – это вторая (после жестового управления) основная дизайнерская идея Sailfish OS. Каждая атмосфера состоит из обоев, основного цвета и набора рингтонов. При смене атмосферы меняется всё сразу: все приложения перекрашиваются в новый цвет, при звонке начинает играть другой рингтон, а фоном системы становится другая картинка. «Из коробки» есть около десятка атмосфер, их можно редактировать, можно и создавать свои на базе любого изображения. То же верхнее меню открывается при длительном удержании кнопки блокировки, только вместо кнопки блокировки в нём оказывается кнопка выключения (плюс можно добавить кнопку перезагрузки).

Что можно в целом сказать об интерфейсе Sailfish OS? Это безусловно самый красивый мобильный интерфейс, который я когда-либо видел. Отличные шрифты, гениальная идея атмосфер, полупрозрачные приложения, сквозь которые видно обои, красивейшие картинки «из коробки», великолепные анимации, единый стиль по всей системе, кнопки-лампочки, классно оформленные вытягиваемые меню – перечислять все преимущества внешности «рыбы-парусника» (так переводится слово Sailfish; это, к слову, самая быстроплавающая рыба в мире) можно очень долго. Но есть и недостатки. Интерфейс красив, но не очень удобен. Дело даже не в том, что он полностью жестовый – у меня есть большой опыт использования жестовой Ubuntu Touch, и она намного удобнее и понятнее. Нередко приходится задумываться на несколько секунд, в какую сторону свайпнуть, чтобы попасть туда, куда хочешь попасть. Очень часто хочется свайпнуть влево, чтобы отменить только сделанное свайпом вправо действие «назад», но это невозможно. Из любого места системы можно попасть в меню смены атмосфер, но только из окна событий – к часто используемым ползунку яркости и переключателю мобильных данных.

С самой системой разобрались, теперь давайте поговорим о приложениях! Изначально их в системе всего восемнадцать, причём только десять нельзя удалить. Можно удалить даже аудиоплеер («Медиа»). Впрочем, Ubuntu Touch все равно впереди: там можно удалить даже приложение камеры. Все программы выполнены в едином стиле и очень красиво выглядят, но ничего особо интересного с точки зрения функциональности я в них не нашёл, поэтому вместо подробных описаний отделаюсь скриншотами.

Поподробнее поговорить хочется только о «Настройках», там есть несколько важных и интересных моментов. Например, рассказывается про такой трюк: при динамической ориентации дисплея можно вращать телефон, удерживая палец на экране, и ориентация не будет меняться. Не можете удобно устроиться с телефоном из-за автоповорота? Поймали нужную ориентацию, повернули телефон с пальцем на экране и радуетесь жизни. Кстати, можно ставить постоянную альбомную ориентацию, чего нет в Android. Ещё один пункт, на котором стоит остановиться, – «Блокировка». Дело в том, что над вопросами безопасности в Jolla явно не заморачивались. Единственный способ, которым можно защитить телефон, – код длиной от пяти цифр. Но и этот код телефон может не запрашивать некоторое время после блокировки телефона (по умолчанию 5 минут, можно снизить до нуля). Если вы неправильно введёте пароль – тоже ничего страшного, количество попыток никак не ограничено. По умолчанию. Можно изменить, минимальное допустимое число попыток – четыре. Но тут надо быть очень осторожным: при превышении лимита неправильных вводов пароля телефон блокируется не на полчаса и не на сутки, а навсегда. Разблокировать его можно только через рекавери, к которому надо подключаться с компьютера через Telnet, инструкция есть на форуме Jolla Together.

Что насчёт сторонних приложений? Для их установки есть «Магазин», для входа в который нужен Jolla-аккаунт (создать его – не проблема). Правда, качать там особо нечего. Там нет официальных клиентов соцсетей, с неофициальными тоже беда (ВКонтакте нет), нет хорошего приложения карт, с играми тоже грустно. Я нашёл пару интересных вещей, понравившихся мне на Ubuntu Touch, но ни одной 3D-игры найти не смог. К счастью, приложения на смартфон можно ставить не только из «Магазина», но и откуда угодно ещё. Например, из гораздо более интересного стороннего магазина, называющегося Warehouse. Там ассортимент пошире, есть даже более-менее приличный клиент ВКонтакте, но и там всё довольно грустно.

Знаете, почему никто не разрабатывает софт под Sailfish? Дело не только в небольшой пользовательской базе (всего шесть приложений из Магазина загружены более 10 000 раз), но и в том, что операционная система поддерживает запуск Android-приложений. «Да это же решение всех проблем!» – скажете вы. Нет, не решение. Для Inoi R7 было сделано исключение, на нём запускать Android-приложения нельзя. Обойти это ограничение энтузиастам пока не удалось, хотя пытавшиеся были. Проблема не на уровне «Открытой мобильной платформы» и Sailfish Mobile OS RUS, они в теории Andorid-софт запускать умеют, проблема именно на уровне Inoi R7. Производитель осознанно ограничил возможности своего устройства, и это довольно странно. Объясняют это тем, что корпоративным пользователям, ради которых смартфон и создавался, важнее Sailfish-софт – только как это связано с убиранием Android-песочницы из ОС, непонятно.

Камера

Inoi R7 обладает 8-Мп камерой со светосилой f/2.1 и вспышкой. Стандартное приложение камеры довольно простенькое, из интересного в нём только возможность менять ISO вручную. Правда, диапазон невелик – 100, 200, 400. Аппарату хорошо даются только очень простые композиции. Пейзажи и кадры при не очень хорошем освещении получаются плохо. У снимков низкая детализация, нередки ошибки в определении баланса белого. Ещё один минус фотографий на Inoi R7 – обилие цветных шумов. Их очень много даже на тех снимках, которые сделаны днём.














Фронтальная камера имеет разрешение 5 Мп. Качество селфи – так себе. Вот наш редактор Евгений Макаров в новом для себя амплуа – мистер цифровой шум:

Видео пишется в 720p@30fps, при плохом освещении фреймрейт падает. Детализация роликов низкая. Стабилизации никакой. Фокусировка во время съёмки работает, но очень медленно – в среднем за десять секунд.

Производительность и тесты

Аппаратная основа Inoi R7 – чипсет Qualcomm Snapdragon 212 (4 ядра по 1,2 ГГц плюс GPU Adreno 304). В смартфоне 2 ГБ оперативной и 16 ГБ встроенной памяти, свободно 1,4 ГБ и 9,9 ГБ соответственно. Начинка, мягко говоря, слабая. Казалось бы, раз игр нет, то волноваться нечего, но нет. Производительности не хватает даже для тех задач, на которые Inoi R7 способен – для браузера, например. Я привык читать твиттер через Tweetdeck, но тут это было проблематично, ибо девайс жутко тупил при прокрутке. Лаги встречались и на других тяжёлых сайтах. Нагрев есть, но небольшой.

Ёмкость аккумулятора составляет 2500 мАч. «Открытая мобильная платформа» говорит следующее: «Экономия заряда мобильного устройства стала одной из ключевых задач при проектировании архитектуры Sailfish. В сравнении с другими операционными системами Sailfish потребляет меньше электроэнергии в типичных режимах работы». Значит, маленькая ёмкость – не так уж плохо? Увы, нет, это очень плохо. Разряд с 99% до 8% при показе SD-видео с максимальной яркостью стоковым плеером занял 4 часа 37 минут. Это примерно вдвое меньше, чем у среднестатистического современного Android-бюджетника. В обычных условиях смартфон при активной эксплуатации разряжается за сутки.

Выводы

Куда приплыла рыбка? Sailfish OS обладает красивейшим пользовательским интерфейсом, который, к сожалению, не очень удобен. Но даже к странной системе свайпов и неудачному расположению некоторых меню можно привыкнуть. Однако привыкнуть к тому, что твой смартфон почти ничего не умеет, намного тяжелее. Sailfish OS, особенно без Android-песочницы, всё ещё находится в том состоянии, в котором ей могут пользоваться только энтузиасты. И фраза «всё ещё» не значит, что это когда-нибудь изменится.

Что до самого Inoi R7, то в его преимущества можно записать только неплохой пластиковый корпус (главное – не нюхать) и качественный HD-дисплей. Камеры, железо и автономность устройства никак не соответствуют его цене в 11 990 рублей (продаётся только в «Байоне»). Даже если бы Sailfish OS была идеальна, а Android-приложения можно было бы запускать и все это хорошо бы работало, то посоветовать девайс все равно было бы тяжело (так что не поможет ему и планируемая версия с дуалбутом Android/Sailfish). Впрочем, провальным аппарат точно не станет. Сообщалось, что 15 тысяч экземпляров Inoi R7 уже купила «Почта России», а это солидная цифра для довольно дорогого смартфона неизвестного производителя. Так что на корпоративном рынке (я бы даже сказал B2G) смартфон ждёт успех, а на потребительском останется интересен только Sailfish (ради них продажи в «Байоне» и затеяны).

В этой статье я хотел бы рассказать о замечательном событии, произошедшем с 27 по 30 июля – летней школе Sailfish OS, организованной «открытой мобильной платформой» при поддержке университета Иннополис. Если вам интересна перспектива развития Sailfish OS, настоящего Linux на смартфонах или просто интересна еще одна сфера применения QML/C++ - прошу под хабракат.

Прежде всего хотел бы сказать, что для меня эта история с Sailfish OS началась 1 апреля 2016 года. Не шучу, именно в этот день я получил свой долгожданный Jolla на руки. И понеслось… Копание в ОС, чтение руководств, публикация пары статей на geektimes и первого собственного приложения в официальном магазине.

Однажды, сидя дома, читая Хабр, увидел пост-аннонс о Летней Школе Sailfish OS и сразу решил, что я должен там быть. Через пару недель я уже стоял в г. Иннополис на их главной улице – Университетской.


Картинки кликабельны.

Что это было за место! Что за сообщество разработчиков! Это было невероятно! Кхм… Ладно, отбросим эмоции, давайте по порядку.

27 июля

Это был день знакомств, день вступительных речей, день размещения…

Поселили участников в комфортабельные комнаты на двоих:

В комнатах было все необходимое для небольших перерывов между «порциями» кодинга: кровати, душ, кондиционер, стол. Единственное, в моей комнате было 4 тумбочки на двоих и ноль(!) стульев, я думаю, что Вы догадались как мы использовали 2 «лишние» тумбочки.

Почему не было стульев

Как нам объяснил представитель университета Иннополис, что этот кампус еще не до конца готов для студентов. Хм, а я бы пожил в таком «недострое».


С соседом мне особенно повезло, я жил со всеми уважаемым, повелителем патчей для Sailfish OS , Андреем Кожевниковым, более известным под ником CodeRus. У Sailfish OS как раз небольшая проблемка с документацией, в частности с ее структурой и недостаточным покрытием некоторых деталей и тут меня поселили с ходячей базой знаний по Sailfish OS, надеюсь, что моя радость на тот момент понятна? :) Спасибо, Андрей, за все исчерпывающие ответы на мои вопросы.

К 15.00 все собрались в аудитории №307, где мы фактически и обитали следующие 48 часов.

Мы слушали вступительные речи, общие слова о Sailfish OS, её перспективах в России, о роли «Открытой Мобильной Платформы». Ректор позвал учиться в Иннополис.

Потом выступали партнеры:

Вечером нас повели на экскурсию по городу Иннополис:

О городе Иннополис

Чтобы не перегружать статью отвечу кратко: город еще развивается, там живут сейчас примерно 2000 жителей, но все необходимое для комфортного проживания есть: дешевое жилье, супермаркет, футбольное поле, бассейн, медицинский центр, ясли, детский сад, школа и так далее. Посмотрим во что выльется этот «проект» в будущем, но пожелаем ему удачи и вернемся к нашей основной теме.

28 - 29 июля

С этого дня напряжение начинает нарастать в геометрической прогрессии!

С 09.00 начались лекции, перед нами выступали:

Кирилл Чувилин (представитель «Открытой Мобильной Платформы» по связям с сообществом, основатель MaemoWorld.ru) – Обзор Sailfish OS SDK + Мастер-класс разработки графического интерфейса приложения для Sailfish OS . Он рассказывал про особенности SDK, про то, как делать правильно интерфейсы для Sailfish OS, так как ОС выгодно отличается от других: почти все здесь выполняется свайпами, а не нажатием на экран, что требует некой сноровки от разработчика.

Андрей Васильев (представитель FRUCT) – Мастер-класс по работа с основным API Sailfish OS . Это был интересный доклад о том, как «дергать» GPS, управлять различными датчиками, воспроизводить звуки, фотографировать.

Павел Горянский (представитель «Открытой Мобильной Платформы») – аппаратная адаптация Sailfish OS . Павел рассказывал о том, как «завести» Sailfish OS на не поддерживаемых устройствах, что для этого нужно и т. д.

Андрей Кожевников (aka CodeRus, представитель сообщества) – сколько волка ни корми, он в лес смотрит мастер-класс по модификации Sailfish OS . О, это был очень занимательное выступление, на тему «как из Sailfish OS сделать MyOwn OS». Серьезно, благодаря QML можно почти полностью переписать интерфейс оригинала под себя! Надеюсь, что в будущем Андрей осветит эту тему лично, так как она достойна отдельной статьи.

Петр Вытовтов (aka Osanwe, разработчик нативного клиента для Vkontakte и анализатора Wi-Fi сетей, представитель сообщества) - мастер-класс по работе с сервисами распознавания речи . Проинформировал как можно использовать Yandex Speechkit на Sailfish OS.

Алексей Андреев (победитель хакатона Sailfish OS в Санкт-Петербурге, участник semiot.ru) – мастер-класс по работе с IoT-устройствами . Было приятно встретить «родственную душу» - человека, который тоже занимается Semantic Web.

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

FriendlyARM порт - проект по адаптации Sailfish OS на плату для разработчиков;
MyFirstProgram - инструментарий для взаимодействия смартфонов и роботехнических конструкторов, таких как ТРИК и Lego NXT;
Battery Stats - утилита для наблюдения за расходом аккумулятора;
GEO-location share - обмен данными о местоположении между устройствами;
Guitar Tuner - настройщик для гитары;
CryptoFish - шифрование файлов по паролю;
Suburban Trains - расписание электричек, основанное на данных Яндекса;
Погода - информация о погоде с учётом местоположения;
Killer - ролевая игра по мотивам психологической игры «Киллер»;
AppCleaner - удаление ненужных данных и приложений;
WatchFox - шифрование домашнего раздела пользователя;
CryptoContainer - защищённое хранение файлов в контейнере;
Timelapse - приложение для интервальной съемки фото и видео.

Да, нынче модны темы с приставкой «крипто», а если серьезно, многих волновала тема безопасности.

Моя же команда решила делать игру по мотивам ролевой игры Киллер. Определились с особенностями реализации:

Выбор жертвы происходит на сервере (в команде был один из создателей «Killer» под android, поэтому сервер уже был готов);
- Запросы и авторизация в Vkontakte для получения фотографии и имени жертвы;

- с помощью GPS программа указывает жертву на Google Maps;

В общем, планы были большие…

Что у нас получилось или как мы не выиграли хакатон, но приобрели огромный опыт

В своей команде я был ответственен за UI, поэтому часть статьи будет посвящена именно ему. Первом делом набросали примерный образ всех страниц (так в Sailfish OS называется каждое «окно») и способы переходов между ними:

Первое испытание началось со страницы выбора жертвы, для этого лучше всего подходил компонент Dialog, оказывается, что разработчики фреймворка Silica не предполагали, что страница с Dialog будет первой страницей приложения и из-за этого Cancel (свайп слева направо работал и выглядел не совсем корректно). Поэтому пришлось схитрить: первой страницей будет пустая страница, с которой будет быстрый переход на DialogPage (пустая страница прорисовывается очень быстро, поэтому пользователю такая «обман» не будет виден).

Исходный код первой страницы:

import QtQuick 2.0 import Sailfish.Silica 1.0 import "../js/server_request.js" as ServerRequest Dialog { id: dialogFirstPage property string name: "Вася" property string surname: "Пупкин" property string imagePath: "../images/avatarUnknown.png" property string uniqueKey: "Waiting..." onAccepted: { console.log("accepted") // Открываем новую страницу и передаем несколько переменных pageStack.push(Qt.resolvedUrl("SecondPage.qml"), { "name": name, "surname": surname, "imagePath": imagePath, "uniqueKey": uniqueKey}, PageStackAction.Animated) } onRejected: { console.log("declined") // Опять открываем эту же страницу pageStack.push(Qt.resolvedUrl("FirstPage.qml"), {}, PageStackAction.Immediate) // Делаем запрос к серверу, чтобы получить новую "жертву" ServerRequest.server_getNextRandomTargetId("34853940", callback_getNextRandomTargetId) } function callback_getNextRandomTargetId(responseText) { uniqueKey = responseText; } Column { anchors.fill: parent DialogHeader { acceptText: "Accept" cancelText: "Cancel" } Text { id: victimText width: parent.width horizontalAlignment: Text.Center color: Theme.highlightColor font.bold: true wrapMode: Text.Wrap font.pixelSize: Theme.fontSizeExtraLarge text: "Choose new victim:" } Image { id: avatar source: imagePath anchors.horizontalCenter: parent.horizontalCenter width: 400 height: 400 } Text { id: nameText width: parent.width horizontalAlignment: Text.Center color: Theme.highlightColor font.bold: false wrapMode: Text.Wrap font.pixelSize: Theme.fontSizeExtraLarge text: name } Text { id: surnameText width: parent.width horizontalAlignment: Text.Center color: Theme.highlightColor font.bold: false wrapMode: Text.Wrap font.pixelSize: Theme.fontSizeExtraLarge text: surname } Text { id: keyText width: parent.width horizontalAlignment: Text.Center color: Theme.highlightColor font.bold: false wrapMode: Text.Wrap font.pixelSize: Theme.fontSizeExtraLarge text: "Victim code:\n" + uniqueKey } } }
Исходный код «хитрости»:

import QtQuick 2.0 import Sailfish.Silica 1.0 import "pages" ApplicationWindow { // Если пользователь авторизировался, то загружаем FirstEmptyPage.qml (функция проверки пока не написана, поэтому эта страница будет всегда загружаться): initialPage: true ? Qt.createComponent(Qt.resolvedUrl("pages/FirstEmptyPage.qml")) : Qt.createComponent(Qt.resolvedUrl("pages/LoginPage.qml")) cover: Qt.resolvedUrl("cover/CoverPage.qml") allowedOrientations: Orientation.All _defaultPageOrientations: Orientation.All // После того как страница полностью подгрузилась открываем сразу нашу настоящую первую страницу: Component.onCompleted: { // immediate -> без анимации pageStack.push(Qt.resolvedUrl("pages/FirstPage.qml"), {}, PageStackAction.Immediate) } }
Дальше все пошло легче, авторизацию в Vkontakte сделал с помощью WebView.

import QtQuick 2.0 import QtQuick.LocalStorage 2.0 import Sailfish.Silica 1.0 import "../js/auth.js" as AuthJS import "../js/storage.js" as StorageJS Dialog { id: loginPage function checkUrl(url) { if (AuthJS.checkUrl(url) !== 1) { console.log(AuthJS.accessToken) StorageJS.storeSettingsValue("access_token", AuthJS.accessToken) StorageJS.storeSettingsValue("user_id", AuthJS.userId) loginView.stop() loginPage.close() } } SilicaWebView { id: loginView anchors.fill: parent url: "https://oauth.vk.com/authorize?" + "client_id=4803503" + "&scope=messages,video,wall,audio,friends,photos,offline" + "&redirect_uri=https://oauth.vk.com/blank.html" + "&display=mobile" + "&response_type=token" onUrlChanged: checkUrl(url) } }
В реализации WebView очень помог код из клиента для VK – Kat . Спасибо автору за замечательное приложение!

Затем на очереди, была страница «Wanted», по содержанию она во многом похожа на DialogPage, но используется компонент PullDownMenu для открытия карты и PullUpMenu для «убийства». Использование PullDownMenu и PullUpMenu:

import QtQuick 2.0 import Sailfish.Silica 1.0 Page { // ... // PullDownMenu и PushUpMenu можно использовать только в SilicaFlickable, SilicaListView или SilicaGridView SilicaFlickable { anchors.fill: parent PullDownMenu { // Разукрашиваем меню: backgroundColor: "green" highlightColor: backgroundColor // При свайпе сразу будет выбираться option: quickSelect: true MenuItem { text: "Open map" onClicked: { console.log(qsTr("Option clicked")) pageStack.push(Qt.resolvedUrl("MapPage.qml")) } } } contentHeight: column.height Column { // ... } PushUpMenu { backgroundColor: "red" highlightColor: backgroundColor quickSelect: true MenuItem { text: "Kill!" onClicked: { console.log(qsTr("Option clicked")) pageStack.push(Qt.resolvedUrl("EnterCodePage.qml"), {"uniqueKey": uniqueKey}) } } } } }

Запросы в Vkontakte для получения фотографии и имени жертвы;
- «Убийство» «жертвы» с помощью «выстрела» по Bluetooth;
- демон для отслеживания местоположения игрока.

А также провели не самую лучшую презентацию приложения… Но у нас был UI, которым, по крайней мере, лично я реально гордился (хоть он был и с небольшими багами…). Это был колоссальный шаг вперед для меня. До поездки я мог создавать только 1-2 страничное приложение с очень примитивной логикой, к примеру приложение «Chance.»:


После хакатона я почувствовал в себе силы создавать намного более интересные многостраничные программы.

29 июля. Вечер

После завершения хакатона повезли в боулинг-клуб, где всех нас ждал банкет, общение и награждение. После боулинга мы долго не шли спать, обсуждали итоги хакатона, размышляли о Sailfish OS, говорили по душам.

30 июля

Сразу после завтрака организаторы обсудили с участниками пожелания и идеи для развития Sailfish OS. Потом, на прощание, «вывезли в люди» - организовали экскурсию на остров-город Свияжск. После реально отличной экскурсии пришла пора прощаться – Летняя Школа Sailfish OS подошла к концу.

Заключение

Это увлекательное приключение закончилось, потому было немного грустно, но в то же время сердце теплилось от воспоминаний со сколькими безумно интересными людьми познакомился, сколько эмоций и опыта получил. И как интересен этот мир! Можно не выиграть хакатон, провести презентацию приложения не самым удачным образом, проиграть, но получить взамен колоссальный опыт, опыт намного бОльший, чем при победе!
В общем, я ехал домой с твердой уверенностью, что будет моим большим IT-хобби.

Бонус №1

Пара советов для тех, кто еще не участвовал в хакатонах:

Продумывайте и делайте презентации своих идей/творений как можно качественнее и выступайте эффектней. От этого действительно(!) зависит многое;

Четко сформулируйте для себя и аудитории задачу минимум и максимум.

Похоже на то, что рынок мобильных технологий наконец-то выходит из застоя. Он больше не состоит на 90% из 2-х гигантских компаний, на которые со стороны подобострастно глядят мелкие игроки. Производители перестали штамповать внешне одинаковые моноблоки и начали задумываться о том, чем бы действительно удивить покупателей.

В делах программных тоже обнаруживаются зачатки конкуренции. Триумвират в составе Android, iOS и Windows Mobile того и гляди рухнет под напором менее известных «операционок» — Firefox OS, Tizen OS, и, конечно же, Jolla Sailfish OS. У последней ОС наибольшие шансы взобраться на пьедестал, ведь в ней заинтересованы сразу 2 крупные державы – Россия и Китай. Откуда же взялась Sailfish Mobile OS и чем она лучше популярных операционных систем, вы узнаете из этой статьи.

В 2011 году два технологических гиганта Nokia и Intel в партнёрстве решили создать операционную систему, отличительной чертой которой было умение адаптироваться под любые требования пользователя. Так появилась MeeGo – крайне любопытная «операционка», которая использовалась всего на одной модели смартфона, Nokia N9.

У российских юзеров было мало возможностей познакомиться с MeeGo, потому что Nokia N9 не продавался в отечественной рознице. За рубежом MeeGo получила много положительных отзывов и от рядовых пользователей, и от экспертов – но всё равно быстро «канула в Лету». Nokia отказалась развивать эту ОС и решила сосредоточиться на Windows Mobile, которая показалась ей более перспективным проектом.

Однако от Nokia откололась группа энтузиастов, образовавшая новую компанию Jolla и занявшаяся развитием MeeGo, на базе которой и выросла Sailfish Mobile OS. Бета-версия Sailfish OS 1.0 появилась в ноябре 2013 года. Спустя 2 года Jolla выпустила вторую версию «операционки», актуальную и по сей день.

В 2015 году с Jolla произошло ещё одно значимое событие: в компании в роли главного акционера появился русский предприниматель Г. Берёзкин, представитель топ-200 самых успешных бизнесменов России. Берёзкин запустил на территории РФ фирму ОМП (Открытая Мобильная Платформа), целью которой оказалось создание Sailfish Mobile OS RUS – русской «народной» операционной системы, основанной на программных компонентах оригинальной Sailfish.

Осенью 2016 года Sailfish Mobile OS RUS была завершена и добавлена в реестр отечественного ПО при Минкомсвязи. Другими словами, появилась исконно русская версия финской «операционки» Sailfish.

Чем хороша Sailfish OS?

У Sailfish есть множество достоинств – вот лишь некоторые из них:

  • Наличие сразу 2 магазинов приложений . Google Play на Sailfish нет, зато в меню можно найти иконки Яндекс.Store и собственного магазина Jolla. В Яндекс.Store доступны Android-приложения (которые совместимы с Sailfish), а в магазине Jolla предлагаются только те программы, которые написаны специально под финскую «операционку». Разумеется, таких пока немного – поэтому интеграция с Android-приложениями выглядит разумным решением.
  • Полная свобода при работе с файлами. Sailfish – своего рода антипод iOS: эта ОС полностью открытая . Пользователь может без всяких медиакомбайнов забрасывать в память смартфона файлы любых типов и открывать их посредством приложений от Jolla. При необходимости удастся даже активировать режим разработчика или запустить полнофункциональный Терминал.
  • Оригинальный интерфейс. Интерфейс Sailfish может показаться пользователю, привыкшему к iOS или Android, диковинным. Многие операции выполняются не так, как на Android и iOS – например, чтобы поменять язык клавиатуры, придётся нажать и держать кнопку пробела. Однако, если пользователь даст Sailfish шанс и попользуется ей хотя бы неделю, то обнаружит, что управлять смартфоном с этой ОС даже удобнее – хотя бы потому что она распознаёт уйму жестов.
  • Минимум программ «по умолчанию». В отличие от Android и iOS Sailfish не обязует юзера пользоваться предустановленной навигацией или почтой и ничего не навязывает. По умолчанию в меню только самое необходимое – «Контакты», «Галерея», «Сообщения», «Браузер» и так далее.
  • Интеграция со множеством облачных сервисов. Сервисов, в которые Sailfish способна выгружать данные – не менее десятка. Пользователь сам может выбрать, к какому из них прибегнуть – есть популярные варианты, вроде Google Drive, и более экзотические (Flickr).
  • Повышенная безопасность. Sailfish поддерживает шифрование на уровне операционной системы и может похвастать сильными алгоритмами MDM. Именно по этой причине госсектор России, а также некоторые крупные корпорации «заглядываются» на финскую ОС.

На Sailfish 2 появилась функция записи звонков. Это тоже можно отнести к достоинствам «операционки», потому что, например, на iOS запись телефонных переговоров встроенными средствами выполнить невозможно – Apple считает, что фиксация звонков нарушает право человека на конфиденциальность личных данных.

Есть ли у Sailfish недостатки?

Недостатков Sailfish OS тоже не лишена. В числе главных пользователи называют следующие:

  • Отсутствие клавиатуры Swipe.
  • Посредственная интеграция приложений друг с другом. На Android, скажем, снимок из галереи можно отправить куда угодно – хоть в мессенджер, хоть в «облако». Sailfish подобным похвастать не может.
  • Отсутствие голосового управления.

Все описанные недостатки – из разряда устраняемых. Так что вполне возможно, что Jolla избавит от них Sailfish OS с ближайшими обновлениями.

Какие телефоны на Sailfish можно купить?

Гаджетов, работающих под управлением Sailfish, пока совсем немного – со всеми ними можно познакомиться на официальном сайте компании Jolla .

Первый смартфон с «операционкой» Sailfish вышел ещё в 2013 году и назван был так же, как компания-производитель – Jolla . Вот небольшой ролик, представляющий девайс:

Ещё один гаджет на Sailfish Jolla представила в дуэте с молодой индийской компанией Intex на выставке MWC 2016. Смартфон получил название Aqua Fish и дизайн, почти полностью скопированный с первого Jolla.

Возможно, гаджет Aqua Fish добился бы успеха в России – для своей небольшой цены (около 80 долларов) у него очень приличные характеристики. Однако на территории РФ он официально не продаётся. Заказать аппарат от Intex можно разве что на eBay .

Операционную систему Sailfish в 2016 году получил ещё один крайне любопытный девайс – Turing Phone , названный в честь известного британского математика. Turing Phone интересен тем, что состоит из так называемого ликвидморфиума – материала, который прочнее, чем титан и сталь.

Впрочем, Тьюринг едва ли одобрил бы то, что его имя фигурирует в столь сомнительном проекте. Компания Turing Phone оскандалилась по всем фронтам: мало того, что начала рассылать гаджеты по предзаказам спустя целый год (!), так ещё и отправляла вовсе не то, что обещала. Изначально на Turing Phone должен был быть Андроид; когда и почему производитель решил прибегнуть к Sailfish – загадка.

В том же 2016 году компания «Открытая мобильная платформа» проанонсировала первый аппарат на Sailfish OS RUS «Ермак» с феноменальной стоимостью в 2 тыс. долларов. «Ермак» отличается выдающейся надёжностью – в частности, он способен передавать информацию по закрытым каналам связи.

От продаж «Ермака» «открестились» все крупные сети, разумно посчитав, что с таким ценником смартфону на массовом рынке делать нечего.

В 2017 году фирма ОМП всё же выпустила общедоступный смартфон, работающий на русской версии Sailfish – INOI R7 . Этот гаджет отличается высокой степенью защиты персональных данных, а потому позиционируется как смартфон для корпоративного сектора.

Приобрести INOI R7 можно в интернет-магазине Buyon – стоимость аппарата составляет около 12 тыс. рублей.

Можно ли установить Sailfish OS на смартфон самостоятельно?

На многие из современных смартфонов можно установить неофициальную прошивку Sailfish – полный перечень гаджетов . Однако задача эта не из простых: придётся задействовать утилиты Android SDK, разблокировать действующий загрузчик и ставить новый. Человеку, который не считает себя продвинутым юзером, лучше не лезть в эту «кроличью нору».

Есть мнение, что скоро производители сделают возможность перехода с одной «операционки» на другую официальной . Пока же официальный «переезд» доступен только владельцам Sony Xperia X – и то на возмездной основе. Согласно действующему соглашению между Jolla и Sony, за замену Android на Sailfish пользователю Xperia X придётся отдать почти 50 евро.

Будущее — за Sailfish?

Sailfish OS выглядит перспективной – есть ряд причин считать, что у этой «операционки» хорошее будущее:

  • Sailfish активно сотрудничает с японским «гигантом» Sony. На MWC 2017 компании вместе презентовали Sony Xperia X, работающий на финской ОС. В августе же вообще появилась новость об Xperia X, который работает на 2-х «операционках» сразу . Обзавестись сильным партнёром было очень важно для Jolla.
  • На той же выставке Jolla вступила в сотрудничество с Sailfish China – фирмой, которая занимается разработкой ПО для смартфонов, умных часов и прочих гаджетов. Согласно договору между фирмами китайцы должны инвестировать в развитие Sailfish 250 млн. долларов.

Возможности Sailfish в плане защиты данных привлекли не только китайцев, но также Россию и Индию. Если эти два государства продолжат вкладывать деньги в развитие финской «операционки», то за её будущее уж точно переживать не придётся.

Компания Jolla, занимающаяся разработкой Sailfish OS, неожиданно для многих анонсировала третью версию своей операционной системы. Презентацию провели в Барселоне в рамках MWC 2018.

В связи с этим мероприятием мы решили продолжать рассказывать про альтернативные Android и iOS мобильные операционные системы. Ранее мы рассмотрели Теперь очередь дошла и до Sailfish.

Причём тут Nokia и Intel?

Это долгая история. Началась она 13 лет назад. Тогда, в 2005 году, старая-добрая Nokia славилась своими , а модель ещё не славилась своей неубиваемостью. В те майские дни середины нулевых финский производитель презентует свой карманный компьютер Nokia 770. Это было революционное устройство: по Wi-Fi оно ловило интернеты! Тут были VoIP и сервисы Google Talk.

Планшет поддерживал протокол Jabber! Боже, сколько в этих словах ностальгии! В продажу планшет поступил в ноябре 2005 года. 770-й работал на первой версии Maemo - 2005OS. Позже вышли Nokia N800, N810, а затем и N900. Все они были под управлением Maemo.

Интерфейс Maemo на Nokia N900

Из Финляндии перемещаемся в США. В 2007 году выходят нетбуки с процессорами Intel Atom. Компания хочет продвигать эти устройства, для чего необходима не очень требовательная к ресурсам операционная система. Windows не подходит - Microsoft тупо неинтересен Atom. Тогда возникает проект Moblin. Название является сокращением от Mobile Linux. Как нетрудно догадаться, новая операционная система была рассчитана на мобильные устройства. Она базировалась на открытом исходном коде Linux.


Интерфейс Moblin

Восемь лет назад, в феврале 2010 года, Nokia и Intel объявили об объединении усилий. Совместно разрабатываемая операционная система получила название MeeGo. Тогда было объявлено, что Nokia N8 станет последним смартфоном на Symbian OS (другая операционная система Nokia, которая была установлена на большее количество устройств), а N9 выйдет уже под управлением MeeGo.


Nokia N9 на MeeGo

Это было очень круто: пользователи могли выбрать между устройствами на iOS, Android, Windows Phone, MeeGo или вообще купить BlackBerry! Но, к сожалению, такая идиллия длилась недолго.

В 2011 году Nokia неожиданно закрыла MeeGo. Проект перестали развивать, несмотря на популярность Nokia N9. Таким образом, первый смартфон на этой версии ОС стал и последним.

Часть команды, занимавшаяся разработкой MeeGo, покинула Nokia для создания собственной компании. Её назвали Jolla. Команде не удалось получить в своё ведение большинство патентов на операционную систему, так что многие её элементы пришлось разрабатывать заново. Например, дизайн.

На чём Jolla пыталась выехать?

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


На интерфейсе также делали особый акцент. Так, Марк Диллон, сооснователь компании, говорил следующее: «Интерфейс Sailfish OS уникален тем, что использование устройства возможно только при помощи жестов». Из любого приложения проводите свайп вправо - откроется центр уведомлений. Снизу вверх - открывается список установленных приложений. Жестов было очень много. Все они заменяли привычные кнопки. К этому сейчас пытаются прийти производители Android-смартфонов, и отказаться от наэкранных кнопок, «съедающих» значительную часть экрана.

В 2012 году компания анонсировала свой смартфон Jolla. Он поступил в продажу через год. Аппарат отличался необычным внешним видом. Казалось, что он склеен из двух разных смартфонов. Чуть позже был анонсирован планшет Jolla Tablet, но тут у компании случились финансовые трудности. Планшет выпущен не был.


Чем живёт Jolla сейчас?

С тех пор компания решила сосредоточиться на своей операционной системе Sailfish OS. Например, непосредственно внутри Jolla велась разработка прошивки для смартфонов Nexus 4 и OnePlus One.

В 2016 году компания лицензировала Sailfish OS для российской «Открытой мобильной платформы». Совместными усилиями была выпущена Sailfish Mobile OS RUS. В списке поддерживаемых устройств - смартфон для госслужащих и корпоративных клиентов «Ермак ОМП», а также российский смартфон INOI R7. Подобные российской лицензионной ОС операционные системы существуют в Бразилии, Китае и других странах.


Ермак ОМП

Третья версия Sailfish будет рассчитана на большее количество устройств. На MWC анонсировали её появление осенью на упомянутом выше INOI R7, Sony Xperia XA2, КПК Gemini PDA, а также на неназванных кнопочных телефонах с поддержкой 4G. В Sailfish OS 3 сделают акцент на безопасности. Например, в случае потери или кражи устройства пользователь сможет дистанционно стереть все данные.

Операционная система поддерживает Android-приложения, но только в том случае, если пользователь заплатил за Sailfish OS 50 долларов.


Sony Xperia XA2 с установленной Sailfish OS

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

Основатель энергохолдинга ЕСН Григорий Березкин, которому принадлежит доля в финской Jolla (создатели системы Sailfish), пообещал выпустить смартфоны на российской ОС уже в 2016 году, пишут «Ведомости».

Производители устройств и ритейлеры сомневаются в потенциале таких устройств на рынке.

В начале мая глава Минкомкомсвязи Николай Никифоров представил «Открытая мобильная платформа», которая на 80% принадлежит Берёзкину (ещё 20% контролирует Михаил Верозуб), как разработчика отечественной ОС для смартфонов. ОМП расположилась в Иннополисе и сейчас ищет разработчиков, технических писателей и специалистов по тестированию.

«Основной задачей продукта является успешная конкуренция с операционной системой Android на рынке бюджетных мобильных устройств», - говорится в описании компании.

Берёзкин сообщил «Ведомостям», что смартфоны на этой ОС предназначены не для госсектора, а для широкого рынка, причём они будут доступными по цене. Эти устройства появятся в России в течение ближайших несколько месяцев, уверен он. Сейчас создатели системы ведут переговоры с поставщиками, однако их Берёзкин назвать отказался.

Российская мобильная ОС будет основана на базе финской Sailfish. Разработчики из Иннополиса переведут интерфейс на русский язык, портируют популярные приложения и в целом доработают экосистему, говорит Берёзкин.

Гендиректор российского офиса Lenovo Глеб Мишин в разговоре с «Ведомостями» сказал, что компания обсуждала сотрудничество с Jolla. По его словам, технических сложностей в выпуске смартфонов на Sailfish нет, но перспектив у этой системы на пользовательском рынке почти нет, так как трудно убедить пользователя перейти с Android на её подобие. Lenovo может быть заинтересована в проекте, если для него будет создан государственный рынок - с помощью необходимой сертификации и ограничений госзакупок Android, считает Мишин.

Источник «Ведомостей» на рынке ритейлеров выразил сомнение в успешности устройств с российским вариантом Sailfish - покупатель привык к бюджетным устройствам на Android, а конкурировать с китайскими производителями будет сложно. Исполнительный вице-президент «Евросети» Виктор Луканин назвал запуск новой ОС делом «сложным и вряд ли перспективным». В «Связном» сказали, что не получали предложений от производителей устройств на Sailfish.

В начале июня 2015 года Jolla стала в конкурсе Минкомсвязи на импортозамещение ОС для мобильных устройств. В консорциум разработчиков тогда вошли ЕСН, производитель ПО ЭСК и «Яндекс». Разработка отечественной ОС была оценена в 2,225 млрд рублей, из них 1,89 млрд рублей должно было выделить государство. Минэкономразвития выдачу таких грантов, в Минкомсвязи сказали «Ведомостям», что с тех пор компания не обращалась за деньгами.

Статьи по теме: