FlowScope
Real-time Flutter debugging SDK. Inspect Riverpod state, network requests, and events from an in-app overlay — without leaving your app.
The Problem
You're debugging a Flutter app and something breaks. You don't know:
- Did the state update?
- Did the API return?
- Why didn't the UI change?
- At which step did this flow break?
You end up with scattered print() statements and mental reconstruction of what happened. FlowScope solves this.
What It Does
FlowScope gives you three answers in real time:
| Question | Panel |
|---|---|
| What is my state right now, and why did it change? | State |
| What happened, and in what order? | Timeline |
| Did this come from the network or local state? | Network |
All visible from a floating overlay inside your running app. No external tools. No context switching.
Installation
dependencies:
flowscope: ^0.1.0
Setup
1. Wrap your app
void main() {
runApp(
FlowScope(
child: ProviderScope(
observers: [FlowScopeObserver()],
child: MyApp(),
),
),
);
}
2. Add the Dio interceptor
final dio = Dio();
dio.interceptors.add(FlowScopeDioInterceptor());
3. Log events manually
FlowLogger.log('User tapped login');
FlowLogger.log('Something failed', level: FlowLogLevel.error);
That's it. Tap the floating button in your app to open the overlay.
Features
State Inspector
- Live view of every Riverpod provider
- Current value with color coding
- Tap to expand: previous value vs new value (diff view)
- Timestamp of last change
Event Timeline
- Chronological feed of everything that happened
- Color coded tags:
STATENETWORKLOGERROR - Newest events first
Network Inspector
- Every Dio request captured automatically
- Method, endpoint, status code, duration
- Tap to expand: request body, response body
- Color coded: green for 2xx, red for 4xx/5xx
Overlay Controls
- Clear — wipe all captured events
- Pause — stop capturing temporarily
- Close — collapse back to floating button
- Draggable — move the floating button anywhere
Disable in Production
FlowScope(
enabled: kDebugMode,
child: ProviderScope(
observers: kDebugMode ? [FlowScopeObserver()] : [],
child: MyApp(),
),
)
Roadmap
Screen-aware logging (attach events to current route)Bloc/Provider supportShake to open gestureExport session as JSONReplay network requests
Built By
Kennedy Owusu — built by a Flutter developer who got tired of debugging with print statements.
License
MIT