voo_watch 0.5.2 copy "voo_watch: ^0.5.2" to clipboard
voo_watch: ^0.5.2 copied to clipboard

Flutter SDK for Apple Watch and Wear OS companion apps. Typed message bridge, haptics, health, complications, and a scaffolding CLI.

Changelog #

All notable changes to voo_watch will be documented in this file.

0.5.2 - 2026-05-12 #

Fixed #

  • Android: VooWatchHealthDriver no longer fails compileReleaseKotlin.
    • Cadence samples from DataType.STEPS_PER_MINUTE (a Long-valued metric) are now coerced to Double to match the onSample callback signature, which previously caused a type-mismatch compile error.
    • Removed the "pickleball" -> ExerciseType.PICKLE_BALL mapping; the constant is not exposed by androidx.health:health-services-client 1.1.0-alpha04 and was an unresolved reference. "pickleball" now falls through to ExerciseType.WORKOUT like other unsupported sports.

0.5.1 - 2026-05-12 #

Changed #

  • Maintenance release. Republish of the 0.5.x line to bring the pub.dev artifact in sync with downstream consumers that have been pulling the package via workspace path overrides. No API changes.

0.5.0 - 2026-05-12 #

Added #

  • VooWatchHealth.subscribe(metrics, {activityType}) — when the metrics set includes workoutActive, the watch starts a live workout session of the requested kind (HKWorkoutSession on watchOS, ExerciseClient on Wear OS). activityType is the lowerCamelCase activity name, e.g. running, pickleball, cycling. Apps that don't need workout sessions can omit it — the call is fully backwards compatible.
  • VooWatchHealthMetric gained pace, cadence, and speed to round out the cardio sample set.

0.4.0 - 2026-04-29 #

Added #

  • voo_watch:doctor — new CLI subcommand (dart run voo_watch:doctor) that health-checks a watch project after voo_watch_ui:init / voo_watch:init --fix-build-phases. Verifies pubspec, the ios/ folder, watch target detection, the four SwiftUI renderer files, App.swift wiring (including the theme env injection), Podfile installed, and that the watch target is registered in Runner.xcodeproj. Each failure prints an actionable next step instead of letting Xcode fail 60 seconds into a build.

Changed #

  • Version bump to align with the voo_watch_ui 0.4.0 release (closure event handlers, typed icons, WatchUiBootstrap, testing helper). The bridge, transports, haptics, health, and complications APIs in voo_watch itself are unchanged.

0.3.1 - 2026-04-28 #

  • Version bump to align with the voo_watch_ui 0.3.1 release. No functional changes to voo_watch itself; the bridge, transports, haptics, health, and complications APIs are unchanged.

0.3.0 - 2026-04-28 #

Added #

  • Web fallback transport. VooWatch.instance now auto-selects an in-memory transport when kIsWeb is true. Calls like VooWatchUi.instance.render(...) are harmless no-ops in the browser, enabling Flutter web hot-reload previews of watch UI without a MissingPluginException on the voo_watch/method channel. The web fallback uses the same FakeVooWatchTransport that ships in package:voo_watch/testing.dart; its doc comment is updated to reflect the dual role (tests + web preview).

0.2.2 - 2026-04-28 #

Fixed #

  • iOS: emitReachability wrote to the FlutterEventSink directly from WCSessionDelegate callbacks, which fire on background queues. That produced "channel sent a message from native to Flutter on a non-platform thread" warnings and could drop reachability events — leaving Dart listeners stuck in their last observed state. Reachability is now routed through the same forward(...) helper the other channels use, so every emit hops to the main thread.
  • iOS: voo_watch/messages could call FlutterResult twice — once synchronously after WCSession.sendMessage and again from the async errorHandler. Flutter asserts on a double-completed result, which could trip the engine and silently break subsequent sends. The bridge now wraps every send in a ResultResolver that completes exactly once and always on the main thread; the eager success path stays so receivers don't need a reply handler, and the async errorHandler becomes a no-op once success has already been reported.

0.2.1 - 2026-04-28 #

Changed #

  • Tightened description: to fit pana's 60–180 char window so the package scores full marks under "Provide a valid pubspec.yaml".
  • Inlined formatter: page_width: 160 in this package's analysis_options.yaml so pana picks it up when scoring without the workspace root in scope. No source changes — every file already conformed at the project's 160-column width.

0.2.0 - 2026-04-26 #

Changed #

  • voo_watch is now positioned as the phone↔watch BRIDGE. For Flutter UI on Wear OS, use the new sibling package voo_wear instead of scaffolding Compose.
  • voo_watch:init default --platform is now ios (was both). Pass --platform android --variant compose if you still want a native Compose Wear OS module (for Tiles, Complications, or Watch Faces).
  • voo_watch:init --platform android (without --variant compose) now prints a redirect to voo_wear and exits without writing files.

Notes #

  • No API changes. Existing apps using VooWatch.instance keep working untouched.
  • Apple Watch story is unchanged: the Swift plugin and SwiftUI scaffolding template stay.

0.1.0 - 2026-04-26 #

Added #

  • Initial release.
  • VooWatch facade with typed messages, application context, user info, and reachability stream.
  • VooWatchHaptics facade with cross-platform haptic types.
  • VooWatchHealth facade for sample passthrough from watchOS HealthKit and Wear OS Health Services.
  • VooWatchComplications facade for updating complications (watchOS) and tiles (Wear OS).
  • iOS plugin wrapping WatchConnectivity.
  • Android plugin wrapping the Wearable Data Layer (MessageClient, DataClient, CapabilityClient).
  • dart run voo_watch:init CLI that scaffolds a SwiftUI watchOS target and a Compose Wear OS module wired to the Flutter app.
  • FakeVooWatchTransport exported from package:voo_watch/testing.dart for in-process widget tests.
1
likes
150
points
528
downloads

Documentation

API reference

Publisher

verified publishervoostack.com

Weekly Downloads

Flutter SDK for Apple Watch and Wear OS companion apps. Typed message bridge, haptics, health, complications, and a scaffolding CLI.

Homepage
Repository (GitHub)
View/report issues

Topics

#flutter #watch #wearable #watchos #wear-os

License

MIT (license)

Dependencies

args, flutter, meta, path

More

Packages that depend on voo_watch

Packages that implement voo_watch