r/FlutterDev • u/SwiftScoutSimon • 11h ago
Tooling I built Raccoon, a tiny Flutter runtime: first run in 15 s instead of 5 min, no Xcode or Gradle
Hi r/FlutterDev š I'm Simon, I build Lumide, a Flutter IDE. I wanted the write, save, see loop to be faster, so I built Raccoon, a tiny Flutter runtime, and today I'm open-sourcing it, with Raccoon Simulator as a demo you can run today. can run today.
Try it with Raccoon Simulator
Open Raccoon Simulator, and Raccoon shows up in flutter devices. Pick it in Lumide, VS Code, Android Studio or a terminal and run as usual. Your app appears in the simulator window, with hot reload and hot restart from your editor. No project to open in it, no new workflow.
How it works
Raccoon is a small runner built on Flutter's C embedder API. flutter run -d raccoon builds a debug bundle from your host's own snapshots, the runner hosts it on a prebuilt engine, and the simulator draws its frames. So there's no Xcode, no Gradle and no native build. The first launch sets everything up for you: it builds the runner, downloads a 15 MB engine and registers the custom device.
What else it unlocks
- Your whole app, not just previews. Flutter's widget previewer renders the functions you mark with
@Preview. Raccoon runs your real app: routing, state, services and hot reload, at phone, tablet or desktop size. - Hot-loaded plugins with custom UI. A Flutter app can show another Flutter app inside it with
raccoon_view. So an app can load plugins at runtime, each with its own custom UI, with no rebuild of the host app.
Numbers (Flutter Wonderous, flutter run to first frame, medians)
| Target | Clean build | Warm run |
|---|---|---|
| Chrome | 25.8 s | 24.8 s |
| macOS desktop | 46.4 s | 17.7 s |
| Raccoon on macOS | 15.0 s | 7.5 s |
| Linux desktop | 13.8 s | 4.5 s |
| Raccoon on Linux | 12.0 s | 3.5 s |
A first run against an Android emulator took 308 s from empty caches. Raccoon took 15.5 s. Hardware, versions and scripts to reproduce are in the README.
Limits, honestly
It's alpha. It speeds up the inner loop; it doesn't replace testing on a real device or in a browser.
- Plugins: pure Dart ones, the clipboard and
url_launcher. No text input yet. - Packages with native code or build hooks don't run on Raccoon yet.
- Frames are software rendered.
- macOS and Linux only for now.