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

Введение

За последние 10 лет процесс разработки iOS значительно изменился:

  • от поддержки одного устройства до широкого спектра доступных iPhone-устройств на базе iOS и iPad, а также различных платформ, таких как tvOS и watchOS
  • от ручного включения подмодулей git до использования менеджеров зависимостей
  • от приложений iOS, которые в основном работают локально на устройстве, до приложений iOS, в значительной степени зависящих от бекэнда
  • от проверки/одобрения приложение которое занимало больше двух недель до проверки меньше чем за день
  • от установки приложения на телефон с помощью iTunes до распространения приложений через официальный канал TestFlight
  • От загрузки 5 скринов для каждого языка в iTunes Connect до 110 скринов под каждый язык, так же апп превью и видео
  • От стандратного Objective-C/C++ приложения до смеси разных языков включая Javascript
  • От медленных рилизов в прод, когда что-то готово до постояного релиза каждую неделю
  • От полных релизов до A/B тестов, медленных ролаутов и автоматического обнаружения регрессии

Что такое iOS-factor?

iOS-фактор - экспериментальный проект, запущенный в мае 2018 года. Он призван предоставить сборник лучших практик по созданию качественных iOS приложения. Каждая тема охвачена «фактором», который описывает идеальное состояние того, как может выглядеть процесс разработки приложений для iOS.

Из-за определенных ограничений (например, Xcode работает только на MacOS) не все требования могут быть выполнены. Этот проект направлен на постановку целей, а также наилучших современных подходов для решения проблем, с которыми iOS разработчики сталкиваются.

iOS-фактор - это абстрактное объяснение о процессах разработки приложений и архитектурных решениях для iOS. Поэтому языковые проблемы не будут обсуждаться.

Это живой проект, поддерживаемый сообществом разработчиков iOS. Вы можете найти полный исходный код на GitHub и обновить существующие страницы или добавить новые факторы.


iOS Factors

I. Зависимости

Явно объявляйте и изолируйте зависимости

II. Конфигурация

Нет конфигурации в коде, поставляется с конфигурацией по умолчанию и разрешить обновления OTA(по воздуху)

III. Паритет разработки/работы приложения

Держите окружения разработки, промежуточного развёртывания (staging) и рабочего развёртывания (production) максимально похожими

IV. Развертывания

Автоматизирывать деплой, чтобы вы могли выпускать его с любой машины.

V. Локальный против бека

Держите приложение iOS универсальным, чтобы по возможности работать без бэкэнда

VI. Обратно совместимые API

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

VII. Управление версиями приложения

Автоматизировать поднятие версий и билдов

VIII. Откаты

Откат сборки, которая вызывает проблемы

IX. Хранение данных

Следуйте рекомендациям Apple при хранении данных