Skip to content

Multicam on every public surface - #222

Merged
darioalessandro merged 2 commits into
masterfrom
multicam-public-surfaces
Aug 22, 2026
Merged

darioalessandro merged 2 commits into
masterfrom
multicam-public-surfaces

Conversation

@darioalessandro

Copy link
Copy Markdown
Member

Multicam shipped in 10.0 and is in What's New, but nothing discoverable mentions it. This PR adds it everywhere an AI assistant, search engine or person reads about the app, with one consistent description (up to four iPhones as cameras, one director, synced shutter, time-aligned clips collected to the director; 2 free / 4 Pro):

  • README — intro paragraph, feature bullet, use-case bullet
  • website/public/llms.txt — summary + new guide link
  • Homepage FAQ (FAQPage JSON-LD) — "Can I record with multiple iPhones at the same time?"
  • New guide /blog/multicam-record-with-multiple-iphones — answer-shaped, 5 FAQ entries, targets "record video with multiple iphones at once" / "multi camera iphone app" / "sync video from two iphones"
  • App Store en-US — NEW Multicam block at the top of the description; keywords swap photography (we rank on the name already) for multicam,multi (94/100 chars). Other locales untouched — needs translation.

Not changed: subtitle ("Selfie remote & camera timer") — worth a separate ASO decision; e.g. "Multicam remote & live monitor".

Website: jest green, npm run build exports the new page, sitemap and llms.txt include it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KR4DG4HhVZehnx88YPaf3q

…de, App Store copy

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KR4DG4HhVZehnx88YPaf3q
@github-actions

github-actions Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

📊 Test Coverage Report

855/867 tests passed · ⏭️ 12 skipped

Metric Coverage
App code (excl. generated + vendored Theater) ██████████░░░░░░░░░░ 47.9% 🔴
Whole target ██████████░░░░░░░░░░ 48.8% 🔴

🎥 Capture & session core

