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 wired to the EnfinitOS platform endpoints that exist today. Vendor-side SDK integrations (Broadsign / VIOOH / DJI / Tizen / Alexa / Twilio / Stripe / etc.) land per-customer at pilot integration time — those bring the renderer/transport/exchange-specific code; the EnfinitOS half is ready.

README

The developer-facing documentation in full

The same README the SDK package ships with — rendered here at build time so what you read matches exactly what you install.

@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, published alongside the April 2027 platform launch.

Sandbox

Run this SDK against a real tenant

The browser demo at enfinitos.com/sandbox runs today against a shared synthetic tenant. The dedicated developer sandbox — your own persistent tenant, API keys, full HTTP-contract coverage — opens ahead of the April 2027 platform launch.