Closed beta · macOS only

Flutter apps on Apple Watch.

The Flutter engine runs on the Apple Watch itself — your Dart, your widgets, your whole app, running right there on the wrist. Build watch-only apps or companions to an iPhone app, with the Flutter workflow you already know: the same commands, hot reload, and DevTools, now pointed at watchOS.

Flutter 3.44.4 · flutter-watchos 0.1.0-beta.2

The Crown Breaker Flutter game running on an Apple Watch, with hot reload from the terminal

The engine runs on the watch

Your Dart and the Flutter engine run on the Apple Watch itself — real widgets and gestures on the wrist, whether you ship a watch-only app or a companion to your iPhone app.

The Flutter CLI you already know

create, run, build, doctor — the same commands you use every day, just pointed at watchOS. Nothing new to learn.

Hot reload, DevTools, your tests

The same fast inner loop and debugging tools you rely on, live on the watchOS Simulator — and flutter-watchos drive runs the integration_test/ suite you already write, there too.

Real watch, real Flutter

Build and run on a paired Apple Watch, not just the Simulator — real widgets, real gestures, real performance. Profile builds run on the device itself; hot reload and debugging stay on the Simulator.

The Digital Crown, in Dart

The crown scrolls your lists with the native watch feel, and is there as a raw rotation input when you want to drive a dial, a picker or a whole game with it.

Plugins, already ported

Storage, sensors, location, video, audio and Firebase — watchOS implementations on pub.dev that reach native Swift over dart:ffi. Federated: add one beside the plugin you already use and it registers itself.

Port the one you need

flutter-watchos plugin port scaffolds a federated watchOS package from an existing iOS plugin, with a report of how every API it uses fares on the watch. The wiring is done; you write the native part.

Platform views, in native SwiftUI

watchOS has real platform views. Put a native SwiftUI view in your Flutter layout where the system is the only thing that can do the job — a system video player, a native picker — and plugins can ship their own.

Fragment shaders, on a watch

Write a GLSL fragment shader and run it on the wrist at 60fps. watchOS ships no Metal and no SwiftUI shader effects, so outside a SpriteKit scene this is not something a native watch app can do. A shader takes a real share of the frame budget, so measure as you go.

From clone to a running app

Step 1: join the beta — sign in with GitHub and you're in. Then clone the toolchain, sign in from the terminal, and use it exactly like flutter. The engine downloads cover debug and profile builds — everything the beta needs.

Full getting-started guide →
# 2. install the toolchain
git clone https://github.com/flutterwatch/flutter-watchos.git
cd flutter-watchos && export PATH="$PATH:$PWD/bin"

# 3. connect your account + fetch the engine
flutter-watchos login
flutter-watchos precache && flutter-watchos doctor

# 4. build your first watch app
flutter-watchos create hello_watch
cd hello_watch && flutter-watchos run

Built with flutter-watchos

Crown Breaker is a neon brick-breaker you play entirely with the Digital Crown — a fully standalone watch app, written in Flutter, shipped through this toolchain, and live on the App Store.

Crown Breaker title screen Crown Breaker gameplay Crown Breaker level select

Shipping a watch app with flutter-watchos? Tell us through your dashboard and we'll feature it here.

Join the closed beta

Sign in with GitHub and you're in — start building right away. Beta builds run in debug and profile modes.