EnfinitOSEnfinitOS
DevelopersEnvironment
Production-ready scaffold

Wearables SDK

watchOS 11 (Tiles 2.0 + WidgetKit), Wear OS 5, legacy Fitbit OS 5, Garmin Connect IQ 7. App Intents only — no SiriKit.

@enfinitos/sdk-wearablesSubstrate WEARABLESSwift, Kotlin, JavaScript, Monkey C
Install

Get the SDK

npm install @enfinitos/sdk-wearables

About this status badge

Typed, tested, documented, and grounded in the 2026 platform reality. Awaiting first customer-integration validation.

README

The developer-facing documentation in full

Rendered from packages/sdks/wearables/README.md at build time — the same source the package ships with.

@enfinitos/sdk-wearables

EnfinitOS reference SDK for the WEARABLES substrate. Four sibling implementations target the 2026 wrist-worn surface landscape: watchOS 11 (Apple Watch), Wear OS 5 (Pixel Watch 3, Galaxy Watch 7, Fossil — and the Fitbit successor line), Fitbit OS 5 (legacy / end-of-life), and Garmin Connect IQ 7.

Architecture

                  ┌─────────────────────────────────────────┐
                  │   @enfinitos/sdk-renderer-core (TS)     │
                  │   resolve / event-ingest / health       │
                  └─────────────────────────────────────────┘
                                     ▲
                                     │
                  ┌──────────────────┴──────────────────┐
                  │   wearables ts-core (shared notif    │
                  │   + content model + delivery rules)  │
                  └──────────────────┬──────────────────┘
                                     │
            ┌─────────────────┬──────┴──────┬────────────────┐
            │                 │             │                │
        ┌─────────┐      ┌────────┐    ┌────────┐      ┌────────┐
        │watchOS  │      │Wear OS │    │ Fitbit │      │ Garmin │
        │  11+    │      │   5    │    │  OS 5  │      │  CIQ7  │
        │SwiftCon │      │Compose │    │ legacy │      │MonkeyC │
        │WidgetKit│      │Tiles2.0│    │  EOL   │      │  CIQ   │
        └─────────┘      └────────┘    └────────┘      └────────┘

Getting started

TypeScript core (shared model)

import { WearablesClient } from "@enfinitos/sdk-wearables";

const client = new WearablesClient({
  apiBaseUrl: "https://api.enfinitos.com",
  authToken: jwt,
  deviceId: pairedWatchId,
  watchKind: "apple-watch",
});
await client.start();

const tile = await client.fetchTile({ tileSlot: "main-tile" });
if (tile) {
  myTileSurface.render(tile);
  await client.reportTileImpression(tile);
}

watchOS 11+

import EnfinitOSWatchOS

let client = EnfinitOSWatchOSClient(
    apiBaseUrl: URL(string: "https://api.enfinitos.com")!,
    authToken: jwt,
    pairedDeviceId: pairedWatchId,
)
try await client.start()

// Drive a WidgetKit complication directly from a resolved tile.
let snapshot = await client.fetchComplicationSnapshot(family: .modularSmall)

Wear OS 5

val client = EnfinitOSWearOSClient(
    context = applicationContext,
    apiBaseUrl = "https://api.enfinitos.com",
    authToken = jwt,
    pairedDeviceId = pairedWatchId,
)
client.start()
val tile = client.fetchTile(WearOSTileSlot.MAIN)

Garmin Connect IQ

```monkey-c using EnfinitOS;

class AcmeView extends WatchUi.View { function onUpdate(dc) { var directive = EnfinitOS.getCurrentDirective(); if (directive != null) { dc.drawText(0, 0, Graphics.FONT_SMALL, directive.headline, ...); } } }


## 2026 platform notes

### watchOS 11

- **Minimum target: watchOS 11** (Sept 2024). Buys us:
  - Swift Concurrency 5.10 strict-Sendable diagnostics.
  - **WidgetKit complications** as the **only** supported
    complication surface; `ClockKit` is **deprecated** for new
    development since watchOS 10. We do not implement against
    `ClockKit`.
  - Live Activities on watchOS 11 (background-running tiles).
- **Pair model:** the watchOS app pairs with the iPhone-side
  EnfinitOS Mobile SDK via `WCSession`. The phone owns the auth
  flow; the watch consumes resolved tiles via cached deliveries.
- **No video** on the watch surface — watchOS rejects long-form
  media in glanceable surfaces.

### Wear OS 5

- **Wear OS 5** (Aug 2024) targets Pixel Watch 3, Galaxy Watch 7,
  Fossil's new lineup, and the **Fitbit-line Wear OS devices** that
  replaced Fitbit OS.
- **Jetpack Compose for Wear OS** is the UI framework. No
  fragments, no XML.
- **Tiles 2.0** (released with Wear OS 5) — uses `TileService` +
  `Layout Elements`. Replaces the old `TileBuilders` API.
- **Watch Face Format** (XML, replaces Watch Face Studio's binary
  format since Wear OS 4) — the SDK exposes a watch-face module
  helper that emits the XML.
- **Companion communication:** `MessageClient`/`DataClient` from
  Google Play Services Wearable; mirrors the watchOS `WCSession`
  pattern.

### Fitbit OS 5 (legacy)

- **Google fully absorbed Fitbit's developer platform in 2024.**
  Fitbit OS development is now Wear OS development for new devices
  (Sense 3, Versa 5, etc.).
- **Fitbit OS 5 still receives security patches** but **does not
  accept new app submissions to the Fitbit Gallery as of Jan 2026**.
- The SDK under `fitbit/` is **legacy support only** — it documents
  the migration path to Wear OS and ships a minimal companion+app
  pair for households with existing Fitbit OS 5 devices that need
  to be sunset.

### Garmin Connect IQ 7

- **Connect IQ 7** (Q3 2024) is the current major version. SDK 7.1+.
- **Monkey C 7+** is the language. Strict typing rolled out in
  Monkey C 6; the SDK targets that level.
- **Surfaces:** watch faces, widgets, data fields, full-screen
  apps, audio-content providers. The SDK's primary surface is
  the **widget** (glanceable) — full-screen apps are out of scope
  for the v0.0.x line.
- Still active and growing — the platform has its own developer
  ecosystem distinct from Wear OS / watchOS.

## Endpoint surface

| SDK call | Platform endpoint | Status |
|---|---|---|
| `fetchTile` | `POST /runtime/resolve` | existing |
| `reportTileImpression` | `POST /runtime/event-ingest` | existing |
| `reportNotificationOpened` | `POST /runtime/event-ingest` | existing |
| Complication snapshot (watchOS) | OS-mediated; rendered locally | existing |
| Tile push (Wear OS) | OS-mediated; SDK supplies content | existing |
| Garmin widget refresh | OS-mediated (Connect IQ runtime) | existing |
| **Fitbit OS 5 new submissions** | **EOL — Fitbit Gallery rejects** | n/a |

## Test plan

- TS core: Vitest under `ts-core/src/__tests__/`.
- watchOS: XCTest under `watchos/Tests/EnfinitOSWatchOSTests/`.
- Wear OS: JUnit 4 under `wearos/src/test/`.
- Garmin: Manual + Connect IQ simulator (Garmin doesn't ship a
  Monkey C unit-test framework that runs out-of-emulator).
API reference

Hit the HTTP surface directly

The Wearables SDK is a thin client over the same governed HTTP API every other SDK calls. The full OpenAPI 3.1 reference lives on the docs site.

Sandbox

Run this SDK against a real tenant

The hosted sandbox is the fastest way to verify Wearables SDK against a real EnfinitOS tenant before committing to a pilot. Launching Q4 2026.