Подготовка к работе с файлом конфигурации и доступ к данным для Android

Из этой инструкции вы узнаете, как подготовить и начать работу с файлом конфигурации приложения White Label App и как предоставить доступ к данным авиабилетов и отелей.

Обратите внимание! Прежде чем переходить к действиям, указанным в этой инструкции, ознакомьтесь с техническими требованиями и условиями начала работы с White Label App. Без выполнения этих условий работа с шаблоном невозможна.

1. Подготовка к работе

Архив с приложением вы можете скачать с GitHub.

После скачивания приложения выполните следующие действия:

  1. Скачайте Android Studio;
  2. Разархивируйте архив с приложением;
  3. В Android Studio откройте проект (File → Open → выберите папку с проектом);
  4. В папке white-label-app-android-main создайте файл signing.properties
  5. В созданный файл нужно добавить параметры сертификата для подписи приложения, чтобы приложение можно было собрать. Для этого вставьте следующий код в файл:
# Debug
KEYSTORE_FILE_DEBUG=
KEYSTORE_FILE_PASSWORD_DEBUG=
KEY_ALIAS_DEBUG=
KEY_PASSWORD_DEBUG=

# Release
KEYSTORE_FILE_RELEASE=
KEYSTORE_FILE_PASSWORD_RELEASE=
KEY_ALIAS_RELEASE=
KEY_PASSWORD_RELEASE=
  1. Заполните для Debug и Release сборок:
    • KEYSTORE_FILE — путь к файлу, где лежит ключ;
    • KEYSTORE_FILE_PASSWORD — пароль для файла, где лежит ключ;
    • KEY_ALIAS — название ключа;
    • KEY_PASSWORD — пароль для ключа;

Если у вас нет ключей (Key store), то необходимо сначала их создать: один для дебаг сборки (Debug) и второй для релизной сборки (Release).

Как создать ключ

  1. Откройте Android Studio и перейдите в BuildGenerate Signed Bundle / APK
  2. Выберите “APK” и нажмите “Next”
  3. Откроется окно создание ключа:
    • Значение в “Key store path” подставляется автоматически после создания ключа, либо нужно выбрать путь к уже ранее созданному файлу с ключом (но НЕ в файл white-label-app-android-main/signing.properties). 
    • Укажите пароли “Key store password” (для файла с ключем) и “Key password” (пароль для самого ключа)
    • Создайте “Key alias” (название ключа)
    • Нажмите “Next”
  1. Поставьте галочку в “Export encrypted key” (рекомендуется) и создайте ключ.
    Для создания второго ключа повторите те же шаги.

2. Работа с файлом конфигурации

Файл конфигурации app_config.json находится в папке /config

Именно с помощью этого файла, вы сможете настроить приложение под свой бренд (изменить цвет, настроить стили и т.д.) и обеспечить доступ к данным.

Для редактирования файла app_config.json рекомендуется использовать Android Studio, поскольку Android Studio всё равно понадобится для сборки проекта. Вы также можете редактировать файл через любой текстовый редактор.

Пример app_config.json

