Specter

Privacy-first fitness tracking
Wear OS

Device Linking

Specter on Wear OS requires a one-time link to your Android phone. After that, the watch operates independently.

🔗
Screenshot: Link Device Button
🔢
Screenshot: 6-Digit Pairing Code
  1. Open Specter on your Wear OS watch
  2. Tap Link Device
  3. A 6-digit code appears on the watch
  4. The code is sent to your phone via the Wearable Data Layer
  5. Confirm the code on your Android phone
  6. Auth tokens are sent back and stored in EncryptedSharedPreferences
Fully Independent After Linking

The watch manages its own auth token refresh. Workouts record over cellular, WiFi, or Bluetooth relay. No phone needed during exercise.

Recording a Workout

🏃
Screenshot: Activity Type Picker
  1. From the home screen, tap an activity type:
    RunRUNNING — pace tracked
    RideBIKING — speed tracked
    SwimSWIMMING — open water
    HikeHIKING — elevation tracked
    WalkWALKING — pace tracked
    OtherWORKOUT — general
  2. Health Services begins recording sensor data and GPS activates
Permissions

On first use, the watch will request Body Sensors, Activity Recognition, and Location permissions. Grant all for full functionality.

Live Stats During Workout

📊
Screenshot: Live Stats Grid

During your workout, the watch displays a 3x2 grid:

PositionStatDetails
Top leftPACEmin:sec per km
Top rightHRHeart rate in bpm (red)
Middle leftDISTDistance in km
Middle rightTIMEElapsed time
Bottom leftCALActive calories
Bottom rightControlsPause and stop

Controls

  1. Pause (yellow) — pauses workout and data collection
  2. Stop (red) — ends workout, saves locally, triggers sync

Post-Workout Summary

Screenshot: Workout Summary

After stopping a workout:

  1. Activity type and distance displayed
  2. Duration and heart rate shown
  3. Sync status: "Synced" (green) or "Will sync when connected" (yellow)
  4. Tap Done to return to the picker

Offline Sync

☁️
Screenshot: Pending Sync Indicator

Specter saves every workout to local storage immediately. Uploads happen in the background via Android WorkManager.

  1. You finish a workout with no signal — activity saved to disk
  2. Watch connects to a network (cellular, WiFi, or Bluetooth relay)
  3. WorkManager detects connectivity and uploads pending activities automatically
  4. Both stats and GPS route (as GPX) are sent to the backend

Manual Sync

  1. If "Pending: X" appears on the home screen, tap it to force a sync
  2. Requires an active network connection
Backend Processing

When the GPX arrives, the backend strips device metadata, rounds timestamps, encrypts the track with AES-256, and jitters start/end coordinates by 500m. The route is only visible to you unless you create a ShareGrant.