Yes, You Can Build Apple Watch Apps with Flutter Now
This title could be clearer and more informative.Try out Clickbait Shieldfor free (5 uses left this month).
A new independent toolchain called flutter-watchos brings the real Flutter engine and framework to Apple Watch, letting developers build watchOS apps in Dart with hot reload in the Simulator and AOT-compiled installs on physical devices. It supports the Digital Crown, native text input, VoiceOver, networking out of the box, and a growing set of federated plugins (shared_preferences, geolocator, Firebase, etc.). It is not an official Google or Apple project and is currently in closed beta, requiring macOS/Xcode, with AOT-only device builds and plugins needing explicit watchOS implementations for native code. A Digital Crown game called Crown Breaker and an open-source plugin showcase demonstrate it running on real hardware.
Table of contents
Meet “flutter-watchos”What the workflow looks likePlatform identity: one detail to get rightThe parts that feel genuinely watch-nativeGet Mehmet Ali Ustaoglu ’s stories in your inboxNetworking works out of the boxPlugins are where this becomes practicalBeyond the basic workflowProof that it runs on a real watchThe limitations to plan aroundHow to try itClosing thoughtQuestions this post answers
Can I build a native Apple Watch app using Flutter instead of SwiftUI?
Yes, an independent toolchain called flutter-watchos adds watchOS as a target to the standard Flutter workflow, running the real Flutter engine and framework directly on the watch rather than a WebView or SwiftUI companion layer. It is not an official Google or Apple project and is in closed beta, requiring macOS and Xcode, with hot reload available in the Simulator and AOT-compiled builds for physical devices. Developers weighing Flutter against SwiftUI for wearables can follow toolchain updates like this on daily.dev.
Why does Platform.isIOS return true when building a Flutter app for watchOS with flutter-watchos?
On a flutter-watchos build, Platform.operatingSystem returns watchos and Platform.isWatchOS returns true, but Platform.isIOS is also true and defaultTargetPlatform remains TargetPlatform.iOS, so Cupertino widgets and iOS styling work unmodified. Platform.isWatchOS is added by the flutter-watchos Dart VM and does not exist in the stock Dart SDK, so referencing it in shared code breaks normal iOS or Android builds; use FlutterWatchosPlatform.isWatch from the flutter_watchos package for shared code instead. Flutter developers debugging platform-detection quirks across targets can track fixes like this on daily.dev.
Does Flutter's HTTP networking work on Apple Watch even though watchOS blocks third-party apps from opening sockets directly?
Yes, NetworkImage, package:http, dio, and anything built on dart:io HTTP work on a physical Apple Watch with no changes, because flutter-watchos handles the socket restriction transparently. watchOS itself does not allow third-party apps to open sockets directly, so a plain HTTP call could not otherwise leave the device on its own. Teams building networked watch features can follow toolchain behavior like this on daily.dev.