dat-conventions

Шаблоны Kotlin, DatResult, соглашения по сессиям и возможностям для разработки Android с использованием DAT SDK

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

DAT SDK Conventions (Android)

Quick Reference

TaskCommand
Build app./gradlew assembleDebug
Run tests./gradlew test
Install app./gradlew installDebug
Lint app./gradlew lint

Architecture

The SDK is organized into four public modules:

  • mwdat-core: Registration, permissions, devices, and session creation
  • mwdat-camera: Stream capability, video frames, and photo capture
  • mwdat-display: Display capability, display UI components, icons, images, buttons, and video
  • mwdat-mockdevice: MockDeviceKit for testing without hardware

Initialization and session setup

Wearables.initialize(context)

val session = Wearables.createSession(AutoDeviceSelector()).getOrElse { error ->
    throw IllegalStateException(error.description)
}
session.start()

val camera = session.addCamera(StreamConfiguration()).getOrElse { error ->
    throw IllegalStateException(error.description)
}
camera.stream.start().getOrElse { error ->
    throw IllegalStateException(error.description)
}

Kotlin patterns

  • Use DatResult<T, E> for typed success and failure handling
  • Observe state with StateFlow and Flow
  • Create a Session first, then attach capabilities such as Stream or Display
  • Keep frame handling off the main thread when doing heavier processing

Error handling

Wearables.checkPermissionStatus(Permission.CAMERA)
    .onSuccess { status -> /* handle status */ }
    .onFailure { error, _ -> /* handle error */ }

Avoid getOrThrow() in user-facing samples. Surface typed errors from DatResult instead.

Naming conventions

TypePurposeExample
SessionDevice connection lifecycleWearables.createSession(...)
StreamCamera capability on a sessionsession.addCamera(...)camera.stream
DisplayDisplay capability on a sessionsession.addDisplay(...)
*SelectorDevice targetingAutoDeviceSelector
*ErrorTyped failure surfaceSessionError, StreamError

Key types

  • Wearables — SDK entry point
  • Session — lifecycle for an interaction with a linked device
  • Stream — camera capability attached to a session
  • Display — display capability attached to a session
  • StreamConfiguration — video quality and frame rate configuration
  • MockDeviceKit — simulated device environment for testing

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.

Testing with MockDeviceKit

val mockDeviceKit = MockDeviceKit.getInstance(context)
mockDeviceKit.enable()
val device = mockDeviceKit.pairGlasses(GlassesModel.RAYBAN_META).getOrThrow()

Use MockDeviceKit to drive registration, device availability, streaming media, and permission scenarios without physical hardware.

Common pitfalls

  • Do not call SDK APIs before Wearables.initialize(context)
  • Do not assume a session implies streaming or display access; capabilities are attached separately
  • Do not ignore DatResult failures from createSession, start, addCamera, addDisplay, or capturePhoto
  • Do not reuse terminally stopped sessions

Links

Больше skills от facebook

api-health
facebook
Мониторинг состояния API для приложения Meta — проверка лимитов запросов, объема вызовов и устаревания API. Используется для диагностики троттлинга, планирования мощности или подготовки к смене версии API…
official
api-integration
facebook
Провести разработчика через настройку интеграции Meta API с нуля — подобрать нужные API, найти руководства по настройке, требования к аутентификации,…
official
app-review-prep
facebook
Prepare a Meta app for App Review — checks current status, outstanding requirements, granted privileges, and submission history. Use before submitting an app…
official
debug-webhooks
facebook
Устранение неполадок с вебхуками для приложения Meta — проверка активных подписок, выявление ошибок конфигурации и отправка тестовых payload для проверки доставки. Используйте, когда…
official
webhook-setup
facebook
Настройте вебхуки для приложения Meta полностью — узнайте доступные темы, подпишитесь на поля и проверьте с помощью тестового payload. Используйте при настройке вебхуков для…
official
buck2-rule-basics
facebook
Помогите пользователям написать их первое правило Buck2, чтобы изучить фундаментальные концепции, включая правила, действия, цели, конфигурации, анализ и select(). Используйте…
official
add-ir-instruction
facebook
Guide for adding a new IR instruction to the Hermes compiler. Use when the user asks to add, create, or define a new IR instruction (Inst/Instruction) in the…
official
binary-size-analysis
facebook
Этот навык следует использовать, когда пользователь хочет проанализировать изменения размера бинарного файла hermesvm в диапазоне коммитов. Используйте, когда пользователь упоминает «binary size»,…
official