Самая дырявая ОС. Сравниваем безопасность iOS, Windows, Android, Sailfish и Tizen

В «Ведомостях», что через несколько месяцев, но до конца 2016 года, в российской розничной продаже появится недорогой телефон на альтернативной операционной системе. Таким образом старт продаж« телефона Березкина» на Sailfish OS в национальной рознице совпал по срокам с обещанным началом российских продаж индийского телефона Aqua Fish. Это единственный выпущенный фабриками телефон на свежей Sailfish OS второй версии. Смартфон производится индийской Intex Technologies. В марте 2016 года директор(по данным газеты The Times of India — владелец) Intex Technologies Кешав Бансал пообещал, что летом его телефоны на Sailfish OS попадут в Африку, Центральную и Южную Америку, а в России, как выяснил ComNews.ru ещё зимой 2016, они окажутся до конца начавшегося года. На момент мартовской публикации ComNews.ru у индийца не было российского партнёра-дистрибьютора, но индийский предприниматель его искал.

Телефон Aqua Fish компании Intex Technologies:

Березкин контролирует 80% компании« Открытая мобильная платформа»(ОМП). Как поняли« Ведомости» на прошлой неделе, именно эта компания основателя энергохолдинга ЕСН, поможет сбыться желанию министра связи России Николая Никифорова о независимой ОС. ОМП выпустит смартфоны на операционной системе, условно независимой от Америки. Создаваемая в мобильной« Платформе» ОС будет основана на Linux. Подавляющее число правок в ядро Linux делают глобальные корпорации уровня Intel, Samsung, IBM и др. — российских разработчиков в статистически значимых количествах у Linux почти нет. Российскую мобильную операционку, как и привычную энтузиастам Sailfish OS, её татарстанские авторы не будут делать« открытой». Поэтому название« компании Березкина» — «Открытая мобильная платформа» — пока имеет лишь гипотетическое прочтение, как и независимость операционки от глобальных авторов Linux. Тем не менее министр Никифоров желающих присоединиться к разработке глобальной мобильной ОС, где значительная часть кода будет российской. Этой разработкой Иннополиса через минуту после министерского анонса заинтересовался директор по внешним коммуникациям в Rambler&Co: «наша мобильная разработка могла выполнить часть работ, что станет и для нас бесценным опытом». Заявлений о присоединении к проекту других значимых российских it-игроков пока не было, хотя с разработчиками Sailfish много лет знакомы в «Яндексе». 3 года назад российский поисковик отдал Sailfish свой« магазин приложений».

У Минкомсвязи РФ есть официальная возможность заплатить небольшие деньги(двадцать-тридцать десятков миллионов долларов, или 1,89 млрд руб.) за создание российской мобильной операционной системы, однако по словам представителя Минкомсвязи« Ведомостям», компания Березкина за финансовой поддержкой в министерство не обращалась. Напротив, как писал ComNews.ru со ссылкой на Антти Саарнио(сооснователь и председатель совета директоров Jolla, разработчик мобильной операционной системы Sailfish), ещё в декабре 2015 российская Группа ЕСН сама стала основным источником финансирования и крупнейшим акционером Jolla — причём суммарные инвестиции других инвесторов в Jolla на тот момент уже превысили $70 млн(это более чем в 2 раза больше, чем теоретические 1,8 млрд руб. из бюджета российского министерства).

Березкин предположил в «Ведомостях», что его разработчики(они будут работать в татарстанском, временно , Иннополисе) доработают Sailfish для нужд российских пользователей. Теоретически в этой операционке уже много лет есть русский язык в интерфейсах, но Березкин пообещал« перевести интерфейс на русский», а так же разработчики ещё и «поработают над экосистемой и портируют на Sailfish популярные приложения». В ноябре 2013 года финская компания-разработчик смартфонов Jolla Yandex.Store вместо Google Play в качестве своего магазина приложений, однако о том, что правообладатели тех самых« приложений» уже готовы к тому, что их будут« портировать» из Google Play в альтернативные магазины, громких анонсов пока не было.

Спецификации Aqua Fish компании Intex Technologies: дисплей 5 дюймов с разрешением 720×1280 пикселей, процессор 1.3GHz, RAM 2GB, общий объём памяти 16GB, стоимость смартфона, по разным данным, в пересчёте с индийских рупий — около 120 долларов США или 100 евро. Производитель телефона Intex Technologies занимает 10% индийского рынка мобильных телефонов, что в абсолютных цифрах обозначает 3 млн проданных за месяц аппаратов, из которых 1 млн приходится на смартфоны.

Компания 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 будет развиваться как альтернативная операционная система и однажды найдёт свою нишу, которую будет уверенно держать.

Похоже на то, что рынок мобильных технологий наконец-то выходит из застоя. Он больше не состоит на 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 в плане защиты данных привлекли не только китайцев, но также Россию и Индию. Если эти два государства продолжат вкладывать деньги в развитие финской «операционки», то за её будущее уж точно переживать не придётся.

В этой статье я хотел бы рассказать о замечательном событии, произошедшем с 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

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

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

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

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

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

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

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

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

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

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

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

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

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то