Skip to main content

Companion App

info

The iOS companion app is available on the App Store. The Android version is available on Google Play but currently requires an invite, see the Android section below for details. If you run into issues on Android (especially with keeping the BLE connection alive in the background), GadgetBridge is a good alternative.

ZSWatch has an open-source companion app built with Flutter that works on both Android and iOS.

Overview

The companion app connects to ZSWatch over BLE and replaces GadgetBridge on Android while adding features that aren't available through standard iOS ANCS/AMS services.

Features

FeatureAndroidiOS
BLE connection & auto-reconnect
Notification forwarding— (uses ANCS)
Music control— (uses AMS)
Firmware update (DFU)
LVGL resource upload
Health data (steps, heart rate)
Battery & connection analytics
GPS location relay
Weather sync
HTTP proxy for watch
Developer tools (logs, sensors)
Background BLE connection
iOS

On iOS, notification forwarding and media control are handled natively by the watch using Apple ANCS and AMS services, no app involvement needed for those features.

Download

iOS

Download the ZSWatch companion app from the App Store.

After installing:

  1. Open the app and grant the requested permissions (Bluetooth, Location).
  2. On ZSWatch, go to Settings → Bluetooth and enable Pairable.
  3. Tap Scan in the app to find your watch.
  4. Tap the watch to connect and pair.

Android

The Android companion app is available on Google Play, but it currently requires an invite to install.

How to get access

Everyone who purchased a ZSWatch DevKit using a Google account email address has already been invited. If you used a different email or haven't received access, reach out on Discord or email mail@zswatch.dev and we'll add you. Once we have enough active testers, Google will approve the app for public release on the Play Store.

There is also a Demo mode available in the app's settings that lets you explore the UI without a watch connected.

Background connection

The Android companion app may have issues keeping the BLE connection alive in the background on some devices. If you experience frequent disconnects, consider using GadgetBridge instead.

After receiving access and installing from the Play Store:

  1. Open the app and grant the requested permissions (Bluetooth, Location, Notifications).
  2. On ZSWatch, go to Settings → Bluetooth and enable Pairable.
  3. Tap Scan in the app to find your watch.
  4. Tap the watch to connect and pair.

Building from Source

The app is a standard Flutter project. You need:

# Clone with submodules (includes MCUmgr fork)
git clone --recurse-submodules https://github.com/ZSWatch/ZSWatch-App.git

# Or if already cloned without submodules:
# git submodule update --init

cd ZSWatch-App/zswatch_app

# Install dependencies
flutter pub get

# Generate code (database, state management)
dart run build_runner build --delete-conflicting-outputs

# Run in debug mode on connected device
flutter run

# Build release APK (Android)
flutter build apk --release

For more details, see the full README.

Source Code