Companion App
The companion app is under active development and may be unstable. For most users, we recommend using GadgetBridge on Android or native ANCS/AMS on iOS. Use this app only if you need specific features like firmware updates or want to help with testing.
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
| Feature | Android | iOS |
|---|---|---|
| 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 | ✅ | ✅ |
Download
For a stable experience, use GadgetBridge on Android or native ANCS/AMS on iOS instead.
Android
Download the latest APK from the GitHub Releases page.
After installing:
- Open the app and grant the requested permissions (Bluetooth, Location, Notifications).
- On ZSWatch, go to Settings → Bluetooth and enable Pairable.
- Tap Scan in the app to find your watch.
- Tap the watch to connect and pair.
iOS
No prebuilt app is available for iOS. You'll need to build from source — see below.
Building from Source
The app is a standard Flutter project. You need:
- Flutter SDK 3.10+ (stable channel)
- Android Studio for Android builds
- Xcode 15+ for iOS builds (macOS only)
# 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
- App repository: github.com/ZSWatch/ZSWatch-App
- MCUmgr fork (DFU plugin): github.com/ZSWatch/Flutter-nRF-Connect-Device-Manager