dat-conventions

द्वारा facebook

Swift पैटर्न, async/await, नामकरण परंपराएँ, DAT SDK iOS विकास के लिए प्रमुख प्रकार

npx skills add https://github.com/facebook/meta-wearables-dat-ios --skill dat-conventions

DAT SDK Conventions (iOS)

Architecture

The public SDK is organized into these modules:

  • MWDATCore: Device discovery, registration, permissions, device selectors, DeviceSession
  • MWDATCamera: Camera, Stream, VideoFrame, photo capture
  • MWDATDisplay: Display capability, display UI components, icons, images, buttons, video
  • MWDATMockDevice: MockDeviceKit for testing without hardware
  • MWDATMockDeviceTestClient: MockDeviceTestClient for driving MockDeviceKit over HTTP from a UI-test process

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 (an any WearablesInterface)
  • DeviceSession — The connection to a selected device. Create with createSession(deviceSelector:), then attach capabilities
  • Camera — Camera capability from session.addCamera(config:); owns camera.stream
  • Stream — Camera stream: start(), stop(), capturePhoto(format:), and the frame/state/photo/error publishers
  • Display — Display capability from session.addDisplay()
  • VideoFrame — Individual video frame with .makeUIImage() and .sampleBuffer
  • Device / DeviceIdentifier — DeviceIdentifier is a String; resolve a Device with deviceForIdentifier(_:)
  • AutoDeviceSelector — Selects the best available device, optionally filtered (filter: { $0.supportsDisplay() })
  • SpecificDeviceSelector — Selects a specific device by DeviceIdentifier
  • StreamConfiguration — Configure video codec, resolution, frame rate
  • ListenerTokenBag / AnyListenerToken — Keep .listen {} subscriptions alive; dropping a token cancels it
  • 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

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.

See the dat-docs-mcp skill for Claude Code, Cursor, and MCP Inspector setup and troubleshooting.

Use llms.txt when your tool only supports static reference context.

Links

facebook की और Skills

gc-safe-coding
facebook
पूर्ण स्पष्टीकरण और तर्क के लिए, doc/GCSafeCoding.md देखें।
app-review-prep
facebook
Meta ऐप को App Review के लिए तैयार करें — वर्तमान स्थिति, लंबित आवश्यकताएँ, प्रदत्त विशेषाधिकार, और सबमिशन इतिहास जाँचें। ऐप सबमिट करने से पहले उपयोग करें…
api-health
facebook
मेटा ऐप के लिए API स्वास्थ्य की निगरानी करें — दर सीमाएँ, कॉल वॉल्यूम और API डिप्रिकेशन जाँचें। थ्रॉटलिंग का निदान करने, क्षमता की योजना बनाने या API संस्करण… के लिए तैयारी करने हेतु उपयोग करें।
debug-webhooks
facebook
मेटा ऐप के लिए वेबहुक समस्याओं का निवारण करें — सक्रिय सदस्यताओं की जाँच करें, गलत कॉन्फ़िगरेशन की पहचान करें, और डिलीवरी सत्यापित करने के लिए परीक्षण पेलोड भेजें। तब उपयोग करें जब…
api-integration
facebook
किसी डेवलपर को शुरू से Meta API इंटीग्रेशन सेट करने में मार्गदर्शन करें — सही APIs खोजें, सेटअप गाइड प्राप्त करें, प्रमाणीकरण आवश्यकताएँ,…
webhook-setup
facebook
Meta ऐप के लिए webhooks को end-to-end सेट करें — उपलब्ध topics खोजें, fields को subscribe करें, और test payload से verify करें। इसका उपयोग webhooks कॉन्फ़िगर करते समय करें…
test-ui
facebook
iwsdk CLI का उपयोग करके पोक उदाहरण के विरुद्ध Test UI सिस्टम (PanelUI, ScreenSpace) का परीक्षण करें।
flags
facebook
React रिलीज़ चैनलों में फीचर फ्लैग स्थितियों का निरीक्षण और तुलना करें। सभी चैनलों (www, www-modern, canary, next, experimental, rn वेरिएंट) में सभी फ्लैग देखें या --diff के साथ विशिष्ट चैनलों की तुलना करें। आउटपुट प्रारूपों में डिफ़ॉल्ट तालिका दृश्य, CSV निर्यात और क्लीनअप स्थिति समूहीकरण शामिल है। फ्लैग स्थितियाँ प्रतीकों द्वारा इंगित की जाती हैं: सक्षम (✅), अक्षम (❌), वेरिएंट परीक्षण (🧪), केवल प्रोफाइलिंग