Использование библиотеки SailfishApp

Чтобы упростить разработку приложений для ОС Аврора и убедиться, что пути к приложениям заданы правильно, а время запуска приложений ускорено, сторонние приложения в ОС Аврора должны использовать SailfishApp. Эта библиотека предоставляет определённые функции удобства в пространстве имён SailfishApp для настройки проекта, установки всех файлов в правильные каталоги и получения важных путей во время выполнения с помощью удобных методов.

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

Описание API

Более подробную документацию по API можно найти в документации по пространству имён SailfishApp.

Как использовать SailfishApp в проекте

Чтобы использовать SailfishApp в проекте, необходимо выполнить следующее:

  1. Добавить BuildRequires: pkgconfig(sailfishapp) в файл .spec.
  2. Установить TARGET = yourappname в файле .pro.
  3. Добавить CONFIG += sailfishapp в файл .pro.
  4. Включить sailfishapp.h в файл .cpp.
  5. Использовать методы SailfishApp:: в функции main().

В остальной части этого раздела $$TARGET будет обозначать ссылку на значение переменной TARGET в файле .pro (именно так можно использовать саму переменную в файле .pro).

Файлы, которые устанавливаются SailfishApp и должны находиться в том же каталоге, что и файл .pro:

  • $$TARGET.png — значок приложения размером 86x86 пикселей;
  • $$TARGET.desktop — файл .desktop для приложения;
  • qml/ — каталог, содержащий все файлы QML.

Если нужно отказаться от автоматического развертывания каталога qml/, следует установить CONFIG += sailfishapp_no_deploy_qml перед добавлением параметра конфигурации SailfishApp. Можно установить эту опцию, если по какой-то причине необходимо указать файлы QML как ресурсы Qt (qrc). Рекомендуется сохранить настройку по умолчанию и вместо этого установить файлы QML в файловую систему.

Развёртывание значков приложения разных размеров

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

  1. Добавить SAILFISHAPP_ICONS = size1 size2... в файл .pro, перечислив все доступные размеры значков в форме ШИРИНАxВЫСОТА.
  2. Убедиться, что все значки приложения представлены как icons/ШИРИНАxВЫСОТА/$$TARGET.png в дереве исходных данных проекта.

Список рекомендуемых размеров значков приложения можно найти в разделе Требования к установочным пакетам. Раздел Значки включает полезные и важные материалы о том, как создавать приложения, которые наилучшим образом соответствуют стилю ОС Аврора.

Использование в проекте поддержки i18n

Чтобы использовать удобные функции интернационализации SailfishApp, нужно выполнить следующее:

  1. Добавить в главный файл .pro:

    pro CONFIG += sailfishapp_i18n

    Если используются переводы на основе идентификаторов, также добавить:

    pro CONFIG += sailfishapp_i18n_idbased

  2. Запустить qmake.

  3. Запустить make (это создаст или обновит файл translations/$APPNAME.ts и все файлы в TRANSLATIONS).
  4. В файле .yaml для для сборки RPM-пакета добавить следующую запись в раздел files:

    yaml - '%{_datadir}/%{name}/translations'

Чтобы добавить в проект новый язык, нужно выполнить следующее:

  1. Добавить в главный файл .pro (с заменой $LANG на язык):

    pro TRANSLATIONS += translations/$APPNAME-$LANG.ts

    (например, для немецкого языка нужно использовать "$APPNAME-de.ts" и т. д.).

  2. Запустить qmake.

  3. Запустить make.

Если во время разработки нужно каждый раз пропускать создание переводов, можно просто закомментировать строку

CONFIG += sailfishapp_i18n

в файле qmake .pro, и переводы не будут собраны/обновлены. Следует снова включить строку при сборке выпуска.