A Handy Toolkit for Mobile App Debugging 🚀
ISpect is a simple yet versatile library inspired by web inspectors, tailored for mobile application development.
An add-on package to use the Gemini AI Api to generate a `report` and `log` questions.
Show some ❤️ and star the repo to support the project!
Packages
ISpect can be extended using other parts of this package
Package | Version | Description |
---|---|---|
ispect | Main package of ISpect | |
ispect_ai | An add-on package to use the Gemini AI Api to generate a report and log questions |
|
ispect_jira | An add-on package to use the Jira Atlassian Api to create issue tickets immediately via Feedback |
|
ispect_device | An additional package for using tools to view platform & device info. | |
ispectify | An additional package for logging and handling. Based on Talker . |
|
ispectify_bloc | An additional package for logging and handling BLoC . |
|
ispectify_dio | An additional package for logging and handling Dio . |
|
ispectify_http | An additional package for logging and handling http . |
📌 Features
- ✅ Draggable panel for route to ISpect page and manage Inspector tools You can also use it separately: https://pub.dev/packages/draggable_panel
- ✅ Localizations: ru, en, kk. (I will add more translations in the future.)
- ✅
ISpectify
logger (inspired onTalker
) implementation: BLoC, Dio, http, Routing, Provider - ✅ You can customize more options during initialization of ISpect like BLoC, Dispatcher error and etc.
- ✅ Updated ISpect page: added more options.
- Detailed
HTTP
logs:request
,response
,error
- Debug tools
- Cache manager
- Device and app info (ispect_device)
- Detailed
- ✅ Feedback builder from pub.dev/feedback
- ✅ Performance tracker
- ✅ AI helper
📜 Showcase





Easy to use
Simple example of use ISpect
You can manage ISpect using ISpect.read(context)
.
Put this code in your project at an screen and learn how it works. 😊
Instructions for use:
- Wrap
runApp
withISpect.run
method and passISpectify
instance to it. - Initialize
ISpectGoogleAi
toMaterialApp
and pass the Google Ai token. For example, from an.env
file or an environment variable.
ISpectGoogleAi.init('token');
- In
actionItems
insideISpectOptions
add the corresponding Action buttons. For example:
actionItems: [
ISpectifyActionItem(
title: 'AI Chat',
icon: Icons.bubble_chart,
onTap: (context) {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const AiChatPage(),
),
);
},
),
ISpectifyActionItem(
title: 'AI Reporter',
icon: Icons.report_rounded,
onTap: (context) {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const AiReporterPage(),
),
);
},
),
],
- Add
ISpectAILocalization
to yourlocalizationsDelegates
inMaterialApp
.
localizationsDelegates: ISpectLocalizations.localizationDelegates([ // ISpect localization delegates
ExampleGeneratedLocalization.delegate, // Your localization delegate
ISpectAILocalization.delegate, // ISpect AI localization delegate
]),
- Wrap your root widget with
ISpectScopeWrapper
widget to enableISpect
where you can pass theme and options. - Add
ISpectBuilder
widget to your material app's builder and putNavigatorObserver
.
Please, check the example for more details.
Note
- To add
ISpect Jira
, follow the instructions provided here ispect_jira.
You can also check out an example of usage directly in ispect_jira/example.
- To
platform & device
tools follow the instructions provided here ispect_device.
You can also check out an example of usage directly in ispect_device/example.
For handle routing (GoRouter)
You can use ISpectNavigatorObserver
, but in practice it does not always work correctly with the GoRouter
package. You need add observer in each GoRoute.
Alternatively, you can use a listener
:
_router.routerDelegate.addListener(() {
final String location =
_router.routerDelegate.currentConfiguration.last.matchedLocation;
ISpect.route(location);
});
Referenced packages:
A list of great packages I've used in ISpect: path_provider, device_info_plus, share_plus, package_info_plus, gap, auto_size_text, feedback, inspector, performance, cr_json_widget.
Libraries
- ai/bloc/ai_chat/ai_chat_bloc
- ai/bloc/ai_reporter/ai_reporter_cubit
- ai/bloc/log_descriptions/log_descriptions_cubit
- ai/core/data/datasource/ai_remote_ds
- ai/core/data/models/chat_message
- ai/core/data/models/log_description
- ai/core/data/models/log_report
- ai/core/data/repositories/ai_repository
- ai/core/domain/ai_repository
- ai/presentation/pages/ai_chat_page
- ai/presentation/pages/ai_reporter_page
- ai/presentation/widgets/ai_painter
- ai/presentation/widgets/gemini_logo
- ispect_ai