II. Конфигурация
Нет конфигурации в коде, поставляется с конфигурацией по умолчанию и разрешить обновления OTA(по воздуху)
Редактировать на GitHubК конфигурация приложения относится все что вероятно будет изменено между развертываниями (App Store, TestFlight, локальная разработка) без изменения базового кода. В себя включает:
- API-ключи для бекенда (как внутренних, так и внешних сервисов)
- URL для удаленных ресурсов (API, которые использует ваше приложение)
- Переключатели функций (премиум/бесплатное приложения)
Приложения иногда сохраняют конфигурацию как константы в коде. Это нарушение правил iOS-factor, которое требует строгого разделения конфигурации от кода. Конфигурация может существенно различаться между развёртываниями, код не должен различаться.
Лакмусовой бумажкой того, правильно ли разделены конфигурация и код приложения, является факт того, что кодовая база приложения может быть в любой момент открыта в свободный доступ без компрометации каких-либо приватных данных.
Существует множество способов ввода значений конфигурации во время сборки
- Файлы конфигурации (e.g. JSON или YAML файлы)
- cocoapods-keys чтобы лучше спрятать ключи и применить их к вашему iOS-приложению во время сборки
- Индивидуальное решение (например, с использованием build phase)
Поскольку развертывания на платформе iOS значительно медленнее, чем на серверах, вам может потребоваться способ быстрого обновления конфигурации по воздуху (OTA - over the air) для быстрого реагирования на проблемы.
Обновления конфигурации OTA позволяют вам мгновенно:
- Запустить A / B-тесты, чтобы включить определенные функции или изменения пользовательского интерфейса только для части активных пользователей.
- Изменить API ключи
- Обновите веб-хосты или другие URL-адреса, которые изменились
- Удаленно отключить функции или скрыть кнопки
Без OTA-обновлений вам придется ждать около суток, пока Apple рассмотрит ваше приложение. Каждая подача на ревью также добавляет риск быть отклоненным и отсрочить потенциально срочное обновление.
В то же время вам может потребоваться совместимость с предыдущими версиями. Это означает, что пользователи, которые не могут выполнить обновление до последней версии iOS, могут вообще не иметь возможности устанавливать какие-либо обновления приложений. Предоставляя определенные обновления OTA, вы можете поддерживать старые версии вашего приложения.
Некоторые потенциальные подходы при реализации OTA-обновлений:
- Реализуйте свое собственное решение
- Готовые решение по типу Firebase remote config
- Сервис с открытым исходным кодом, как FeatureFlags