NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Production-grade step counter for Flutter Android. TYPE_STEP_COUNTER foreground service on all API 24+, production-hardened rate caps and merge policies, SQLite logging, midnight/boot recovery, and BYO Health Connect smart merge.
Last release 2 months ago
28 Jul 2026
Ships unpredictably
gaps range from 8 days to 5 months
Rarely documented
notes for 9 of 39 stable releases
Nothing withdrawn
no release was ever pulled
10 months old
39 releases · first in 2025
One column per month.
iOS support via HealthKit (health package) with filtered step reads and HC smoothing semantics aligned with meltdown.
health package) with filtered step reads and HC smoothing semantics aligned with meltdown.IosHealthStepDetector service that emits realtime step events from Health app totals.watchTodaySteps() remains immediate and floor-protected while now supporting iOS live step source.Primary detection is now TYPE_STEP_COUNTER FGS on all Android API 24+ (including Samsung). Previous API≤29 / non-Samsung gate removed.
SmartMergeHelper.mergeStepCounts semantics changed — no longer naive max(). Uses StepLogic (HC duplication band, sensor overcount at 1.10×, HC can correct downward, server floor). Prefer SmartMergeHelper.merge() for full MergeDecision flags.StepCounterForegroundService on app termination is off by default to prevent dual-FGS fights.StepDetectorConfig.useForegroundServiceOnOldDevices defaults to false (legacy sensors_plus fallback only).StepCounterService: prefs persist, reboot detect, burst/minute/hour caps with baseline fold-in, vehicle/bicycle Activity Recognition filter, TYPE_STEP_DETECTOR cross-check, exact midnight alarm, BootReceiver, TimeChangeReceiver, rotation stampsActivityClassifier + soft-fail without Play Services (play-services-location)StepLogic, MergePolicy, smoothHcReading, RotationGuard, StepRateLimitersetNotificationDisplay, forceUpdateTodaySteps, consumeLastRotation, resetNativeStepStatestartTracking() — one-call setup (DB + FGS + aggregated logging)isBatteryOptimized(), requestBatteryOptimization()test/policy/uses-feature for stepcounter/stepdetector (required=false)initSteps (now aliases startTracking)getTodaySteps / getYesterdaySteps definitionsKEY_LAST_ROTATION_* and persists rotated prefsUSE_EXACT_ALARM, BODY_SENSORS, BODY_SENSORS_BACKGROUND, HIGH_SAMPLING_RATE_SENSORSTYPE_STEP_COUNTER listener (battery)NotificationChannel creation guarded for API 24–25 (StepCounterService)dispose() / stopLogging() flush write buffer and cancel flush timer^3.0.0 and request ACTIVITY_RECOGNITION + notifications before startTracking().await steps.startTracking() over the old three-call sequence.SmartMergeHelper.merge(...) and handle MergeDecision.setNativeNotificationDisplay(merged) — do not force-write merged HC into sensor baseline.This release promotes the native TYPE_STEP_COUNTER foreground service as the primary detection strategy and adds the SmartMergeHelper utility for comb
This release promotes the native TYPE_STEP_COUNTER foreground service as the primary detection strategy and adds the SmartMergeHelper utility for combining multiple step sources.
isNativeStepServiceRunning(), isUsingNativeStepServiceStepCounterService.kt — added isRunning flagBackground isolate sqflite initialization error — Added DartPluginRegistrant.ensureInitialized() to isolate entry point
sqflite initialization error — Added DartPluginRegistrant.ensureInitialized() to isolate entry pointTerminated sync gap reconciliation with idempotent deterministic gap keys
Automatic 30-day log retention policy
StepRecordConfig.lowEndDevice())ANR-safe architecture audit: all Kotlin I/O on Dispatchers.IO, async SharedPreferences, background SQLite
Dispatchers.IO, async SharedPreferences, background SQLiteDatabase migration: Hive → sqflite — Indexed SQL queries, smaller footprint, no code generation needed
hive, hive_flutter, hive_generator, build_runner)See git history for pre-1.9.0 notes.
See git history for pre-1.9.0 notes.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →