Setup and build
這一頁還沒有中文版,以下為英文原文。
just is the single entry point. From a clone:
just setup # macOS / Homebrew: meta-check tools + git hooksjust check # hygiene, markdown, links, secrets, swift testRun just with no arguments to list recipes. Shared protocol logic is tested
without a camera (just test / swift test). Pairing and live view need a
physical phone and an Osmo Pocket 4 / 4 Pro (Nano live view is AVC).
Needs XcodeGen (brew install xcodegen):
cd ios && xcodegen generate && open OpenPocketCine.xcodeprojThe Simulator has no Bluetooth or camera Wi-Fi. Select a physical iPhone, set
your Team under Signing, and enable Hotspot Configuration on the App ID.
Native gate: just native-check.
For camera-connected development checks, the opt-in iPhone feed stress harness can isolate uninterrupted feed or Media catalog return. It reconnects a saved Pocket 4 Pro, checks fresh pipeline counters and stops at serious thermal state. Use one phone at a time; these Debug assist workloads do not establish Release thermal performance or physical display scanout.
More: iOS app.
Android
Section titled “Android”Needs Android Studio / JDK 17+ and the Swift Android SDK pin in ANDROID.md
(Swift 6.3.3). From the repo root:
just android-core # cross-compile OpenPocketViewCore → jniLibsjust android-check # assembleDebug, unit tests, lintWith a phone plugged in, just android-install builds, installs and launches
the debug build, and just android-device-test runs the instrumentation suite
on it. Both take an optional serial when several devices are attached
(just android-device-test R58R92BL76K).
The debug app’s separate .debug application ID lets it coexist with the Play
beta; saved pairing and preferences belong to the app you opened.
The Compose app is arm64-v8a only. Join the
public beta on Google Play. Pairing and live view
need a physical phone. More: Android app. Maintainer
upload: just android-play-setup.
Connection stress tooling
Section titled “Connection stress tooling”Contributors can inspect a seeded connection matrix and exercise its reporting without a camera (Python 3.10+):
just connection-stress plan --platform android --cycles 3 --seed 401just connection-stress demo --platform iosjust connection-stress-testThe maintainer connection stress guide describes script and local-agent drivers for physical SoftAP, phone-hotspot, BLE and two-camera experiments. Device adapters must supply fresh numeric evidence; none is bundled with this runner. Recording is opt-in, unsupported paths remain coverage gaps, and generated artifacts stay local. Offline demos are explicitly marked simulation and do not qualify either app on hardware.
With Swift installed, just connection-chaos --seed 401 --seeds 128 exercises
the real portable packet assembler, command mailbox and recovery policy under
loss, reordering, congestion and outages while settings requests continue.
Its virtual timing is not camera performance evidence.
For concurrent UI/control work on phones, the guide documents iPhone
INJECT_MODE=overlap with just ios-feed-stress, and
just android-feed-stress --seed 401 --seconds 300. Both reconnect a saved
camera and overlap bounded local video faults with operator actions. Android
also requires actual ISO command replies; iOS has broader UI scenario coverage.
Physical trials exposed delayed picture recovery on both platforms; the guide
records the results and remaining coverage. The iPhone runner also provides
opt-in stronger gimbal/ISO/WB workloads, matched automatic-versus-Media recovery
probes and a verified attachment path when normal XCTest app launch fails.
Complete qualification remains open on both platforms. Local video drops do not
reproduce Wi-Fi route loss or network congestion. Pair first, connect the
unlocked phone by USB, and follow the guide’s model requirements.
The ordinary just android-device-test suite excludes the camera-only stress
class; use the dedicated command to opt into camera control and fault injection.
This handbook
Section titled “This handbook”just handbook # http://127.0.0.1:4321/just handbook-build # production buildThe handbook deploys to
opencapture.org/openpocketcine/docs through a
Vercel deploy hook when handbook/ changes on main. The rest of the website
lives in the private repo erik-sutton95/opencapture-site.
Frame.io (optional)
Section titled “Frame.io (optional)”Disabled unless you add a gitignored Adobe Native App client ID. Uploads use the
Frame.io Platform API (v4). See
docs/frameio-setup.md
in the repo. No keys are committed.
Hygiene
Section titled “Hygiene”Secrets, camera Wi-Fi passwords, packet captures, and unofficial LUT dumps stay
out of git. docs/commit-hygiene.md
is the gate. GitHub workflow (PRs, labels, issues vs discussions) lives in
CONTRIBUTING.md.