rasht 0.1.3
rasht: ^0.1.3 copied to clipboard
Rain City API tracing for Flutter — in-app Dio request inspector with cURL and Postman export.
example/lib/main.dart
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:rasht/rasht.dart';
void main() {
Rasht.enabled = true;
runApp(const RashtExampleApp());
}
class RashtExampleApp extends StatefulWidget {
const RashtExampleApp({super.key});
@override
State<RashtExampleApp> createState() => _RashtExampleAppState();
}
class _RashtExampleAppState extends State<RashtExampleApp> {
late final Dio _dio;
@override
void initState() {
super.initState();
_dio = Dio();
_dio.interceptors.add(RashtInterceptor(RashtStore.instance));
}
Future<void> _sendSampleRequest() async {
await _dio.get('https://jsonplaceholder.typicode.com/todos/1');
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Rasht Example',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: const Color(0xFF18537C)),
),
builder: (context, child) {
return RashtOverlay(child: child ?? const SizedBox.shrink());
},
home: Scaffold(
appBar: AppBar(title: const Text('Rasht Example')),
body: Center(
child: Padding(
padding: const EdgeInsets.all(24),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text(
'Tap the umbrella button to open the API trace panel.',
textAlign: TextAlign.center,
),
const SizedBox(height: 24),
FilledButton(
onPressed: _sendSampleRequest,
child: const Text('Send sample GET request'),
),
],
),
),
),
),
);
}
}