voo_watch 0.4.0 copy "voo_watch: ^0.4.0" to clipboard
voo_watch: ^0.4.0 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.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
218
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