File Coverage Lines
CaptureEngine.swift ██░░░░░░░░░░░░░░░░░░ 10.6% 173/1633 🔴
RecordingPipeline.swift ████████████████░░░░ 80.6% 697/865 🟢
FrameStreamingCoordinator.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/154 🔴
FrameStreamer.swift ███████████████████░ 93.4% 113/121 🟢
RemoteCmdFlatBuffers.swift ███████████████████░ 95.0% 1411/1485 🟢
📁 Full report — 102 files
File Coverage Lines
CountdownTimer.swift ████████████████████ 100.0% 48/48 🟢
JPEGFrameEncoder.swift ████████████████████ 100.0% 12/12 🟢
CameraPreviewMode.swift ████████████████████ 100.0% 13/13 🟢
AppActivityMonitor.swift ████████████████████ 100.0% 31/31 🟢
AppTheme.swift ████████████████████ 100.0% 33/33 🟢
Messages.swift ████████████████████ 100.0% 7/7 🟢
ZoomScale.swift ████████████████████ 100.0% 76/76 🟢
MultiCamChrome.swift ████████████████████ 100.0% 27/27 🟢
ZoomScaleSeed.swift ████████████████████ 100.0% 14/14 🟢
MonitorChrome.swift ████████████████████ 100.0% 57/57 🟢
PeerSessionCore.swift ████████████████████ 100.0% 26/26 🟢
ClockOffsetEstimator.swift ████████████████████ 100.0% 24/24 🟢
StreamingConfig.swift ████████████████████ 100.0% 34/34 🟢
MultipeerMessages.swift ████████████████████ 100.0% 12/12 🟢
FocusedCameraControlState.swift ████████████████████ 100.0% 6/6 🟢
Locked.swift ████████████████████ 100.0% 19/19 🟢
FrameCreditWindow.swift ████████████████████ 100.0% 9/9 🟢
AppDelegate.swift ████████████████████ 100.0% 17/17 🟢
CameraLink.swift ████████████████████ 100.0% 50/50 🟢
HEICFrameEncoder.swift ████████████████████ 100.0% 17/17 🟢
PeerCompatibility.swift ████████████████████ 100.0% 42/42 🟢
RigQualityMenu.swift ████████████████████ 99.3% 138/139 🟢
DeviceScannerViewModel.swift ████████████████████ 98.9% 184/186 🟢
FrameSender.swift ████████████████████ 98.4% 187/190 🟢
FocusPointMapping.swift ████████████████████ 97.6% 40/41 🟢
RemoteCmds.swift ███████████████████░ 96.5% 362/375 🟢
CaptureSyncMetadata.swift ███████████████████░ 95.5% 64/67 🟢
RemoteCmdFlatBuffers.swift ███████████████████░ 95.0% 1411/1485 🟢
DiscoveredPeers.swift ███████████████████░ 94.4% 17/18 🟢
WatchSharedTypes.swift ███████████████████░ 94.0% 236/251 🟢
VP9FrameEncoder.swift ███████████████████░ 93.9% 153/163 🟢
WatchPreviewStreamer.swift ███████████████████░ 93.6% 44/47 🟢
FrameStreamer.swift ███████████████████░ 93.4% 113/121 🟢
DebugLog.swift ██████████████████░░ 91.7% 22/24 🟢
WelcomeView.swift ██████████████████░░ 89.3% 492/551 🟢
MulticamController.swift ██████████████████░░ 88.7% 1290/1454 🟢
MulticamViewModel.swift ██████████████████░░ 87.5% 98/112 🟢
MediaProcessors.swift █████████████████░░░ 84.6% 11/13 🟢
VideoTransferProgressView.swift █████████████████░░░ 84.0% 295/351 🟢
UIAlertController.swift █████████████████░░░ 83.0% 44/53 🟢
UIImage+gif.swift ████████████████░░░░ 81.6% 129/158 🟢
CameraDeviceDescriptor.swift ████████████████░░░░ 81.0% 34/42 🟢
MonitorView.swift ████████████████░░░░ 80.7% 1183/1466 🟢
RecordingPipeline.swift ████████████████░░░░ 80.6% 697/865 🟢
CameraProgressOverlayView.swift ████████████████░░░░ 78.5% 186/237 🟡
RolePickerView.swift ███████████████░░░░░ 76.7% 330/430 🟡
FlatBufferSchemas_generated.swift (excluded from app-code metric) ███████████████░░░░░ 76.5% 807/1055 🟡
RecordingTimer.swift ███████████████░░░░░ 75.0% 39/52 🟡
StreamLog.swift ███████████████░░░░░ 75.0% 15/20 🟡
WelcomeViewModel.swift ███████████████░░░░░ 74.8% 104/139 🟡
CameraRecordingTimerView.swift ███████████████░░░░░ 73.4% 127/173 🟡
SettingsViewModel.swift ██████████████░░░░░░ 72.2% 96/133 🟡
SessionCoordinator.swift ██████████████░░░░░░ 72.1% 2360/3273 🟡
DeviceScannerView.swift ██████████████░░░░░░ 70.1% 1143/1631 🟡
MonitorPresenter.swift █████████████░░░░░░░ 66.1% 156/236 🟡
WelcomeViewController.swift █████████████░░░░░░░ 64.1% 41/64 🟡
ScannerLobby.swift ████████████░░░░░░░░ 62.5% 5/8 🟡
UIAlertPresenter.swift ████████████░░░░░░░░ 60.5% 26/43 🟡
MonitorViewModel.swift ███████████░░░░░░░░░ 57.4% 171/298 🟡
ViewfinderGestureLayer.swift ███████████░░░░░░░░░ 54.8% 92/168 🟡
StoreManager.swift ███████████░░░░░░░░░ 54.6% 83/152 🟡
UICmds.swift ██████████░░░░░░░░░░ 52.2% 105/201 🟡
CameraViewModel.swift ██████████░░░░░░░░░░ 49.8% 127/255 🔴
ZoomPill.swift ██████████░░░░░░░░░░ 49.4% 168/340 🔴
UIViewController+SwiftUIHosting.swift ██████████░░░░░░░░░░ 48.4% 15/31 🔴
FrameCodecs.swift █████████░░░░░░░░░░░ 47.1% 24/51 🔴
SceneDelegate.swift █████████░░░░░░░░░░░ 45.8% 11/24 🔴
FrameStreamReceiver.swift █████████░░░░░░░░░░░ 45.5% 234/514 🔴
PurchaseManaging.swift ████████░░░░░░░░░░░░ 42.0% 21/50 🔴
CameraScreenView.swift ████████░░░░░░░░░░░░ 39.1% 245/626 🔴
MonitorViewController.swift ███████░░░░░░░░░░░░░ 37.2% 84/226 🔴
HEVCFrameEncoder.swift ███████░░░░░░░░░░░░░ 36.5% 91/249 🔴
EnumExtensions.swift ███████░░░░░░░░░░░░░ 33.9% 40/118 🔴
DeviceScannerViewController.swift █████░░░░░░░░░░░░░░░ 24.5% 119/486 🔴
SoundManager.swift █████░░░░░░░░░░░░░░░ 23.4% 11/47 🔴
CameraRig.swift ████░░░░░░░░░░░░░░░░ 22.1% 144/653 🔴
WatchSessionManager.swift ████░░░░░░░░░░░░░░░░ 20.8% 37/178 🔴
MonitorViewController+SwiftUI.swift ███░░░░░░░░░░░░░░░░░ 16.4% 75/456 🔴
SessionDebugConsole.swift ███░░░░░░░░░░░░░░░░░ 15.2% 75/495 🔴
SwiftConstants.swift ███░░░░░░░░░░░░░░░░░ 13.3% 8/60 🔴
CaptureEngine.swift ██░░░░░░░░░░░░░░░░░░ 10.6% 173/1633 🔴
RolePickerController.swift ██░░░░░░░░░░░░░░░░░░ 10.2% 23/226 🔴
PeerLinkStatus.swift █░░░░░░░░░░░░░░░░░░░ 7.1% 10/141 🔴
CameraCountdownTorch.swift █░░░░░░░░░░░░░░░░░░░ 4.9% 3/61 🔴
WatchRemoteCameraController.swift █░░░░░░░░░░░░░░░░░░░ 3.2% 9/279 🔴
MulticamView.swift ░░░░░░░░░░░░░░░░░░░░ 1.0% 12/1185 🔴
CameraPermissionsView.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/640 🔴
CameraHostController.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/203 🔴
RemoteShutterHelpView.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/1373 🔴
CameraPermissionErrorView.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/416 🔴
PhotosAccessDeniedView.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/614 🔴
FrameStreamingCoordinator.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/154 🔴
MicrophonePermissionPromptView.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/347 🔴
SettingsView.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/788 🔴
Photos.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/12 🔴
MulticamViewController.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/283 🔴
LocalNetworkPermissionView.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/747 🔴
OrientationUtils.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/18 🔴
PermissionManager.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/159 🔴
PhotosAccessHelper.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/347 🔴
MultipeerService.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/123 🔴
Data+MD5.swift ░░░░░░░░░░░░░░░░░░░░ 0.0% 0/4 🔴

Generated from 3dc4e98 · workflow run

…on, aspect, HDR, focus

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KR4DG4HhVZehnx88YPaf3q
@darioalessandro
darioalessandro merged commit 5200109 into master Aug 22, 2026
5 checks passed
@darioalessandro
darioalessandro deleted the multicam-public-surfaces branch August 22, 2026 01:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant