WRISTGRID / TECHNICAL GUIDE

How WristGrid puts Garmin data on your iPhone

The short version: the pipeline is GW Bridge (Connect IQ) → Garmin's Connect IQ companion SDK on iPhone (with Garmin Connect Mobile installed) → WristGrid local snapshot → WidgetKit on the iPhone surfaces you choose.

THE PIPELINE

From watch signal to iPhone glance.

Every step is visible in the architecture. The widget is the final reader of a local snapshot, not a direct Garmin client.

  1. 01 Garmin watch Native metrics are read from the compatible watch.
  2. 02 GW Bridge (Connect IQ) → Garmin's Connect IQ companion SDK on iPhone (with Garmin Connect Mobile installed) GW Bridge runs on the watch; the iPhone app communicates using Garmin's official Connect IQ iOS companion SDK, declared in the app's project.yml, with Garmin Connect Mobile installed for device authorization.
  3. 03 WristGrid iPhone app WristGrid normalizes the data and stores it in local stores.
  4. 04 Local snapshot The app writes a cached App Group widget snapshot.
  5. 05 WidgetKit WidgetKit reads the local snapshot and schedules widget timelines.
  6. 06 Home Screen / Lock Screen iPhone renders the selected Home Screen or Lock Screen family.

WHY THIS PIPELINE EXISTS

Garmin data needs a companion path to become an iPhone widget.

Garmin does not provide a public widget API for this use case. GW Bridge (Connect IQ) runs on the watch, while the iPhone app communicates using Garmin's official Connect IQ iOS companion SDK, declared in the app's project.yml, with Garmin Connect Mobile installed for device authorization. WristGrid handles normalization and the iOS widget snapshot.

This also keeps responsibilities clear: Garmin supplies watch-native readings, WristGrid computes its own sleep, recovery, and training-load scores, and WidgetKit presents the result.

STEP BY STEP

What happens to a reading.

  1. The watch records the signal. Garmin-native metrics such as steps, Body Battery, heart rate, stress, SpO2, and recovery time start on the watch.
  2. GW Bridge passes selected data onward. GW Bridge (Connect IQ) runs on the compatible watch; the iPhone app communicates using Garmin's official Connect IQ iOS companion SDK, with Garmin Connect Mobile installed for device authorization.
  3. WristGrid normalizes and stores it. The iPhone app writes local stores and computes WristGrid-derived sleep score, recovery score, and training load from the relevant inputs.
  4. The app writes an App Group snapshot. This cached snapshot is the shared boundary between the full app and its WidgetKit extensions.
  5. WidgetKit renders a family. Home Screen small and medium widgets or Lock Screen circular, rectangular, and inline widgets read the local snapshot and show the fields that fit.

TIMING & BOUNDARIES

Why widgets are not continuously live.

WidgetKit controls when a timeline entry is displayed and refreshed. A widget extension does not make a network request to Garmin, so it cannot bypass iOS scheduling to display a continuously live value.

The honest model is periodic refresh: the GW Bridge registers a 15-minute temporal event, Lock Screen timelines use 10-, 15-, or 30-minute intervals, and WidgetKit decides the actual timing. In practice, expect a refresh typically within 15–60 minutes rather than a guaranteed instant update.

IN PRACTICE

What a cache-only widget means for you.

  • A widget can show the last good local snapshot when a newer reading is not available.
  • A dash or stale state is an honest signal that the cache has no fresh value to display.
  • Opening WristGrid can help force a fresh local snapshot; the watch, Garmin Connect Mobile, GW Bridge, and Bluetooth still need to be available.
  • There is no account, no analytics SDK, and no cloud upload of your data.

REQUIREMENTS

The setup you need.

  • iPhone with iOS 18 or later.
  • Garmin Connect Mobile installed, with Bluetooth on.
  • GW Bridge installed from the Connect IQ Store on a compatible watch.
  • Currently supported profiles: Instinct 2S, vivoactive 5, and Forerunner 265.

For the product overview, see WristGrid for Garmin widgets on iPhone. For placement details, read the Garmin Lock Screen widget guide, Garmin Connect iPhone widget guide, and Home Screen setup guide.

FAQ

Technical answers, without hand-waving.

Does WristGrid call Garmin or the network from a widget?

No. Widgets read local cached snapshots written by the WristGrid app; they do not call Garmin or the network directly.

Why do WristGrid widgets not update instantly?

WidgetKit controls timeline refresh, so iOS decides when a widget is rendered again. The bridge event and widget intervals make refresh periodic rather than continuous.

What is the difference between recovery time and recovery score?

Recovery time is a Garmin-native value read from the watch. Recovery score is computed by WristGrid from sleep, resting heart rate, stress, and Body Battery.

Which Garmin profiles are currently supported?

Currently supported profiles include Instinct 2S, vivoactive 5, and Forerunner 265. Compatibility is profile-specific, not universal across every Garmin device.

What happens when a snapshot is stale?

A cache-only widget may show its last good snapshot or a dash/stale state. Opening WristGrid can help force a fresh local snapshot when the watch and Bluetooth connection are available.