Open-source observability for Flutter

Memory, performance, and stability — on one radar.

The signal comes to you. A draggable on-device badge surfaces leaks, jank, and crashes as they happen — a DevTools companion goes deep when you need it, and Radar Desktop takes it further still: offline heap & trace analysis, a live connection, and Android native profiling. Zero-config. No base classes. A complete no-op in release.

flutter pub add radarscope debug + profile only
Memory 15 leaks
Performance 4.2% jank
Stability 6 errors
ON DEVICE

A badge that comes to you. Draggable overlay + full-screen inspector, right in the running app.

IN DEVTOOLS

A companion that goes deep. Capture and diff any two heap snapshots, dense trace tables, retaining paths.

ON DESKTOP

A standalone analyzer. Offline heap/trace analysis, a live VM-Service connection, and Android native profiling with symbolization.

The problem

The worst bugs don't crash on commit. They accumulate.

A controller that's never disposed. A frame that quietly blows the 16ms budget. An error swallowed three layers down. None of them break the build — they erode the app over a long session until a user feels it, and the trace points at nothing.

DevTools can find all of it, if you know to go looking. Flutter Radar watches continuously and brings what it finds to the surface — on the device, as you build.

Three pillars, one toolkit.

drop in once — get all three

How it works

One init call. No base classes.

01

Add it

Two dev-dependencies and one FlutterRadar.init(). Nothing to extend, no mixins on your types.

02

Run it

Use the app in debug or profile. Radar watches the heap, the frames, the traces, and the error zone continuously.

03

Read the signal

The badge shows worst severity across all three. Tap for the inspector, or open the DevTools companion to go deep.

Beyond the app

One suite, now with a desktop home.

Radar Desktop is a standalone macOS-first analyzer for everything the suite captures — heap dumps, Perfetto traces, and a live VM-Service connection — plus an Android native-profiling workflow for the memory that lives below the Dart heap.

  • Offline: import & analyze, no running app required
  • Connected: live Performance + Stability over ws://
  • Android native: heapprofd capture, checkpoint diff, symbolization
Explore Radar Desktop
Offline import & analyze
Connected ws:// VM Service
Android Native adb + heapprofd

Safe by construction

Radar never throws into your app and never measurably slows it. It runs only in debug and profile, and is fully tree-shaken out of release builds — there is nothing of it left to ship.

release no-op never throws never slows the host

Install

Three edits, all three pillars.

Memory, Performance, and Stability all come from one project. Add the deps, enable the lint plugin, call init.

View on pub.dev
pubspec.yaml1 / 3
dev_dependencies:
  radarscope: ^0.1.0
  custom_lint: ^0.6.0
analysis_options.yaml2 / 3
analyzer:
  plugins:
    - custom_lint
main.dart3 / 3
FlutterRadar.init(overlay: true);
runApp(const MyApp());