Development environment for Garmin Connect IQ apps (watch apps, watch faces, data fields, widgets) written in Monkey C.
| Piece | Status |
|---|---|
| VS Code | ✅ installed |
| Java | ✅ 25.0.1 (Monkey C compiler is Java-based) |
| Monkey C VS Code extension | ✅ garmin.monkey-c 1.1.3 (latest) |
| Connect IQ SDK | |
| Device simulators | ✅ many devices downloaded |
| Developer key | ✅ developer_key.der generated (signs your builds) |
| First build | ✅ HelloWatch compiles to a .prg |
The developer_key.der is your publisher identity — keep it safe, back it up, and
never commit it (it's in .gitignore). If you lose it you can't push updates to apps you
already published under it.
WatchApps/
├─ developer_key.der / .pem # signing key (gitignored)
├─ build.ps1 # build / run / package helper
├─ .vscode/settings.json # points the extension at the dev key
└─ HelloWatch/ # starter watch-app (shows time + a MENU)
├─ manifest.xml # app id, type, target devices, min API level
├─ monkey.jungle # build config
├─ resources/ # strings, layouts, menus, drawables (icon)
└─ source/*.mc # Monkey C code
In VS Code (recommended): open the WatchApps folder, open a .mc file, press
F5 (or Ctrl+Shift+P → "Monkey C: Build for Device" / "Run App"). First run asks
you to pick a device — that launches the simulator.
From a terminal:
.\build.ps1 HelloWatch -Run # build for fenix7 + open simulator
.\build.ps1 HelloWatch -Device venu3 # build for another device
.\build.ps1 HelloWatch -Package # release .iq for the storeEasiest: Ctrl+Shift+P → "Monkey C: New Project" in VS Code — it scaffolds a new folder
(watch-app / watch face / data field / widget). Or copy HelloWatch/, then change the
id in manifest.xml to a fresh GUID ([guid]::NewGuid().ToString('N') in PowerShell)
and rename the entry class.
The SDK can only be updated through the Connect IQ SDK Manager (it needs a Garmin login), not from the CLI:
- Launch the Connect IQ SDK Manager (installed under
%APPDATA%\Garmin\ConnectIQ). - Sign in → SDK tab → download 9.2.0 → set it active.
- In the Devices tab, grab simulators for any new targets you care about.
The extension auto-updates with VS Code; it's already current.
- Create a free Garmin developer account and sign in at https://apps.garmin.com/developer.
- Produce a signed package:
.\build.ps1 <Project> -Package→bin/<Project>.iq(this is an all-devices, release build, signed withdeveloper_key.der). - On the developer dashboard: Upload an App → upload the
.iq, add name, description, screenshots, category, and supported languages. - Submit for review. Free apps go live after Garmin's automated/manual review.
Always publish updates with the same
developer_key.der— Garmin ties an app's identity to the key it was first signed with.
Garmin enabled paid apps in the Connect IQ Store (payments run through Garmin Pay). To sell an app you must become a verified merchant:
- $100/year non-refundable developer program fee to be onboarded as a merchant.
- You must be a verified trader before a priced app will appear in the store.
- Suggested price starts at $4.99 (you pick from Garmin's price points).
- Revenue split: Garmin keeps ~15% of the tax-exclusive price and covers credit-card fees; digital-service taxes / FX are withheld from payouts.
- Setting a price on an already-approved app pulls it for re-review before it relists.
- Common pattern: ship a free trial / limited version and unlock the full app on purchase.
Start here, signed in with your developer account:
- Monetization overview: https://developer.garmin.com/connect-iq/monetization/
- Merchant onboarding + payouts live under that same section's Merchant Onboarding / Account Management pages.
- SDK & API docs: https://developer.garmin.com/connect-iq/
- API reference: https://developer.garmin.com/connect-iq/api-docs/
- Programmer's guide: https://developer.garmin.com/connect-iq/core-topics/
- Submit an app: https://developer.garmin.com/connect-iq/submit-an-app/