Обзор операционной системы Sailfish OS. Что такое Sailfish OS и зачем она нужна

27.04.2019 Фото и видео

Instructors

Join this course

Join this course

Expected time to complete: 6 hours

Language: Русский

Certificate: Not issuing

Share this course:

Https://сайт/2341

About the course

Курс позволит слушателям познакомиться с основами разработки для Sailfish OS., операционной системы для мобильных устройств и планшетов, основанной библиотеках и ядре Linux. Её ключевыми особенностями являются: высокая производительность, низкие требования к аппаратным ресурсам, бережное отношение к персональным данным пользователей. В основе проекта лежат платформа Mer и библиотеки Qt.

В течение курса вы узнаете о том, как разрабатывать приложения под мобильные устройства, работающие на Sailfish OS. Освещены вопросы установки SDK для начала разработки, рассмотрены инструменты разработчика. Курс познакомит слушателя с основами разработки с использованием библиотек Qt и возможностями конструирования интерфейсов на декларативном языке QML с использованием библиотек Qt Quick и Sailfish Silica.

Цель курса – дать понимание основ разработки под операционную систему Sailfish OS. После его изучения вы сможете разработать и опубликовать собственные приложения.

Материалы курса подготовлены при поддержке компании «Открытая Мобильная Плаформа».

This course is entirely free. All content is available now.

  • Разработка мобильных приложений ,
  • Разработка под Sailfish OS ,
  • Разработка под iOS
  • Привет, Хабр!

    На днях в офис e-Legion попал очаровательный смартфон, цвета #F9403E. По опознавательным знакам удалось установить его модель - Jolla C и операционку - Sailfish OS. Сайт производителя снабдил нас данными о характеристиках устройства и предоставил информацию о том, с чего начинать разработку.

    Под катом вы узнаете о том, как происходил процесс создания, отладки и установки мобильного приложения для Sailfish ОС.

    Характеристики для смартфона 2016 не выдающиеся, но ведь дело не только в железе, но и в том, как реализован софт.

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

    Среда разработки

    Когда я начинал разработку для iOS, пришлось столкнуться с некоторыми сложностями. Наличие устройства под управлением Mac OS X - обязательное условие для XCode. У меня его не было. Варианта было два: хакинтош или виртуальная машина.
    Теперь же macOS является моей основной операционной системой, поэтому наличие на сайте Jolla SDK, протестированного под Mac OS X, меня приятно удивило. А флешка с установщиком Windows так и осталась пылиться в столе.

    Также заявлена поддержка и других платформ:

    • Ubuntu 14.04 32/64 bit
    • Windows 8 32/64 bit
    • OS X 10.9.2

    Также он служит для оформления приложения в цветах, соответствующих основной выбранной для смартфона теме.

    Label { text: "Hello habrahabr!" color: Theme.highlightColor x: Theme.horizontalPageMargin width: parent.width - x*2 font.pixelSize: Theme.fontSizeSmall wrapMode: Text.Wrap }

    Концепция чем-то напоминает использование UIAppearance из iOS, только настройки не ограничены рамками приложения.

    Создавать интерфейс из стандартных элементов иногда даже проще, чем в iOS. Создаем кнопку, указываем положение и смещение относительно других элементов. Готово. Пожалуй, с той же легкостью мне удалось работать с интерфейсом только начиная с iOS 9, когда был добавлен класс NSLayoutAnchor .

    К сожалению, не всё так хорошо с кастомизацией - в некоторых случаях придётся создавать элемент самостоятельно. Также нарекания вызвала реализация SilicaWebView , который так и не удалось использовать в приложении, компонент постоянно падал при попытке отображения информации. Вместо этого я использовал стандартный WebView , входящий в состав QtWebKit .

    При работе с web возникли и другие проблемы. Я запустил приложение на следующий день после начала разработки и вместо списка новостей увидел пустой экран. Несколько часов ушло на поиски решения проблемы. Как оказалось, приложение и встроенный в ОС браузер перестали загружать данные по HTTPS. Пару минуты меня мучила совесть, после чего HTTPS превратился в HTTP.

    Function requestUrl(source) { var url = "http://newsapi.org/v1/articles?" url += "source=" + source url += "&apiKey=" + apiKey return url } if (status === XMLHttpRequest.DONE) { var objectArray = JSON.parse(req.responseText); if (objectArray.errors !== undefined) { console.log("Error fetching tweets: " + objectArray.errors.message) } else { for (var key in objectArray.statuses) { var jsonObject = objectArray.statuses; news.append(jsonObject); } } if (wasLoading == true) { newsObject.isLoaded() } }

    Что касается остальных модулей приложения, их реализация не вызвала особых сложностей. Берём зарекомендовавший себя паттерн MVC, добавляем немного биндинга, щепотку делегирования, обильно посыпаем анимацией, перемешиваем… Получаем на выходе новостное приложение, написанное за пару ночей в попытках попробовать себя в разработке под новую платформу.

    Эмулятор и реальный смартфон

    Как я писал ранее, процесс запуска приложения практически не вызвал проблем. Перед установкой SDK размещаем на компьютере поддерживаемую версию VirtualBox, а установщик позаботится обо всём остальном.
    Далее выбираем платформу для запуска, жмём кнопку Start и запускаем приложение.

    Работа эмулятора не вызывает нареканий: всё происходит стабильно и быстро. В своё время мне выпал шанс поработать с одной из первых версий эмуляторов Android, 5-минутный запуск которого вызывал боль и приступы паники. Да, сейчас дела у него обстоят гораздо лучше, но осадок остался.
    Небольшие проблемы, правда, возникли при многократном запуске приложения. Старые инстансы приложения не завершаются, в результате чего у вас оказывается 5-9 одновременно запущенных экземпляров программы. После достижения некоторого максимального числа новая версия не стартует, приходится завершать старые экземпляры вручную.

    Запуск отладки на устройстве занял чуть больше времени. Без изучения документации процесс оказался интуитивно понятным. Побродив по настройкам и понажимав все подходящие, кнопки, я обнаружил возможность запуска приложения на устройстве с указанным IP-адресом. Подключил телефон к WiFi-сети, ввёл адрес и снова нажал на Start. Две минуты ожидания, и моя программа запустилась на Jolla C. Apple услышала наши молитвы и связка Xcode 9 + High Sierra + iOS 11 позволит нам творить такие же чудеса.

    Впечатления

    Не буду рассказывать о перспективах данной платформы в России, на эту тему и так хватает статей, да и начинать очередной холивар не хочется.

    Как пользователю мне понравилась отзывчивость устройства, возможность взаимодействовать с приложением прямо с главного экрана, изменение оформления всех приложений после изменения главной темы и интуитивно понятный интерфейс.

    12 июля 2016 в 17:56

    Начало разработки для Sailfish OS

    • Разработка мобильных приложений ,
    • Разработка под Sailfish OS
    • Tutorial

    Для написания приложений для платформы Sailfish OS используется язык С++ и библиотеки Qt, а также язык QML для описания графического интерфейса приложений. Поэтому, если вы уже имеете опыт написания приложений с использованием Qt и QML, разработка для Sailfish OS не вызовет у вас затруднений. Кроме того, Sailfish OS позволяет разрабатывать нативные приложения на языке Python. Однако, данная тема выходит за рамки данной статьи и не будет в ней описана (подробнее про это можно почитать, например, ).

    Как и для других мобильных платформ, разработка для Sailfish OS ведется с использованием SDK, предоставляемого создателями платформы. SailfishOS SDK включает в себя:

    • QtCreator - IDE, в которой собственно и предлагается вести весь процесс разработки.
    • Mer Build Engine, который необходим для сборки приложений.
    • Эмулятор Sailfish OS.
    • Примеры, руководства и документация к API.

    Mer Build Engine и эмулятор платформы поставляются в виде образов виртуальных машин для VirtualBox. Однако, сам VirtualBox в состав SailfishOS SDK не входит. Поэтому, перед непосредственной установкой SDK, необходимо вначале установить VirtualBox версии не ниже чем 4.1.18. Кроме того, при работе в Windows, перед установкой SDK так же необходимо установить пакет Windows Microsoft Visual C++ 2010 redistributable (x86).

    Сам SailfishOS SDK доступен для Linux, Windows и Max OS X, его можно . SDK поставляется в виде графического инсталлятора, поэтому установка SDK не вызывает никаких трудностей. Однако, при установке вас спросят альтернативный путь для проектов. Этот параметр необходим для того, чтобы виртуальная машина с Mer Build Engine имела доступ к исходным кодам вашего проекта. По умолчанию это ваша домашняя директория. В последствии данный параметр можно изменить в настройках Qt Creator.

    После установки SDK вы полностью готовы к разработке приложений для платформы Sailfish OS.

    Создание Hello World! приложения так же не вызывает каких либо трудностей. Просто запускаем Qt Creator, нажимаем на кнопку «Новый проект» на главном экране (или через меню Файл -> Создать файл или проект...) и настраиваем проект:

    Автоматически сгенерированный проект немного сложнее, чем стандартный одностраничный Hello World. Это позволяет сразу же раскрыть некоторые особенности Sailfish OS. На главное странице отображается стандартное приветствие. Однако, если на этом экране выполнить жест swipe вниз (стандартное управление для данной платформы), вверху появится меню, позволяющее перейти на вторую страницу приложения, где расположен список элементов.

    Ниже приведены скриншоты Hello World приложения:

    Теперь давайте взглянем на код. Здесь все стандартно для QML приложений и поэтому знакомо любому, кто когда-либо писал приложения используя данный язык. Единственный .cpp файл описывает, какой .qml следует отобразить при запуске приложения. В нашем случае это HelloWorld.qml . Кроме того, в проекте содержатся 2 страницы, а также Cover Page, которая определяет вид приложения на домашнем экране Sailfish OS, который отображает миниатюры всех запущенных приложений и позволяет переключаться между ними, либо закрывать их.

    HelloWorld.qml описывает главное окно приложения. В нем указывается начальная страница приложения и Cover Page, а также дополнительные параметры приложения (в нашем случае это разрешенные ориентации экрана и ориентация экрана, которая будет использована по умолчанию):
    ApplicationWindow { initialPage: Component { FirstPage { } } cover: Qt.resolvedUrl("cover/CoverPage.qml") allowedOrientations: Orientation.All _defaultPageOrientations: Orientation.All }

    FirstPage.qml описывает начальную страницу приложения. Здесь все стандартно для QML приложений, однако есть некоторая особенность Sailfish OS, на которую следует обратить внимание:
    //... SilicaFlickable { anchors.fill: parent PullDownMenu { MenuItem { text: qsTr("Показать вторую страницу") onClicked: pageStack.push(Qt.resolvedUrl("SecondPage.qml")) } } //...
    Здесь используется элемент SilicaFlickable , который, во первых, позволяет сделать контент внутри самого элемента прокручиваемым, в случае если он полностью не влезает внутрь элемента. А во вторых, позволяет использовать PullDownMenu - то самое меню приложения, открываемое свайпом вниз.

    Кроме того, хотелось бы так же обратить внимание на CoverPage.qml , который описывает Cover Page приложения. Он содержит следующий элемент:
    CoverActionList { id: coverAction CoverAction { iconSource: "image://theme/icon-cover-next" } CoverAction { iconSource: "image://theme/icon-cover-pause" } }

    Данный элемент позволяет помимо вывода информации также предоставить пользователю возможность управления приложением непосредственно с его миниатюры на домашнем экране.

    Для запуска приложения в эмуляторе необходимо в боковом меню выбрать комплект i486, нужный тип сборки (релиз или отладка) и способ установки Deploy as RPM Package :

    После этого просто нажать на зеленую стрелочку в боковом меню. Это действие соберет приложение, запустит эмулятор, установит и запустит ваше приложение на эмуляторе.

    Кроме того, можно просто запустить эмулятор нажав на кнопку в боковом меню. Это позволит вам просто исследовать Sailfish OS не имея устройства на данной платформе.

    На этом все, в будущем я постараюсь более подробно описать некоторые особенности разработки под платформу Sailfish OS.

    UPD: Большое спасибо @kirikch за замечания и комментарии, они были учтены в обновленном тексте статьи.

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