Как мы разрабатывали мобильное приложение на ОС Аврора (Sailfish Mobile OS RUS)

    Наша команда разработала и поддерживает корпоративное мобильное приложение по приёму платежей в рамках платёжной системы для крупного заказчика. Теперь оно используется сотрудниками клиента на устройствах под управлением операционной системы Аврора (ранее Sailfish Mobile OS RUS) в тридцати семи российских регионах. В этом посте я коротко расскажу об этом проекте и более подробно – о самой операционке.


    Предыстория


    Наша компания НОРБИТ разработала платежную систему для одного крупного заказчика. В состав системы входит серверная часть и несколько клиентов: desktop, web и мобильное приложение на операционной системе Android. Первоначально систему внедрили в нескольких регионах Российской Федерации. В 2016 году заказчик решил расширить региональное присутствие, и на данный момент система внедрена и успешно функционирует в 37 регионах.

    В 2017 году заказчик решил использовать устройства на отечественном программном обеспечении и приобрел несколько тысяч устройств INOI R7 с операционной системой ОС Аврора (Sailfish Mobile OS RUS). Перед нашей командой поставили задачу создать ещё один мобильный клиент платёжной системы. 

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


    Как проходил проект


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

    Здесь надо отдать должное самой платформе. Разработка под ОС Аврора ведется с использованием фреймворка Qt. Да и для написания простых приложений можно использовать декларативный язык QML, который в большинстве случаев позволяет не прибегать к низкоуровневому программированию на С++. В итоге задача свелась к поиску толковых разработчиков под Qt, коих на рынке в общем-то хватает.

    Ок, команда сформирована, надо по функциональности догонять остальных клиентов. Сроки были сжатые – на актуализацию имеющейся функциональности и реализацию новых фич у нас было всего пара месяцев. Ко всему прочему, помимо битвы с бизнес-логикой нас ждала еще битва с самой платформой. Необходимо было решить много вопросов, а готовых ответов на них у нас не было. Со stackoverflow по-быстрому решение не скопируешь, потому как направление новое и мы были одними из первых. Вот только некоторые из них.

    Взаимодействие по Bluetooth с ККМ


    В проекте требовалась поддержка контрольно-кассовых машин (ККМ) от АТОЛ и «Штрих». Оба производителя ККМ выпускают продукцию с возможностью подключения через Bluetooth.  Примеры работы с Bluetooth можно найти на сайте Qt.

    «Штрих» поставляет драйвер для работы с ККМ в виде исходного кода, скачать который можно по ссылке. Там же есть проект-пример использования драйвера.

    Драйвер для АТОЛ можно скачать с сайта с ключевыми словами для поиска «Драйверы торгового оборудования». В своём проекте мы использовали восьмую версию драйвера.

    В начале проекта были ККМ как с поддержкой 54-ФЗ, так и без. Поэтому  требовалась поддержка четырех типов кассовых аппаратов (АТОЛ/«Штрих» с 54-ФЗ/без 54-ФЗ).

    Работа с большими обновлениями базы


    Каждое утро сотрудники заказчика обновляют на телефонах справочную информацию о контрагентах. Поскольку контрагентов довольно много (несколько тысяч, в зависимости от региона), на обновление справочников уходило до 1 минуты. Изначально коммиты делались после вставки каждого контрагента. После того, как коммит стали делать после вставки всей справочной информации, время обновления справочников сократилось вдвое (один большой коммит).

    Оптимизация сборки приложения


    В начале на проекте были допущены «детские ошибки» – включение заголовочных файлов в заголовочные файлы. Переход к forward declaration позволил существенно сократить время сборки проекта. Также много времени на сборку и установку проекта занимает создание rpm-пакета. Если выбрать тип установки «копирование бинарных файлов», повторная сборка, установка и запуск проекта в отладке пройдут за считанные секунды. Также для более быстрой сборки на эмуляторе можно отключить сборку классов для работы с штрих-кодами и кассовым аппаратом. Вариант установки без сборки rpm потенциально опасен тем, что зависимости не будут подтягиваться.

    Автоматизированная сборка приложения


    Сборку приложения можно организовать без запуска среды разработки. Если собирать из среды разработки, то в консоли сборки можно увидеть запускающиеся команды. Эти же команды можно запустить через bash или batch.

    Но несмотря на все трудности, мы выполнили поставленные заказчиком задачи. 31 декабря 2017 года приложение было успешно запущено, и на нем были приняты первые платежи. В данный момент приложение работает на нескольких тысячах мобильных устройств под управлением ОС Аврора. 

    ОС Аврора 


    А теперь поговорим подробнее об операционной системе и ее особенностях.


    ОС Аврора (ранее Sailfish Mobile OS RUS) — это доверенная операционная система для мобильных устройств (смартфонов и планшетов). Ее развивает компания «Открытая мобильная платформа». Система основана на платформе Sailfish OS и предназначена для корпоративных пользователей и государственных корпораций.  

    В 2018 году 75% компании «Открытая мобильная платформа» и контрольный пакет финского проекта приобрел «Ростелеком». В то же время был принято решение заменить название Sailfish Mobile OS Rus на операционную систему Аврора. Это лучше подходит для отечественного рынка и, по задумке авторов, соответствует целям продукта, а также вызывает позитивные ассоциации как в России, так и за рубежом.

    Слово «доверенная» означает, что у организации, обеспечивающей своих сотрудников устройствами на ОС Аврора, есть полный контроль как над самими устройствами, так и над данными, которые используются ими. Безопасность хранения и передачи данных обеспечивается алгоритмами шифрования в соответствии с ГОСТ и подтверждается сертификатами ФСБ и ФСТЭК.

    Для управления мобильными устройствами используется продукт SF Cloud, также разрабатываемый «Открытой мобильной платформой». Это серверное решение, которое может быть развёрнуто на оборудовании организации-заказчика и позволяет через панель администрирования в любое время отслеживать статус мобильных устройств сотрудников, устанавливать, обновлять и удалять приложения на устройствах, управлять обновлениями ОС, блокировать доступ к устройству, безопасно удалять данные (wipe).


    Полный цикл разработки ОС Аврора происходит в России. Это позволило ей войти в Единый реестр российских программ для ЭВМ и БД. На данный момент это единственная мобильная ОС с таким статусом, поэтому совместимость с ней является необходимым условием для мобильных приложений из реестра. 

    «Под капотом» ОС Аврора находится POSIX-совместимое окружение. То есть это полноценный Linux для мобильных устройств. Например, в отличие от Android, здесь «из коробки» есть systemd, D-Bus, ssh и другие сервисы и утилиты, привычные для «больших» дистрибутивов на ПК. В то же время система включает компонент libhybris, предназначенный для использования драйверов из Bionic-окружения в POSIX-совместимых системах. Это позволяет запускать ОС Аврора на устройствах, изначально спроектированных для Android. В том числе есть официальная поддержка Sony Xperia X и Sony Xperia XA2.

    Практически все нужные API обеспечиваются с помощью фреймворка Qt и основанных на нём дополнительных библиотеках, которые используются и для реализации системных приложений и сервисов. Лицензия Qt позволяет писать как открытые приложения, так и проприетарные. Во втором случае существенным требованием является соблюдение правил LGPL, но при использовании библиотек Qt на коммерческой основе и это требование становится необязательным.

    Sailfish SDK доступен публично и также ориентирован на работу с Qt. Он включает в себя следующие компоненты.

    Qt Creator — IDE, развиваемая проектом Qt и предоставляющая глубокую интеграцию и инструменты для удобной работы с библиотеками Qt. Поддержка Sailfish Mobile OS RUS достигается с помощью плагина, который настраивает соответствующие комплекты сборки для архитектур ARM и x86 и средства управления сборкой и эмуляцией.


    Среда сборки — Linux-окружение с набором инструментов и целей, упакованное в виртуальную машину для VirtualBox. Распространение в таком формате позволяет использовать одинаковые средства сборки, независимо от операционной системы разработчика — поддерживаются Linux, Windows и macOS, но и накладывает ряд ограничений. Например, проекты для ОС Аврора требуется размещать в определённых директориях, которые видны виртуальной машине: домашняя директория пользователя или альтернативная директория, указываемая при установке SDK.

    Эмулятор — виртуальная машина для VirtualBox, включающая образ Sailfish OS, собранный для x86. По сути, это полноценная сборка операционной системы, позволяющая проверять многие аспекты работы приложений. Но в то же время удобно использовать физические устройства для проверки, например, использования датчиков.

    Qt QML Live — инструмент, который позволяет «на лету» изменять графический интерфейс приложения при внесении правок в QML-файлы проекта без необходимости пересборки установочного пакета. Такой подход позволяет существенно ускорить процессы разработки интерфейса пользователя.

    Документация — набор справочных статей, охватывающий как описание API, предоставляемых Qt, так и специфичные для ОС Аврора компоненты: например, документацию по Sailfish Silica. Документация доступна и для отдельного прочтения, и в формате контекстной справки, вызываемой для выделенного в редакторе исходного кода элемента.

    Чтобы начать разрабатывать приложения для ОС Аврора, можно не только изучать документацию, но и пройти учебные курсы. Есть публичный вводный курс на платформе Stepik, описывающий первые шаги и основные аспекты разработки. Также сотрудникам партнёров компании «Открытая мобильная платформа» можно по запросу на адрес edu@omprussia.ru получить доступ к более полному учебному курсу, включающему, в том числе, уроки по использованию датчиков, навигации, мультимедиа и т. п.

    Результатом разработки приложения является установочный rpm-пакет. Перед тем, как он попадёт на устройства сотрудников компании-заказчика, ему предстоит пройти следующие этапы.

    1. Подпись валидным сертификатом разработчика. На самом деле, этот этап является составной частью сборки установочного пакета, поскольку подписывается не только сам rpm-файл, но и файлы, входящие в его состав. Наличие позволяет как проверить происхождение установочного пакета, так и целостность его структуры. Чтобы выполнить подпись, требуется получить инструменты генерации ключей и сертификат разработчика, для этого партнёры компании «Открытая мобильная платформа» могут направить соответствующие запросы по адресу dev-support@omprussia.ru.

    2. Передача установочного пакета администратору SF Cloud. В зависимости от организации рабочего процесса этот этап может быть реализован по-разному. Важно, что в результате пакет должен оказаться загруженным в репозиторий SF Cloud и быть доступен для распространения на устройства через панель управления. При этом при загрузке в репозиторий происходит не только проверка подписи пакета, но и корректности структуры rpm-файла, на которую налагается ряд требований (обусловлены как стандартизацией путей размещения компонентов приложения, так и требованиями к безопасности). Например:

    • в spec-файле, используемом для сборки пакета, не должны использоваться секции %pre, %post, %preun, %postun, %verifyscript;
    • в скриптах spec-файла пакета приложения не должны изменяться или удаляться существующие файлы;
    • имя исполняемого файла приложения и начало имени пакета приложения совпадают и содержат только строчные буквы, цифры и знаки тире;
    • исполняемый файл располагается по пути /usr/bin/{имя проекта};
    • desktop-файл располагается по пути /usr/share/applications/{имя_проекта}.desktop;
    • иконки располагаются по путям /usr/share/icons/hicolor/{разрешение}/apps/{имя проекта}.png;
    • дополнительные файлы, используемые приложением, располагаются в директории /usr/share/{имя проекта}.


    Для автоматизации проверки таких требований служит скрипт rpm-validator. Аналогичная проверка доступна в SDK и может быть вызвана из IDE в центре управления Build Engine. Важно уточнить, что настройки скрипта rpm-валидатора могут быть обусловлены целевой платформой и требованиями заказчика. Получить rpm-validator для сертифицированных сборок ОС Аврора можно в «Открытой мобильной платформе» по запросу на адрес dev-support@omprussia.ru.

    3. Распространение на устройства сотрудников через панель администрирования SF Cloud. Этот этап, как правило, включает техническое и функциональное тестирование на небольшой группе устройств. При установке rpm-файла на устройства с сертифицированной сборкой ОС Аврора также происходит проверка подписи и структуры. Разработчики могут быть привлечены для исправления возникающих ошибок до загрузки на устройства всех сотрудников.

    ОС Аврора остается единственной мобильной операционной системой, соответствующей требованиям ФСБ и ФСТЭК. 

    Готовы в комментариях обсудить особенности разработки мобильных приложений на ОС Аврора.

    Статья подготовлена при поддержке компании «Открытая Мобильная Платформа»
    ГК ЛАНИТ
    445,60
    Ведущая многопрофильная группа ИТ-компаний в РФ
    Поделиться публикацией

    Комментарии 101

      +2

      Было неожиданно увидеть в середине статьи, что разработка была закончена в 2017 году. Два года ждали, чтобы написать статью? :)

        +7
        За эти 2 года решение прошло проверку временем и успешно эксплуатируется на тысячах устройств. Мы продолжаем развивать приложение, добавляя новую функциональность. Плюс в последнее время очень большой интерес к платформе, поэтому появилось желание поделиться опытом :)
          +2
          У кого все эти тысячи устройств только не могу понять. Ни у кого не видел. А хотелось бы. Эта ОС, я так понимаю, сливки с Симбиана и Миго?
            +2

            Это же специализированная ОС. Понятное дело, что её на улице не встретить.

              0
              Все эти тысячи устройств находятся у Почты России… И сами устройства весьма задумчивые…
            0
            Наверное, подождали, когда ОС переименуют с Sailfish на православную Аврора
            0
            А у Авроры есть какой-то Маркет, откуда можно поставить себе приложение?
              +1
              Панель управления приложениями разворачивается на стороне заказчика.
                0

                Ocь можно установить на планшеты на Intel Bay[Cherry]Trail с UEFI 32/64bit и если можно то как?

                +2
                У Sailfish был свой store. Так что там думаю адаптированные источники приложений есть. А так можно просто репозитории на базе rpm пакетов цеплять там обычный zypper под капотом.
                  +3
                  У Sailfish был свой store.

                  Почему был? До сих пор здравствует и пополняется приложениями.


                  А так можно просто репозитории на базе rpm пакетов цеплять

                  Ага. OpenRepos, например, можно подключить.

                    0
                    Но реально если использовать на xperia в частном порядке — практически все ставишь из аптоида или других сторов. Если, конечно, разорился на android support.
                    Качество и актуальность нативных приложений немного расстраивает, увы(
                      +1

                      Не так все плохо. У меня из вндроидных только десяток приложений (включая три магазина), да и то использую из них постоянно только пару. Остальные больше по привычке поставил, чем по необходимости.

                +11
                31 декабря 2017 года приложение было успешно запущено
                энтерпрайзный заказчик разрешил пушить в новогоднюю ночь? :not_bad:
                  +5
                  Скорее «крупный заказчик соизволил закрыть акт последним днем года, а само решение уже несколько недель-месяцев было в „тестовой эксплуатации“
                    +2
                    KPI и все такое. работы должны были завершены в этот установленный срок. основная эксплуатация, конечно, началась в январе 2018 года
                    +7
                    Чтобы выполнить подпись, требуется получить инструменты генерации ключей и сертификат разработчика, для этого партнёры компании «Открытая мобильная платформа» могут направить соответствующие запросы по адресу dev-support@omprussia.ru.

                    Смущает то, что инструменты генерации ключей надо получать. Т.е. возможен бэкдор на этапе генерации ключа и впоследствии ОМП может изменить и подписать приложение за разработчика.


                    По хорошему подпись приложения разработчиком должна быть полностью независимой от ОМП и лишь заверяться подписью ОМП при публикации приложения.


                    Ну, если я нигде не косячу с пониманием, конечно. А то товарищем майором попахивает.

                      +3
                      У суда нет оснований не доверять товарищу майору.
                      +3
                      А почему нет ни одного скриншота программы? Это всё секретно?
                        0
                        да, коммерческая тайна
                          +3

                          Настолько, что даже если замазать данные — нельзя?

                        +6
                        Ваши требования к безопасности Операционная система базируется на ядре Linux и технологиях с открытым исходным кодом. Архитектура системы позволяет полностью контролировать обработку данных на устройстве, и быть уверенным в том, что ими не пользуется кто то другой.

                        Где исходники, Билли? Нам нужны исходники.


                        P.S. Тьфу, Ланит ведь, а не ОМП. Ну, в общем то, Ланиту спасибо за то, что поделились опытом, а ОМП не очень.

                          0

                          Исходники окружения Sailfish уже давно обещают открыть, но обещаниям люди рады). Думаю во в многом из-за этого интерес к Sailfish меньше интереса к тому же Ubuntu Touch (ныне UBPorts).

                          +11

                          Вот так работаешь в одной из ланитовских компаний, в качестве хобби уже больше пяти лет пишешь приложения под Sailfish. И только из блога на хабре узнаёшь, что у Ланита оказывается под неё проект был. :)

                            +5
                            Ну прикольно, документация на русском — сообщество только русскоговорящее, чтобы скачать зарегистрируйся, укажи компанию и цель — а если нету ни того не другого?
                            Хотел посмотреть поддерживаемые девайсы и архитектуры — уже не хочу :)
                              +2
                              Архитектурно ОС Аврора и Sailfish OS — почти одно и то же. Так что если не интересует корпоративная разработка на российском рынке, то вполне можно обратиться и к англоязычной документации, и к англоязычному сообществу.
                                +1
                                Это ПОКА одно и то же.
                                  +2

                                  Насколько знаю, разработчики Авроры почти основные контрибуторы в main-ветку Sailfish, многие наработки бекпортируют.

                                    0
                                    многие наработки бекпортируют.

                                    Это да. В списке изменений недавно пришедшего обновления про это упомянуто.


                                    Кстати, что-то они уже вторую версию в честь национальных парков именуют. В Финляндии озера закончились?

                                      0

                                      От озёр они уже давно ушли, до парков уже несколько рек было.

                              +9
                              В то же время был принято решение заменить название Sailfish Mobile OS Rus на операционную систему Аврора. Это лучше подходит для отечественного рынка и, по задумке авторов, соответствует целям продукта, а также вызывает позитивные ассоциации как в России, так и за рубежом.

                              У меня от позитивных ассоциаций аж зубы свело.
                                +1

                                8е драйвера атол под линуксом?
                                Точно ничего не путаете?

                                  0
                                  да, ошиблись с 9 версии драйверов
                                  +1
                                  Ну хорошо, я провёл сотни бессонных ночей на стёпике (ну не прикольно его по-правильному называть!) и могу, например, выдать своё приложение для Авроры. Но какой мне есть в этом смысл? Программистом никуда на постоянную основу не позовут, денег не дадут и никто особо даже не узнает. Ведь никсы (ну ладно, макОСь не берём) это в большинстве своём частный случай, а Аврора — частный случай частного случая. В чём смысл?
                                    0
                                    Самопиар) Ну что же вы не понимаете))
                                      0
                                      У ОМП прямо сейчас есть вакансии разработчиков под Sailfish. Правда не знаю, как там с зарплатами.
                                        +1

                                        У них даже вилки опубликованы. Я не знаю, много это для плюсовиков или мало:


                                        Офис: г. Санкт-Петербург.

                                        ЗП: для junior 70-120 тыс руб, для principal до 250 тыс руб, но при наличии экспертных знаний готовы обсуждать.

                                        Это они для плюсовиков на ЛОРе публиковали.

                                          0
                                          Если смотреть чуть дальше, то вдруг если с ними придётся расстаться, то где ещё можно найти подобную вакансию? Мало где. Поэтому, тут некоторый риск остаться ни с чем в итоге.
                                            0
                                            Сомневаюсь, что хорошие разработчики на C++ или системные разработчики не смогут найти работу.
                                          0
                                          на этом рынке дефицит как вакансий, так и кадров.
                                          +1

                                          Было интересно узнать про Qt QML Live, впервые слышу про такой инструмент!

                                            0

                                            Считается частью Automotive Suite, продаётся в составе его же, хотя мог бы использоваться и для «обычных» приложений.


                                            В использовании ни разу не видел, возможно потому что из коробки нигде не доступен (кроме, видимо, Automotive Suite) — нельзя просто взять и загрузить/установить готовым.


                                            При этом исходники вроде как доступны, да и самому изготовить подобный инструмент не должно быть сложно — собственно, Loader всё уже умеет, остаётся только мониторить указанный файл на диске/сервере.

                                            0

                                            GNOME Tracker из Sailfish OS не выкинули еще? Запросов на SPARQL не доводилось писать? Не испытывали трудностей?

                                              0
                                              Учитывая что около 60% статьи отведено про описание ОС, неплохо-бы рассказать, чем она лучше/хуже конкурентов.

                                              Про приложение, даже не знаю про что спрашивать.
                                              Ибо, как следует из комментариев — секретно…
                                                +1
                                                Да как бы нет у нее конкурентов сейчас в ее сегменте рынка… В этом то весь прикол.
                                                  0
                                                  В ее сегменте рынка и ее особо нет еще. Она как Эльбрус — право купить еще надо получить, подав прошение через третий отдел.
                                                    0
                                                    С моей стороны это несколько иначе выглядит. Ты их в дверь, а они в окно %)
                                                  0
                                                  Отечетсвенная, это самое главное как я понял. Госты на шифрование и все такое.
                                                  +10
                                                  Все секретно. А потом люди интересуются, откуда же берутся те редиски, которые работают на жуликов и воров для/во всяких комнадзорах разрабатывая черенки для лопат, которые потом им же и засунут…
                                                    +1
                                                    День добрый, очень интересная тема, очень много громких слов, но почему-то мало конкретики…
                                                    Не могли бы чуть больше рассказать про «соответствующей требованиям ФСБ и ФСТЭК».
                                                    1) До какого уровня секретности (Не секретно, ДСП, секретно, сов.секретно) соответствуют требованиям?
                                                    2) Используются ли в Вашем приложении информация имеющая определенный гриф, если да, то т.к. это планшет, кабель к нему не протянуть, какие беспроводные сертифицированные интерфейсы используете для работы с грифованой информацией?
                                                      0
                                                      нет, секретную информацию не использует
                                                        0
                                                        ответ на ваш вопрос есть в открытых источниках информации:
                                                        fstec.ru/tekhnicheskaya-zashchita-informatsii/dokumenty-po-sertifikatsii/153-sistema-sertifikatsii/591-gosudarstvennyj-reestr-sertifitsirovannykh-sredstv-zashchity-informatsii-n-ross-ru-0001-01bi00
                                                        защищенная мобильная операционная система общего назначения на базе Sailfish Mobile OS RUS Соответствует требованиям документов: Требования к ОС, Профиль защиты ОС(А шестого класса защиты. ИТ.ОС.А6.ПЗ)
                                                        clsz.fsb.ru/certification.htm
                                                        СФ/114-3069 20.02.2017
                                                        20.02.2020 Защищенная мобильная операционная система общего назначения на базе Sailfish Mobile OS RUS с встроенным программным средством криптографической защиты информации PathfinderSSL соответствует требованиям ГОСТ 28147 89, ГОСТ Р 34.12 2015, ГОСТ Р 34.13 2015, Требованиям по защите конфиденциальной информации от несанкционированного доступа в автоматизированных информационных системах, расположенных на территории Российской Федерации, класса АК1, Требованиям к средствам криптографической защиты информации, предназначенным для защиты информации, не содержащей сведений, составляющих государственную тайну, класса КС1, и может использоваться для защиты информации, не содержащей сведений, составляющих государственную тайну.

                                                        т.е гостайна — нельзя, государственные информационные системы и системы с персональными данными можно до определенного уровня и в зависимости от модели угроз.
                                                          0
                                                          Документ документу рознь.
                                                          Например:
                                                          В России разработана первая программно-аппаратная платформа под управлением операционной системы Astra Linux. Утверждают о выпуске мобильных устройств на данной платформе.

                                                          Отечественная операционная система Astra Linux Special Edition сертифицирована на соответствие требованиям безопасности информации Минобороны России, ФСТЭК России, ФСБ России и обеспечивает обработку информации до степени секретности «особой важности».
                                                          — Каждый производитель утверждает об единственности и уникальности его решения… Кому только верить… Вопрос как-раз и задавался с целью — понять, как же организуется работа с документами имеющими гриф на мобильных платформах, не на бумаге, а именно у практиков, которые каждый день решают данные задачи. Если же Аврора — не позволяет работать с грифом, то в гос.учреждениях — боюсь ее актуальность близка к 0 и в информационную сеть предприятий данные устройства не пустят, максимум — как кассовые аппараты…
                                                            0
                                                            Верить — официальным документам. Астра, несомненно, весьма сертифицирована. Но это не мобильная ОС. У астры вполне себе есть конкуренты. МСВС хотябы.

                                                            Сейлфиш, увы, пока единственное сертифицированное решение для смартфонов.

                                                            Впрочем, я пишу по памяти и рад был бы ошибиться. Пожалуйста напишите, если вы знаете другую ОС или ОС+набор наложенных средств защиты, позволяющие на смартфоне выполнить требования к СЗПДн хотя бы по 4-му уровню защищенности.
                                                              0
                                                              С МСВС работали, пришлось отказаться и перейти на Астра Linux.
                                                              Про мобильные устройства — нет сертифицированных средств для беспроводных интерфейсов, а когда мы к мобильнику приделываем Ethernet кабель с криптошлюзом и аппаратно отключаем беспроводные интерфейсы — он превращается в стационарник).
                                                                0
                                                                У астры вроде ядра поновее, более свежее железо поддерживает. Хотя, я слышал, от астры тоже не все в восторге. Однако, это все разговор про x86 и прочее типа там эльбрусов =) Астра на мобильник не встает.
                                                                На мобильнике по факту андроид, яблоко, сейлфиш, самсунг пытался влезть с тайзеном. Самсунг не осилил, для андроида есть сертифицированный антивирус и VPN, больше ничего нет. Чо там у яблока есть не знаю, но полагаю что только VPN. Без сертифицированного средства управления доступом, МСЭ, ну и там еще по мелочи выполнить требования 21 приказа нельзя. Не говоря уже о 17 приказе.
                                                                А имеющегося у авроры профиль А шестого класса защиты+ КС1 хватает для выполнения 21 приказа по 3-му уровню и 17 приказа по 3-му уровню «из коробки», без наложенных средств. Жаль, что самсунг бросил тайзен. Очень неуютно, когда на рынке нет альтернатив.

                                                                  0
                                                                  Сертифицирована сама ОС… Мобильное устройство — это не только ОС, а еще куча аппаратных штуковин для взаимодействия с миром — Блутус и WiFi например.
                                                                  Ни один WiFi и блутус не сертифицированы для использования.
                                                                  По поводу МСВС — да, там более старенькие ядра, там хуже обстоят дела с драйверами для видео-карт (это было основной причиной перехода на астру).
                                                                  Андроид — как ни крути — это Java, полноценной Java — сертифицированной нет, подобие — ГОСТJava не катит. На астра линуксе вышли мобильные устройства MIG, но кроме анонса, в живую или видео — я так и не смог найти.
                                                                  До сертифицированных мобильных устройств нам шагать и шагать, а с новым 17 приказом вообще стало все очень и очень плохо.
                                                                    0
                                                                    Мобильные устройства MIG — вот это не слышал. Спасибо, посмотрю. Если привезут образец, могу что-нибудь отфоткать, не знаю, что вы там хотели увидеть.
                                                                    А что там у вас конкретно с новым 17 приказом не получается? Я как то новых проблем особо не вижу.
                                                        +1
                                                        А подробности, скриншотики, неоспоримые преимущества?
                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                            –1

                                                            Кроме как на Qt для Авроры/Sailfish можно разрабатывать на решении Rhomobile, которое разрабатывает российская компания Тау Технологии. Суть решения — гибридный UI на WebView (аналогично Cordova/PhoneGap + локальный сервер для логики и работы с данными аналогичный Ruby on Rails с руби полноценной машиной и т.п.). Решение полностью open-source.
                                                            Вот ссылка на наш с Кириллом Чувилиным доклад на прошлогоднем SECR(там ссылки и т.п.):
                                                            https://2018.secrus.org/program/submitted-presentations/development-hybrid-cross-platform-applications-for-sailfish-os/

                                                              +1
                                                              Нет, спасибо, уберите, пожалуйста, свой веб из мобильной разработки. От него приложения пухнут и телефоны греются.
                                                                +1

                                                                Все это в основном для корпоративной разработки. А у корпоративной разработки свои особенности — грубо говоря "много формочек" с простым UI зато "много и сложно" с DB. В основном люди обжигаются на Cordova/PhoneGap когда пытаются делать на них большие и сложные приложения, а это проблема. Если вынести из WebView все кроме UI, то никаких проблем с производительностью. На нашем решении даже на WM/WinCE устройствах приложения нормально работают. Повторю — никто на таких решениях не пишет игры, мультимедийные приложения и т.п. А для своей ниши это весьма хороший выбор — веб-программистов много и они в любом случае нужны + можно даже переиспользовать код и дизайн с порталов и т.п. Все это дает экономию при разработке.

                                                                  0
                                                                  В любом случае веб — это ещё один инстанс браузера, пусть и без собственного UI, но это ещё одно запущенное ядро парсера HTML и интерпретатор JS. Всяко тяжелее нативно отрисованного UI.
                                                              0
                                                              Боже, так красиво всё описано! А смертные могут купить себе смартфон/планшет с Авророй «на борту»? Или это как с Эльбрусом: попробовать можно только в супер-секретных проектах?
                                                                0

                                                                С Авророй, насколько я знаю, нельзя, а с Sailfish есть опции: Xperia X, Xperia XA2 с производными, Gemini PDA, в ближайшем будующем Xperia 1. А кроме этого есть неофициальные порты на кучу других устройств.

                                                                  0
                                                                  Ого меня поражает доступность Авроры/Sailfish… Где то она доступна без «танцев с бубном», так сказать «из коробки»? Просто глумиться и называть это около «открытой мобильной платформой» при этом не продвигая ни одного устройства в массы — глупо. Мнимость безопасности и стабильности, ИМХО. В контексте статьи создаётся впечатления, что люди просто потратили красиво бюджет — нет ни видео работы, ни скриншотов… просто ничего… при этом, естественно, не рассматриваются аналогичные внедрения с другими платформами.
                                                                    +1

                                                                    Раньше были, но после переориентации на корпоративный сегмент с этим стало туго. Сейчас только планшет INOI с Sailfish из коробки идёт. Ну и на мой взгляд разблокировка загрузчика и запуск скрипта установки — не такая уж и сложная операция.

                                                                  0
                                                                  Да, в начале статьи даже наименование есть, INOI R7
                                                                  или есть еще планшет INOI Tab8
                                                                  Но ценники на мой взгляд завышены минимум вдвое, сам на них смотрю но жаба душит отдавать 14к за игрушку которой полноценно пользоваться даже не получится.
                                                                    0
                                                                    market.yandex.ru/product--smartfon-inoi-r7/115753687
                                                                    inoi.com/2766/sailfish-tablet-t8
                                                                    Нет их. Одно закончилось, второе предзаказ в весьма ограниченной продаже… как бы намекает.
                                                                      0
                                                                      Вполне возможно, у меня знакомый брал этот телефон около года назад, а насчет планшета не знаю, судя по тому что его обсуждают на 4пда в продаже он периодически бывает.
                                                                        0
                                                                        Так ли выглядит доступность и открытость?
                                                                        0

                                                                        Там ведь тоже мейнстримный Sailfish, а не Аврора, насколько мне известно.

                                                                  +1
                                                                  А давно у нас С++ стал низкоуровневым?
                                                                    0
                                                                    Я больше не понял про
                                                                    Переход к forward declaration позволил существенно сократить время сборки проекта.
                                                                      0
                                                                      Для примера в комментарии stackoverflow.com/a/3963223 приведена выдержка из книги «Large Scale C++ Design», где описано как это работает. Есть и другие статьи на этот счет herbsutter.com/2013/08/19/gotw-7a-solution-minimizing-compile-time-dependencies-part-1 или dzone.com/articles/reduce-c-build-times-by-reducing-header-dependenci-1. Другим вариантом ускорения сборки большого проекта могут быть precompiled headers.
                                                                        0
                                                                        Про это всё я знаю, более волнует вопрос — вы изначально не следовали этим рекомендациям, а только потом спохватились в процессе оптимизации сборки?
                                                                          0
                                                                          Да, изначально не следовали. Еще Дональд Кнут сказал «premature optimization is the root of all evil». Ну и как водится, сроки горели, поэтому сначала функциональность, а уже потом оптимизацией занялись ;-)
                                                                            0
                                                                            Понятненько)

                                                                            Как общие впечатления о работе с Qt и Qt Creator?
                                                                              +3
                                                                              Qt имеет достаточно серьёзный набор кроcсплатформенных библиотек.

                                                                              1. Большой набор библиотек для работы с устройствами.
                                                                              2. Библиотеки для работы с БД и дрйвер SQLite из коробки.
                                                                              3. Контейнеры. Спорный вопрос. По идее Qt-шные более удобные и быстрые в копировании нежели STL-ные, по причине наличия в них COW. Хотя в современных стандартах COW не рекомендуется. Пропагандируется move семантика.
                                                                              4. Ну и, конечно, механизм сигнал-слот. Есть конечно аналоги в boost библиотеке. Но в Qt (субъективно) они более дружелюбные

                                                                              Ну а сама среда дело привычки. При переходе с Visual Studio поначалу путались в хоткеях)
                                                                      +1
                                                                      Смотря с какой стороны посмотреть. :) Со стороны Ассемблера C++ высокоуровневый язык, а со стороны Python и JavaScript — это низкоуровневый язык. Но строго говоря «C++ сочетает свойства как высокоуровневых, так и низкоуровневых языков» ©Wikipedia
                                                                      +2

                                                                      Вы написали приложение на Qt/QML под Linux? Это очень круто...

                                                                        +1
                                                                        В общем настоящее российское импортозамещение: планшеты китайские, ось финская, сам Qt американский, но для зомбоящика сойдет. В общем понятно все…
                                                                          +1
                                                                          ось финская

                                                                          Уже российская, с финскими корнями )
                                                                            0

                                                                            Всё-таки разработка по-прежнему ведётся совместно с финнами.

                                                                              –1
                                                                              О, ну так это же меняет всю суть дела!) Надо бы тоже запилить свою ось на Maemo, главное триколора побольше в лого) Вообще меня так веселит их оптимизм в этой ситуации, когда «чухонцы» за полярным кругом уже 20 лет назад были крупнейшим мировым производителем телефонов, а мы на сей день имеем клон финской оси на китайских планшетах, которых даже в продаже на Маркете нет. Интересно, это уже рывок или прорыв?) Ладно, что уж капитанствовать, все же это и так понимают…
                                                                              0
                                                                              Qt американский

                                                                              Ага, с финскими корнями и головным офисом в Стокгольме.

                                                                                0
                                                                                Ого, они даже Qt создали! Спасибо, буду знать…
                                                                                  0

                                                                                  Головной офис в Хельсинки.

                                                                                    0

                                                                                    Да, по всей видимости когда-то читал про то, что у них самый большой офис в Стокгольме и неправильно запомнил.

                                                                                      0

                                                                                      Не, в Швеции офисов нет, возможно вы читали про норвежский Осло — этот действительно один из самых крупных а также исторически первый.

                                                                                  +1

                                                                                  Qt финский. В американских офисах только продаваны и немного консультантов. И один продакт манагер.

                                                                                  +2
                                                                                  Со stackoverflow по-быстрому решение не скопируешь, потому как направление новое и мы были одними из первых. Вот только некоторые из них.

                                                                                  1) реализовать взаимодействие по Bluetooth в принципе не так-то сложно в Qt библиотеке. Даже мы в институте это делали в курсовой для железки(это было лет семь назад), да и после в работе один раз пришлось столкнуться. Извиняюсь за придирчивость, я бы не назвала вас пионерами

                                                                                  2)
                                                                                  Изначально коммиты делались после вставки каждого контрагента. После того, как коммит стали делать после вставки всей справочной информации, время обновления справочников сократилось вдвое (один большой коммит).

                                                                                  100% в интернете есть эта информация, так как сама использовала в первом проекте

                                                                                  Статья хорошая, но я бы не была столь громогласной «направление новое и мы были одними из первых» и перечислять то, на что есть ответы в интернете. Любой проект — это творчество и состоит из череды челенджей.
                                                                                    –2
                                                                                    к сожалению, формат статьи и NDA не позволяют написать много о каких-то интересных находках и преодоленных трудностях, так что немного технических вставок это скорее для полноты картины. Основная цель статьи — поделиться опытом успешной разработки нашей компанией большого приложения, работающего на широкой сети устройств по всей стране. Корпоративных приложений на SF не так много и пионерство заключается в этом, а не в том как подружить телефон с кассой по Bluetooth на Qt. Тем более что приложение было выведено на рынок еще в 2017 году.
                                                                                    0
                                                                                    А к чему такая секретность? Проект был анонсирован довольно широко года полтора назад.
                                                                                    О партнерстве с «ОМП» и разработке мобильных приложений для ОС Sailfish Mobile в июне 2018 года сообщила компания «Норбит», входящая в ГК «Ланит». На их счету уже есть проект по разработке приложения под мобильные устройства с ОС Sailfish для почтальонов ФГУП «Почта России». К слову, о закупке смартфонов Inoi R7 на базе ОС Sailfish «Почтой России» сообщалось ещё в апреле 2017 года.

                                                                                    Презентация Бориса Ярыгина в мае этого года.
                                                                                      0
                                                                                      И да, что насчёт устройств на Авроре? Насколько я понял из новостей, чуть ли не единственный производитель, тот самый Иной, пару лет как отказался от неё в пользу Андроида.
                                                                                        +2
                                                                                        Лицензия Qt [...] при использовании библиотек Qt на коммерческой основе [...]

                                                                                        Вот это интересный момент. К кому идти за коммерческой лицензией, если таковая нужна? Надо полагать, не в ОМП/Ростелеком и даже не в Sailfish, а в The Qt Company (пусть даже и питерский офис). Несколько странно это выглядит, что отечественным разработчикам под отечественную ОС надо покупать лицензии у неотечественной компании.


                                                                                        Если только в Sailfish (а значит и ОМП/Ростелеком) не приобрели SDK лицензию у The Qt Company. Но я кого ни спрашивал, никто не знает, что там за договорённости/лицензии были (и были ли) между The Qt Company и Sailfish (которая, кстати, как уже заметили, даже исходники так и не открыла, хотя обязана, независимо от обещали / не обещали).


                                                                                        заказчик решил использовать устройства на отечественном программном обеспечении

                                                                                        Если бы и The Qt Company купили, тогда может быть, а так в этом отечественном ПО весь GUI на Qt, который пока не отечественный. Да и без Qt там достаточно компонентов заморских, тоже Sailfish/ОМП/Ростелекому не принадлежащих.


                                                                                        Кстати, а у компании НОРБИТ (или её заказчика) есть коммерческие лицензии Qt? Application Development или Device Creation? :)

                                                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                        Самое читаемое