Meta Open Source logo

Skill

dat-conventions

develop iOS applications with DAT SDK

Covers iOS Mobile Swift SDK

Description

Swift patterns, async/await, naming conventions, key types for DAT SDK iOS development

SKILL.md

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/await for 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

TypeConventionExample
Entry pointWearables.sharedWearables.shared.startRegistration()
Device sessions*SessionDeviceSession
CapabilitiesNamed by functionStream
Selectors*DeviceSelectorAutoDeviceSelector, SpecificDeviceSelector
Config*ConfigurationStreamConfiguration
Publishers*PublisherstatePublisher, 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. Call Wearables.configure() at launch, then use Wearables.shared
  • Stream — Camera streaming session. Create with config + device selector
  • Display — Display capability attached to a started DeviceSession
  • VideoFrame — Individual video frame with .makeUIImage() convenience
  • AutoDeviceSelector — Automatically selects the best available device
  • SpecificDeviceSelector — Selects a specific device by identifier
  • StreamConfiguration — Configure video codec, resolution, frame rate
  • MockDeviceKit — 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

  1. Add SDK via Swift Package Manager (SPM) in Xcode
  2. Import modules (MWDATCore, MWDATCamera, MWDATDisplay when rendering Display content)
  3. Configure at app launch: try Wearables.configure()
  4. Build with Xcode or xcodebuild
  5. Test with MockDeviceKit - no physical glasses required
  6. Debug using Xcode console for SDK logs

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.

© 2026 YourAI.tools. Every skill from an identity-verified publisher.

Independent catalog. Not affiliated with, endorsed by, or sponsored by Anthropic or any listed publisher. All trademarks belong to their respective owners.