dat-conventions
Swift patterns, async/await, naming conventions, key types for DAT SDK iOS development
How do I install this agent skill?
npx skills add https://github.com/facebook/meta-wearables-dat-ios --skill dat-conventionsIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill provides development guidelines and architectural overviews for the DAT SDK on iOS. It consists of standard documentation, code snippets, and build instructions that reference official developer resources.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
DAT SDK Conventions (iOS)
Architecture
The SDK is organized into four modules:
- MWDATCore: Device discovery, registration, permissions, device selectors
- MWDATCamera: Stream, VideoFrame, photo capture
- MWDATDisplay: Display capability, display UI components, icons, images, buttons, video
- MWDATMockDevice: MockDeviceKit for testing without hardware
Swift Patterns
- Use
async/awaitfor all SDK operations — the SDK is fully async - Use
AsyncSequence/ publisher.listen {}for observing streams - Annotate UI-updating code with
@MainActor - Never block the main thread with frame processing
- Handle errors with do/catch — the SDK throws typed errors
Naming Conventions
| Type | Convention | Example |
|---|---|---|
| Entry point | Wearables.shared | Wearables.shared.startRegistration() |
| Device sessions | *Session | DeviceSession |
| Capabilities | Named by function | Stream |
| Selectors | *DeviceSelector | AutoDeviceSelector, SpecificDeviceSelector |
| Config | *Configuration | StreamConfiguration |
| Publishers | *Publisher | statePublisher, videoFramePublisher |
Imports
import MWDATCore // Registration, devices, permissions
import MWDATCamera // Stream, VideoFrame, photo capture
import MWDATDisplay // Display, FlexBox, Text, Button, Image, Icon, VideoPlayer
For testing:
import MWDATMockDevice // MockDeviceKit, MockGlasses, MockCameraKit
Key Types
Wearables— SDK entry point. CallWearables.configure()at launch, then useWearables.sharedStream— Camera streaming session. Create with config + device selectorDisplay— Display capability attached to a started DeviceSessionVideoFrame— Individual video frame with.makeUIImage()convenienceAutoDeviceSelector— Automatically selects the best available deviceSpecificDeviceSelector— Selects a specific device by identifierStreamConfiguration— Configure video codec, resolution, frame rateMockDeviceKit— Factory for creating simulated devices in tests
Error Handling
do {
try Wearables.configure()
} catch {
// Handle configuration error
}
do {
try await Wearables.shared.startRegistration()
} catch {
// Handle registration error
}
Build and Test
# Install dependencies via Swift Package Manager
# In Xcode: File > Add Package Dependencies > enter repo URL
# Build from command line
xcodebuild -scheme MWDATCore -destination 'platform=iOS Simulator,name=iPhone 16'
# Run tests
xcodebuild test -scheme MWDATCoreTests -destination 'platform=iOS Simulator,name=iPhone 16'
For sample apps:
# Open the sample app workspace
open ExternalSampleApps/CameraAccess/CameraAccess.xcodeproj
# Build and run on simulator (uses MockDeviceKit - no glasses needed)
xcodebuild -scheme CameraAccess -destination 'platform=iOS Simulator,name=iPhone 16'
Development Workflow
- Add SDK via Swift Package Manager (SPM) in Xcode
- Import modules (
MWDATCore,MWDATCamera,MWDATDisplaywhen rendering Display content) - Configure at app launch:
try Wearables.configure() - Build with Xcode or
xcodebuild - Test with MockDeviceKit - no physical glasses required
- Debug using Xcode console for SDK logs
Live docs search
If your editor supports remote MCP servers, connect https://mcp.developer.meta.com/wearables and use search_dat_docs for current DAT setup, session lifecycle, camera streaming, MockDeviceKit, permissions, and exact API symbols. This public docs server does not require authentication; do not configure tokens, OAuth, or custom authorization headers for it.
Use llms.txt when your tool only supports static reference context.
Links
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/facebook/meta-wearables-dat-ios/dat-conventions">View dat-conventions on skillZs</a>