Арифметика ручной подготовки скриншотов для App Store беспощадна.
Если вы поддерживаете 3 размера устройств, 6 локалей и 5 кадров скриншотов, получается 90 скриншотов, которыми нужно управлять. Стоит изменить интерфейс, обновить текст оверлея или подправить рамки устройств, когда Apple выпускает новый iPhone, — и вы пересоздаёте все 90. Вручную.
Большинство инди-разработчиков делают это один раз, осознают цену и затем перестают обновлять скриншоты так часто, как следовало бы. Это решение тихо снижает конверсию страницы продукта при каждом посещении.
Автоматизация скриншотов решает эту проблему, но варианты инструментов варьируются от тех, что действительно стоят настройки, до тех, что требуют больше работы, чем экономят. В этой статье разбирается, что автоматизация скриншотов означает на практике, какие подходы встречаются чаще всего и как понять, что вы переросли ручной метод.
Что такое автоматизация скриншотов
Автоматизация скриншотов для App Store — это рабочий процесс программного создания, обрамления и загрузки скриншотов устройств без ручной работы над каждой комбинацией устройства, языка и кадра.
На практике это обычно означает одно или несколько из перечисленного:
Захват на основе UI-тестов. Запуск автоматизированных UI-тестов, которые инициируют захват скриншотов в определённых состояниях приложения. Инструмент snapshot из состава Fastlane — наиболее известная реализация этого подхода.
Обрамление устройств. Размещение исходных скриншотов внутри рамок устройств и программное добавление текстовых оверлеев, как правило, с помощью Fastlane frameit или аналогичного инструмента.
Подстановка локализованного текста. Замена текста оверлея в каждом скриншоте на нужный язык, чтобы французская страница продукта получила французские подписи, а японская — японские.
Пакетная загрузка. Отправка готовых скриншотов в App Store Connect через ASC API, зачастую в рамках CI/CD-пайплайна.
Полноценный пайплайн автоматизации скриншотов охватывает все четыре шага. Большинство разработчиков автоматизируют один-два, а остальное делают вручную.
Подход на базе Fastlane
Fastlane — наиболее известный набор инструментов для автоматизации скриншотов iOS. Его инструмент snapshot захватывает скриншоты, запуская UI-тесты в симуляторе и сохраняя результат. Инструмент frameit берёт эти скриншоты и помещает их в рамки устройств с опциональными текстовыми оверлеями.
Для разработчиков, которые уже используют Fastlane для деплоя, добавление автоматизации скриншотов — это расширение того, что они уже знают. Конфигурация хранится в Fastfile, тесты выполняются в симуляторе, а на выходе получается папка скриншотов в рамках.
Точки трения на практике:
Обновления рамок устройств отстают от релизов железа. Когда выходит новая модель iPhone, встроенные в frameit шаблоны могут оказаться устаревшими, и понадобятся ручные правки или патчи от сообщества, прежде чем вы сможете сгенерировать корректно обрамлённые скриншоты для нового устройства.
Зависимость от локальной машины. Fastlane snapshot по умолчанию работает на вашей машине. Прогон на 90 скриншотов может занять 30–40 минут даже на современном железе и всё это время занимать ваш компьютер.
Накладные расходы на локализацию. Добавление новой локали означает: настроить snapshot на приём локализованных строк, обновить текстовый файл для этой локали, пересоздать все скриншоты и загрузить их. Каждый шаг делается вручную, если вы не автоматизировали пайплайн полностью.
Для команды с ресурсами на DevOps это решаемые задачи. Для разработчика-одиночки, которому нужно выпускать функции, они превращаются в повод отложить обновление скриншотов.
Когда автоматизация оправдана
Автоматизация скриншотов окупается быстрее всего, когда верно хотя бы одно из следующего:
Вы поддерживаете несколько локалей. Даже два языка удваивают количество скриншотов. Автоматизация, которая берёт на себя подстановку текста под конкретную локаль, превращает то, что было бы 40 минутами работы, в CI-задачу, выполняющуюся, пока вы заняты чем-то другим.
Вы часто обновляете интерфейс. Если каждый релиз функций меняет визуальное состояние ваших скриншотов, ручное пересоздание на каждом цикле релиза быстро накапливается. Автоматизация поддерживает скриншоты в актуальном состоянии, не становясь стопором релиза.
Вы тестируете конверсию страницы продукта. Запуск теста Product Page Optimization в App Store Connect требует второго набора скриншотов для тестируемого варианта. Собрать этот набор с помощью автоматизации значительно быстрее, чем вручную создавать и загружать альтернативы.
Вы поддерживаете больше двух размеров устройств. Серия iPhone 15, серия iPhone 16, iPad — каждое добавляет собственные требования к скриншотам. Ручное управление тремя-пятью форматами устройств не масштабируется.
Переломный момент для большинства инди-разработчиков находится где-то в районе двух локалей и двух целевых устройств. Ниже этого ручной процесс ещё оправдан. Выше — автоматизация экономит больше времени, чем требует на настройку.
Как выглядит современный пайплайн скриншотов
Полноценный пайплайн автоматизации для инди-разработчика-одиночки работает так:
- UI-тесты, которые достигают определённых состояний приложения и вызывают функцию скриншота в каждом из них
- CI-триггер (по пушу в ветку, тегу релиза или ручному запуску), который прогоняет эти тесты на всех целевых симуляторах устройств
- Шаг обрамления, который накладывает оверлеи устройств и подставляет нужный локализованный текст для каждой локали
- Шаг загрузки, который отправляет готовые скриншоты в App Store Connect через ASC API
Ключевое отличие от более простой локальной настройки Fastlane: CI-триггер означает, что пайплайн выполняется в облаке, а не на вашей машине. Вы пушите код — и скриншоты генерируются. Вы просматриваете результат, утверждаете его, если всё выглядит правильно, и идёте дальше.
Marteso построен вокруг этой модели. Подключение репозитория означает, что пуш может автоматически запустить пайплайн скриншотов. Шаг обрамления и локализации выполняется в инфраструктуре Marteso, а не на вашем ноутбуке. Результат попадает в вашу панель для проверки, прежде чем дойдёт до App Store Connect.
Цель не в том, чтобы убрать суждение разработчика из процесса. Она в том, чтобы убрать 40-минутный локальный прогон, чтобы это время уходило на проверку результата, а не на ожидание.
Скрытая цена устаревших скриншотов
В данных по страницам продукта стабильно проявляется одна закономерность: разработчики, автоматизировавшие пайплайн скриншотов, обновляют скриншоты чаще, чем те, кто делает это вручную. Само по себе это неудивительно. Удивляет величина разницы в конверсии.
Когда скриншоты устарели, у них обычно есть одна или несколько таких проблем:
- Элементы интерфейса, видимые на скриншоте, больше не соответствуют текущему приложению, что создаёт когнитивное трение, когда пользователи устанавливают приложение и видят нечто иное
- Текст оверлея ссылается на функции или ценностные предложения, которые уже вытеснены более новой работой
- Неанглоязычные локали показывают английский текст, потому что их обновление откладывалось
Каждая из этих проблем — небольшой тормоз для конверсии. Вместе они образуют страницу продукта, которая стабильно недотягивает относительно качества самого приложения.
Решение — не более удачная стратегия скриншотов. Это снижение трения в процессе обновления, чтобы скриншоты оставались актуальными как побочный продукт обычной разработки.
Быстрый аудит
Если прямо сейчас вы управляете скриншотами вручную, пройдитесь по этим вопросам:
- Сколько скриншотов вы ведёте в сумме (устройства, умноженные на локали, умноженные на кадры)?
- Когда вы обновляли их в последний раз?
- Изменился ли с тех пор интерфейс так, что это видно на скриншотах?
- Есть ли у вас локализации, которые сейчас показывают английский текст?
Если ответ на вопрос 3 или 4 — «да», у вас есть скриншотный долг, который тихо снижает конверсию страницы продукта. Пользователи на неанглоязычных рынках, видящие английский текст, сталкиваются с трением, которое нигде в App Store Connect не отображается, кроме как в данных по конверсии.
Автоматизация скриншотов — не гламурная инфраструктура. Это та самая обвязка, благодаря которой всё остальное в вашей работе над ASO начинает действительно иметь значение.
Marteso автоматизирует создание, обрамление и локализацию скриншотов iOS в едином пайплайне, подключённом к CI. Начните на app.marteso.com.