Всё, что нужно знать об описаниях, иллюстрациях и скриншотах

У каждого приложения есть уникальное содержимое, включающее переведённое на разные языки описание, изображения, иллюстрирующее его возможности, и скриншоты (по крайней мере, так дела обстоят в клиентском приложении F-Droid верии 0.103 и сервере fdroidserver версии 0.8). Это справедливо как для приложений, добавленных с помощью метаданных сборки, так и для предварительно собранных файлов, размещённых в обычном репозитории. Опубликовать файлы приложения можно несколькими способами (они перечислены в порядке предпочтения):

Данные бывают в двух форматах:

  • инструкции и описания в виде текста или HTML
  • изображения и скриншоты в виде файлов с расширением PNG или JPG

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

В репозитории с исходным кодом приложения

Существует два способа включить содержимое стороннего репозитория в этот: инструменты fastlane и Triple-T Gradle Play Publisher. Оба набора инструментов — свободные, с открытым исходным кодом, поэтому отлично подходят для разработки под Android. Как только файлы добавляют в репозиторий с исходным кодом приложения, они попадают в очередную сборку, помеченную специальной меткой, а вслед за этим — в репозиторий F-Droid.

На самом деле, даже необязательно устанавливать или использовать инструменты fastlane supply или Gradle Play Publisher. F-Droid включит файлы приложения в том виде (standard file layout), в каком обычно их включают эти инструменты.

Все переводы описаний и подписей к изображениям автоматически попадают в основной репозиторий F-Droid после того, как их добавили в исходный репозиторий, из кода которого собирают очередную версию. Если изменения есть в git-ветке master, но их нет в git-ветке, предназначенной для очередной сборки, они в эту сборку не попадут.

The last important detail is that the texts in the app’s metadata file will override all other descriptive texts from Fastlane/Triple-T. That is specifically Name, Summary, and Description. Once an app’s descriptive texts have been moved into the source repo, then file a merge request or issue to remove Summary and Description from the app’s metadata file.

Here’s the general rule of filling the index from the metadata sources:

metadata file --> fdroiddata localized files --> fastlane/triple-t in app source

For things that can also be scraped from the APK, then we get:

metadata file --> fdroiddata localized files --> fastlane/triple-t in app source --> APK

В метаданных приложения в репозитории fdroiddata

Все необходимые данные из магазина приложений можно добавить в любой репозиторий fdroiddata или в метаданные сборки. Схема расположения файлов такая же, как при работе с fastlane supply, немного изменённая, чтобы встроить её в процесс работы с fdroiddata. Команда fdroid update в точности скопирует все файлы в репозиторий fdroiddata и проиндексирует их.

- <fdroiddata>/
  └── metadata/
      └── <package-id>/
          └── <locale>/
              ├── full_description.txt
              ├── short_description.txt
              ├── title.txt
              ├── video.txt
              ├── changelogs/
              │   ├── <version-code>.txt
              │   └── <version-code>.txt
              └── images/
                  ├── featureGraphic.png
                  ├── icon.png
                  ├── promoGraphic.png
                  ├── tvBanner.png
                  ├── phoneScreenshots/
                  │   └── *.png
                  ├── sevenInchScreenshots/
                  │   └── *.png
                  ├── tenInchScreenshots/
                  │   └── *.png
                  ├── tvScreenshots/
                  │   └── *.png
                  └── wearScreenshots/
                      └── *.png

Изображения должны быть в формате JPEG или PNG.

Пример:

  • …/ToGoZip/app/…
    • исходный код приложения ToGoZip
  • …/ToGoZip/fastlane/metadata/android/en-US/full_description.txt
    • текстовый файл с подробным описанием приложения ToGoZip по-английски
  • …/ToGoZip/fastlane/metadata/android/de-DE/full_description.txt
    • текстовый файл с подробным описанием приложения ToGoZip по-немецки
  • …/ToGoZip/fastlane/metadata/android/en-US/changelogs/9.txt
    • список всех изменений, попавших в версию versionCode 9
    • для приложения fdroid этот список располагается над его описанием
  • …/ToGoZip/fastlane/metadata/android/en-US/images/featureGraphic.png
    • это изображение располагается в самом верху описания приложения
  • …/ToGoZip/fastlane/metadata/android/en-US/images/phoneScreenshots/….
    • изображения из этой папки располагаются ниже описания приложения fdroid

Напрямую в репозиторий F-Droid

Желаемый итог всех манипуляций с файлами из репозитория с исходным кодом и папок с метаданными из fdroiddata — переместить их в основной репозиторий F-Droid. Все тексты попадают в специальный индекс-файл (называемый index-v1.json). Все изображения можно добавлять сразу в репозиторий F-Droid. Если в исходном коде приложения или в репозитории fdroiddata тоже есть изображения, они перепишут файлы, добавленные напрямую. В то же время если в основном репозитории уже есть текстовые файлы, то файлы, получившиеся с помощью fastlane, не принимаются.

- fdroid/
  └── repo/
      └── <package-id>/
          └── <locale>/
              ├── featureGraphic.png
              ├── icon.png
              ├── promoGraphic.png
              ├── tvBanner.png
              ├── phoneScreenshots/
              │   └── *.png
              ├── sevenInchScreenshots/
              │   └── *.png
              ├── tenInchScreenshots/
              │   └── *.png
              ├── tvScreenshots/
              │   └── *.png
              └── wearScreenshots/
                  └── *.png

fdroid update добавляет все графические файлы, которые находит в репозитории в индекс. fdroid server update синхронизирует все файлы в репозитории с различными местами, где они сейчас размещаются.