← Back to Android Apps
SmartRower icon
In Development

SmartRower

com.smartrower

A real-time companion app for the SmartRower rowing module. It plots live stroke telemetry — rate, distance, and power — as you row, captures a force-per-stroke curve from the drive transducers, and saves every session to a browsable history.

Features

  • Live Metrics — Actively updating plots for stroke rate, total distance rowed, and average stroke power on a rolling 30-second window
  • Force per Stroke — Real-time force transducer curve split into DRIVE and RECOVERY phases, with recent strokes ghosted behind the current one
  • Session Tracking — Elapsed time, stroke count, and peak power while rowing; stopping a session saves it automatically
  • Activity History — Cards for past sessions with duration, distance, stroke count, average power, and stroke rate
  • Settings — Clear user data, Terms of Service, and Privacy Policy
  • Hardware-Ready Architecture — Transport-agnostic data source layer: a built-in stroke simulator today, with the Garmin Bluetooth rower profile and ANT+ rowing support designed in

Screenshots

SmartRower live metrics with stroke rate, distance, and power plots SmartRower force-per-stroke plot with drive and recovery phases SmartRower activity history card SmartRower settings page

Tech Stack

  • Kotlin + Jetpack Compose (Material 3, dark theme)
  • Custom Compose Canvas plots — time-series charts and the per-stroke force curve, no chart library
  • Room — activity persistence
  • Hilt — dependency injection
  • Data source abstraction — Dummy (simulated) / Garmin Bluetooth / ANT+ transports

Status

In development (v0.1.0). Live data currently streams from the built-in stroke simulator; the Garmin Bluetooth rower profile and ANT+ hardware transports are next, with the UI, session tracking, and history already transport-agnostic.