WatchLink — reliable Apple Watch ↔ phone messaging (and cross-platform capable)

Open-sourced WatchLink today. It's a Swift 6 package that replaces WatchConnectivity with a dual-transport layer: BLE for service discovery, HTTP + SSE for data, and WatchConnectivity running in parallel as a third transport. Every message is framed, acked by the receiving device, and dedup'd by frame ID. Took our production reliability from 60% to 99% three years ago.

Three modules:

  • WatchLinkCore: protocol layer, zero platform dependencies
  • WatchLink: Watch-side client
  • WatchLinkHost: phone-side host (HTTP server built on Network.framework, no external dependencies)

Swift 6, no dependencies beyond what Apple ships.

Because the host-side protocol is just HTTP + BLE, it's cross-platform capable. The v1 release is Swift only but the protocol is trivial to reimplement in any language. Android is planned.

Write-up with the architecture and story: WatchConnectivity was failing 40% of the time. So I stopped using it. — tarek-builds
Repo: GitHub - tareksabry1337/WatchLink: Reliable real-time messaging between Apple Watch and phone. Dual-transport (HTTP + WatchConnectivity). Cross-platform capable. · GitHub

Feedback welcome.

2 Likes