パッケージ、リポジトリ、アプリカテゴリを検索

chucker_flutter のカバー
パッケージ詳細v1.9.2

chucker_flutter

Chucker Flutter は、HTTP(S) リクエスト/レスポンスを確認するのに役立ちます。データはローカルに保存され、ネットワーク呼び出しの検査およびコンテンツの共有用の UI を提供します。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
2.3万
いいね数
198
Pub ポイント
130

パッケージをインストール

flutter pub add chucker_flutter

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Chucker Flutter は、アプリ内に直接 HTTP(S) リクエストとレスポンスをキャプチャして表示するネットワークデバッグツールです。データはローカルに保存され、呼び出しの詳細、ヘッダー、ボディ、メタデータを確認できる直感的な UI を提供します。開発およびテストに最適で、API の相互作用に関する迅速なトラブルシューティングが可能であり、共有機能により共同作業もサポートしています。複数のプラットフォームで利用可能で、Flutter アプリへの統合もスムーズです。

用途

  • 開発中の API 呼び出しのデバッグ
  • リクエスト/レスポンスのヘッダーと本文の確認
  • チームメンバーとネットワークデータを共有する
  • さまざまな条件下でのネットワーク動作のテスト
  • HTTPリクエストのパフォーマンスのモニタリング

主な機能

  • ネットワーク呼び出しのローカルストレージ
  • インタラクティブな検査UI
  • すべての主要プラットフォームに対応
  • 取得されたデータの共有が簡単
  • Minimal setup with pub add
  • HTTP(S) トラフィックのリアルタイムモニタリング

適している対象

  • アクティブな開発中のFlutter開発者
  • API統合に協力するチーム
  • 詳細なネットワークログを必要とするアプリ
  • フロントエンドエンジニアがバックエンドの問題をデバッグしています
  • QAテスト担当者がAPIの動作を検証しています

注意事項

  • 本番環境での使用を想定していません
  • デバッグモードでパフォーマンスに影響する可能性があります
  • リリースビルドでは手動で有効にする必要があります
  • デバイスにストレージ制限が適用される場合があります
  • UIはデバッグビルドでのみ表示されます

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Stand With Palestine

Chucker Flutter

Codecov Badge Pub.dev Badge Popularity GitHub Build Badge MIT License Badge Flutter Platform Badge Stars Developed By Badge

Chucker Flutter

StandWithPalestine

An HTTP requests inspector inspired by Chucker Android

Chucker Flutter inspects the HTTP(S) requests/responses triggered by your Flutter App. It works as an Interceptor and stores data related to network requests and responses on local storage, and providing a UI for inspecting and sharing their content.

Flutter Apps, using Chucker Flutter, show in-app notifications which tell the status (e.g. 200, 400, 500 and so) and requested url and upon clicking on details button it navigates to Chucker Flutter main screen. You can manipulate Chucker Flutter behaviour using its setting by navigating to Settings page from the menu button of Chucker Flutter main page.

chucker http sample

Getting Started

To use Chucker Flutter you need to add the pub spec dependency to your pubspec.yaml file of your flutter app.

Please verify the current latest version of Chucker Flutter so that you can enjoy the latest features.

dependencies:
  chucker_flutter: latest-version

or

just run the command

flutter pub add chucker_flutter

To make Chucker Flutter work in Dio, just add it in your Dio object e.g.:

Dio().interceptors.add(ChuckerDioInterceptor());

To make Chucker Flutter work in Http, you need to use ChuckerHttpClient object e.g.:

final _chuckerHttpClient = ChuckerHttpClient(http.Client());
_chuckerHttpClient.get(Uri.parse('$_baseUrl$path'));

To make Chucker Flutter work in Chopper, you need to use ChuckerChopperInterceptor object e.g.:

final client = ChopperClient(
        baseUrl: 'https://jsonplaceholder.typicode.com',
        interceptors: [
          ChuckerChopperInterceptor(),
        ]
);

The very last thing is to connect Chucker Flutter screens to your app by wiring ChuckerFlutter.navigatorKey into whichever widget owns your root Navigator.

MaterialApp (most apps)

MaterialApp(
  navigatorKey: ChuckerFlutter.navigatorKey,
  ...,
);

MaterialApp.router with GoRouter

MaterialApp.router does not accept a navigatorKey — pass it to GoRouter instead:

final _router = GoRouter(
  navigatorKey: ChuckerFlutter.navigatorKey,
  routes: [...],
);

MaterialApp.router(
  routerConfig: _router,
  ...,
);

MaterialApp.router with a custom RouterDelegate

Pass ChuckerFlutter.navigatorKey to your delegate's constructor and use it as the key on its root Navigator:

class AppRouterDelegate extends RouterDelegate<...> {
  AppRouterDelegate() : navigatorKey = ChuckerFlutter.navigatorKey;

  @override
  final GlobalKey<NavigatorState> navigatorKey;

  @override
  Widget build(BuildContext context) {
    return Navigator(
      key: navigatorKey,
      pages: [...],
      onDidRemovePage: ...,
    );
  }
}

The previous navigatorObservers: [ChuckerFlutter.navigatorObserver] integration is deprecated and unreliable with nested navigators — it still works as a fallback so existing apps keep running, but new integrations should use navigatorKey.

By default Chucker Flutter only runs in debug mode but you can allow it to run in release mode too using its showOnRelease property e.g.:

void main() {
  ChuckerFlutter.showOnRelease = true;
  runApp(const App());
}

Congratulations! 🎊 You are done. Rest on us!

Features

  • Support for Dio and Http
  • Works in all (Windows💻, Linux🖥️, Mac🧑‍💻, Web🌍, Android📱, iOS📲) platforms (⚠️For android you need to make minSdkVersion 22 in build.gradle file)
  • Easy integration
  • Customization
  • Localization (Current support for English 🇺🇸 and Urdu 🇵🇰)
  • Searching🔍 and sharing👯
  • Json request and responses in tree form
  • Json request and response in pretty json format
  • Image URL preview
  • ChuckerHttpLoggingInterceptor for better readability of http request and response sent from client. To use this just add this interceptor in your ChopperClient
final exampleClient = ChopperClient(
  services: [
    _$ChopperApiService(),
  ],
  interceptors: [
    ChuckerHttpLoggingInterceptor() //This for logging,
    ChuckerChopperInterceptor(),
  ],
);

image

Libraries

Chucker FLutter uses the following open source libraries:

Patrons

I extend my sincere appreciation to all the sponsors. Thank you for making a difference in the open source community!❤️ (You can also sponsor my work, please visit patreon.com)


Rafay Ali

Contributors

Special thanks to these wonderful people👏 who are making our community bigger and better🔥


Adeyemo Adedamola

📖

fachrifaul

📖

Navneet Singh

📖

Sergei

📖

Syifa Ainnur

📖

Erick Armen

📖

Aleksandr Lozhkovoi

📖

Leo Ngo

📖

Kashyap Bhat

📖

KeeganDC

📖

Mateen Mehmood

📖

Cuong Nguyen

📖

License

MIT License

Copyright (c) 2022 Syed Murtaza

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

カテゴリー

依存関係

依存関係一覧 5 件

ソースリポジトリ

このパッケージを使用しているプロジェクト