{
  "base_configuration": {
    "identifier": {
      "android": {
        "id": "com.travelapp",

        "versionName" : "1.0.0",
        "versionCode" : 1
      },
      "apple": {
        "id": "superpuper.travel-app",
        "team_id": "LKREN1N1GZ7",

        "version": "1.0.0",

        "build_number": 0
      }
    },
    "display_name": {
      "base": "en",
      "localized": {
        "en": "Travel App EN Git",
        "ru": "Travel App RU Git"
      }
    }
  },
  "constants": {
    "host" : "android.superpuper.travel-app",
    "api_key" : "test_api_key"
    "policy_url": {
      "base": "en",
      "localized": {
        "en": "https://google.com",
        "ru": "https://www.google.ru"
      }
    },
    "advertising": {
      "appodeal_api_key": "",
      "google_admob_app_id": "",
      "placements": {
        "air_ticket_placement_interstitial": "",
        "air_ticket_placement_banner": "",
        "hotels_placement_interstitial": "",
        "hotels_placement_banner": ""
      }
    },
    "feedback_email": "test@test.com",
    "google_maps_api_key": "JHzdLyBdoREkGmBO46Sajel-jRa3t0ykwbdp2Jh",
    "appstore_id": "",
    "marker": 233601,
    "client_device_host": "iphone.apartments"
  },
  "style": {
    "base_color": "#7648C5", // hex значения базового цвета палитры
    "corners_type": "default", //скругления {sharp, default, round}
    "icons_type": "filled" //стиль используемых иконок {filled, tint, line}

    "palette": "lab" // принцип генерации палитры
  },
  "info_screen_config": {
    "items_to_display": [
      "favorites", // раздел избранное
      "about_app", // раздел о приложении
      "rate_app", // раздел оценить приложение
      "share_app" // раздел поделиться приложением
    ],
    "about_app_info": {
      "description": {
        "base": "en",
        "localized": {
          "en": "Application description",
          "ru": "Описание приложения"
        }
      },
      "developer": {
        "base": "en",
        "localized": {
          "en": "CleverPunpkin Ltd.",
          "ru": "OOO CleverPumpkin"
        }
      },
      "partner_url": {
        "base": "en",
        "localized": {
          "en": "https://www.google.com",
          "ru": "https://www.google.ru"
        }
      }
    }
  },
  "white_label_config": {
    "screens_to_display": [
      {
        "type": "flights" //таб авиабилетов
      },
      {
        "type": "hotels" //таб отелей
      },
      {
        "type": "other", //таб другое
        "parameters": {
          "id": "Other1",
          "icon": "ic_default_other",
          "title": {
            "base": "en",
            "localized": {
              "en": "Other",
              "ru": "Другое"
            }
          },
          "url": {
            "base": "en",
            "localized": {
              "en": "https://www.google.com",
              "ru": "https://www.google.ru"
            }
          }
        }
      },
      {
        "type": "other", //таб другое 2
        "parameters": {
          "id": "Other2",
          "icon": "ic_default_other",
          "title": {
            "base": "en",
            "localized": {
              "en": "Other 2",
              "ru": "Другое 2"
            }
          },
          "url": {
            "base": "en",
            "localized": {
              "en": "https://www.google.com",
              "ru": "https://www.google.ru"
            }
          }
        }
      }
    ]
  }
}

Важно! После внесения и любых изменений app_config.json:

  1. Сохраните изменения в файле.
  2. Выполните в терминале в Android Studio команду ./gradlew parseConfig.
    Для корректной работы данной команды в терминале  Android Studio, должен быть установлен JDK. Если он не установился автоматически с Android Studio, то нужно установить его самостоятельно для необходимой операционной системы.
  3. Пересоберите и запустите сборку ▶.

3. ID приложения

Добавьте в файл конфигурации id приложения. Этот шаг является обязательным, т.к. без id не получится опубликовать приложение.

Чтобы добавить id:
1. Найдите следующий код в файле app_config.json:


"identifier": {
      "android": {
        "id": "com.travelapp",
        …
      },
    …
  },
… 

2. Укажите id приложение в параметре id.

3. Этот же id добавьте в файл buildSrc/src/main/kotlin/configuration/Config.kt в поле val APPLICATION_ID = "com.travelapp"

4. Удалите блок apple{}  из identifier{}, поскольку в нем находятся параметры для iOS приложения. 

4. Доступ к данным 

Для получения доступа к работе с поисками по авиабилетам и/или отелям, необходимо заменить некоторые данные по умолчанию в файле конфигурации.

Для этого найдите следующий фрагмент кода в файле конфигурации:

...   
"constants": { 
    "api_key" : "test_api_key",
  "marker": "Ваш маркер",
    "client_device_host": "example.example"
  },
...
  • В поле api_key укажите ваш API токен. Его можно найти на странице White Label App в личном кабинете Travelpayouts:
  • В поле marker укажите ваш партнёрский маркер. Его также можно скопировать на  странице White Label App в личном кабинете Travelpayouts:
  • В поле client_device_host укажите ваш хост. Он составляется следующим образом: “[platform].[app]”, где
    • platform – платформа (ios)
    • app – id вашего приложения, которое вы передавали в identifier.android.id

Пример: "android.superpuper.travel-app"

Следующие шаги

Как только вы укажете id, а также обеспечите доступ к данным, ваше приложение готово для публикации в Google Play. 

Однако, для придания ему уникальности и повышения шансов на успешное прохождение ревью, мы рекомендуем кастомизировать ваше приложение. Мы собрали информацию про все доступные настройки в статье Настройка и кастомизация White Label App для Android.