Команди и файлове
Как се прави реклама на ръка и какво казва всеки файл. Всеки файл се проверява при четене, а грешката посочва точното поле.
Команди
npm run promo -- make <promo> # заснема всички кадри, после монтира
npm run promo -- record <promo> [shot…] # заснема наново всички или някои кадри
npm run promo -- render <promo> [--edit=edit-x.json] # само монтаж; вариант → video-x.mp4
npm run promo -- import <promo> <shot> <video> [--from=s] [--to=s] [name=s…]
npm run promo -- publish <promo> <review link> "<message>" # само по думата на собственика
npm run promo -- features <project> <guide file>
npm run promo -- scenarios <project> --accounts=a,b [--target=android] [--count=3]
npm run promo -- scenarios-check <project> <scenario set.json>
npm run check # типове, lint, формат, тестове
make |
Заснема, после монтира: цялото видео от нулата. |
record |
Връща демо данните в начално състояние и заснема кадрите от steps.json. |
render |
Монтира видеото по edit.json (или вариант) и пуска проверките. |
import |
Превръща всеки запис на екрана (видео от iPhone) в кадър, с отметки. |
publish |
Праща линка за преглед на телефона на собственика чрез issue в GitHub. |
features |
Чете ръководството на приложението в списък с какво може приложението. |
scenarios |
Пише заданието за сценариста. |
scenarios-check |
Проверява написаните сценарии и ги запазва като чернови. |
Файлове на проект
projects/<app>/
target.json къде е приложението, файлът с акаунтите, връщането на демо данните
features.json какво може приложението (от ръководството му)
filming.json какво може и какво не може да се снима
scenarios/*.md идеи за реклами с прости думи
assets/ музика, лого
promos/<promo>/
steps.json как се управлява приложението
edit.json как се монтира видеото (варианти: edit-store.json …)
out/<app>/<promo>/ записи и видеа (не се пазят в git)
target.json
Платформата (web или android); адресът на приложението или неговият
Android пакет и схема за линкове; пътят до файла с акаунтите, който стои извън проекта и никога не
се появява в логовете; командата за връщане на данните, пускана преди всеки запис; и за Android демо
часовник (часова зона и час от деня).
steps.json
Стъпките в setup се изпълняват извън кадър (вход, начален екран). Всеки от
shots се заснема като отделен запис. Кадър може да посочи account, с който
да се снима, две устройства (devices) едновременно или notifications, за
да се появяват известия. Всяка стъпка може да каже on на кое устройство се изпълнява.
| Стъпка | Какво прави |
|---|---|
open |
Отваря екран по пътя му. |
tap |
Натиска елемент; с optional го прескача, ако го няма. |
fill |
Пише в поле; {account.login} попълва вход по време на записа. |
type |
Пише текст там, където е фокусът. |
scroll |
Превърта с определен брой точки, с естествени плъзгания. |
waitFor |
Чака, докато се появи елемент. |
wait |
Задържа няколко секунди. |
mark |
Дава име на момента, за да може монтажът да реже до него. |
locate |
Намира елемент и записва рамката му, за изплуване и етикети. |
Елементите се намират по тестов идентификатор, по роля и име (button, tab,
link, checkbox; по подразбиране точно съвпадение) или по текст. Тестовите
идентификатори и пътищата работят на всеки език на приложението.
edit.json
Размерът и кадрите в секунда, тема (цветове, шрифт и вид на екрана: phone,
floating или full) и сцените по ред.
| Част | Какво казва |
|---|---|
сцена phone |
Запис от момент или отметка, за няколко секунди: caption (надпис),
zoom (приближения), lifts (изплуване),
speed (скорост), втори екран до него (with),
transition (преход).
|
сцена card |
Големи думи върху цвят; с картинка и призив за действие е крайната карта. |
say |
Разказвачът чете думите на сцената или друг текст в зададен момент. |
audio |
Музика (style: upbeat, calm, pop, със seed; или песен от file),
гласът и скоростта на разказвача, реплики, ефекти включени или не.
|
checks |
Спрямо кои правила се проверява: social или appStore. |
Проверки
Пускат се при всеки монтаж и се записват в checks.json. Всеки неуспех спира видеото.
hook |
Видеото започва с приложението, не с карта. |
reading-time |
Всеки надпис стои достатъчно дълго, за да се прочете. |
length |
Дължината пасва на мястото, за което е (App Store: от 15 до 30 секунди). |
forbidden-words |
Няма думи, забранени от магазините, в нашите текстове (Apple 2.3.8: „kids“, „child“ …). |
end-card |
Има крайна карта с лого и призив за действие. |
callouts |
Етикетите попадат върху екрана. |
voice-timing |
Репликите се побират във видеото и никога не се застъпват. |
no-still-stretches |
Нищо не стои неподвижно твърде дълго. |