Flutter アプリケーションの接続¶
Flutter アプリケーションのメトリクスデータを収集し、アプリケーションのパフォーマンスを可視化して分析します。
読み進め方¶
- 初回接続:まずは クイックスタート をご覧ください
- 完全な接続:引き続き本記事をお読みください
- 初期化パラメータ:SDK 初期化、RUM 設定、Log 設定、Trace 設定 をご覧ください
- カスタム機能:カスタムタグの使用、データ収集のカスタムルール、データ収集のマスキング をご覧ください
- 高度なシナリオ:WebView データ監視、Native と Flutter のハイブリッド開発、Flutter Session Replay、Publish Package 関連設定 をご覧ください
- Flutter Web プロジェクト:現在の Flutter SDK は Web bridge を提供していません。Web アプリケーション接続 に従い、Browser RUM SDK を使用してください
- トラブルシューティング:障害調査 をご覧ください
- データモデル:アプリケーションデータ収集 をご覧ください
前提条件¶
注意:RUM Headless サービスを有効にしている場合、前提条件は自動で設定されていますので、すぐにアプリケーションを接続できます。
- DataKit をインストールする
- RUM コレクター を設定する
- DataKit をパブリックネットワークからアクセス可能に設定し、IP 地理位置情報データベースをインストール する
アプリケーションの接続¶
注意
現在の Flutter バージョンは Android と iOS プラットフォームのみをサポートしています。
- ユーザーアクセス監視 > アプリケーションを新規作成 > Android/iOS に進みます
- Flutter Android と Flutter iOS 用にそれぞれ 2 つのアプリケーションを作成し、Android プラットフォームと iOS プラットフォームからの RUM データを個別に受信します
- 各プラットフォームのアプリケーションに対応するアプリケーション名とアプリケーション ID を入力します
-
アプリケーションの接続方式を選択します:
- パブリック DataWay:RUM データを直接受信します。DataKit コレクターのインストールは不要です
- ローカル環境へのデプロイ:前提条件を満たした上で RUM データを受信します
Flutter Web プロジェクト¶
ft_mobile_agent_flutter は現在、Android / iOS の Native ブリッジ機能のみを提供しており、Flutter Web bridge は提供していません。
アプリケーションが Flutter Web 上で動作する場合は、Web タイプの RUM アプリケーションを作成し、Web アプリケーション接続 に従って Browser RUM SDK を使用してください。この方式は Browser RUM SDK による接続であり、本記事で後述する Android / iOS の Native ブリッジ API は使用しません。また、Dart コード内で ft_mobile_agent_flutter を呼び出して Web RUM を初期化する必要もありません。
Flutter Web プロジェクトの接続場所は、通常プロジェクトルートディレクトリの web/index.html です。Flutter の起動スクリプトの前に Browser RUM SDK またはビジネス側の初期化スクリプトをロードしてください。build/web ディレクトリは Flutter のビルド成果物であり、flutter build web を実行すると再生成されるため、変更しないでください。
インストール¶
Pub.Dev: ft_mobile_agent_flutter
ソースコード: https://github.com/GuanceCloud/datakit-flutter
Demo アドレス: https://github.com/GuanceCloud/datakit-flutter/example
プロジェクトのパスで以下を実行します:
これにより、パッケージの pubspec.yaml に依存関係が追加されます:
dependencies:
ft_mobile_agent_flutter: [latest_version]
# flutter 2.0 互換バージョンは以下の参照方法を使用します
ft_mobile_agent_flutter:
git:
url: https://github.com/GuanceCloud/datakit-flutter.git
ref: [github_legacy_lastest_tag]
Dart コード内でインポートします:
ft_mobile_agent_flutter0.5.7以降、Session Replay は独立したパッケージft_session_replay_flutterによって提供されます。セッションリプレイを有効にする場合は、Flutter Session Replay をご覧ください。
Android 統合の追加設定¶
- Gradle Plugin ft-plugin を設定します。これは、アプリ起動イベント、および Android Native 関連イベント(ページ遷移、クリックイベント、Native ネットワークリクエスト、WebView データ)を収集するために必要です
- 起動回数と起動時間を統計する必要がある場合は、Flutter バージョンに応じてカスタム
Applicationを設定し、AndroidManifest.xmlで宣言する必要があります
Flutter 3.28.x 以下のバージョンでは、従来の記述方法を使用します:
import io.flutter.app.FlutterApplication
/**
* 【起動回数】と【起動時間】を統計する必要がある場合は、ここでカスタム Application を追加する必要があります
*/
class CustomApplication : FlutterApplication() {
}
Flutter 3.29.0 以上のバージョンでは、新しい記述方法を使用します:
import android.app.Application
/**
* 【起動回数】と【起動時間】を統計する必要がある場合は、ここでカスタム Application を追加する必要があります
*/
class CustomApplication : Application() {
}
Flutter 3.29.0 以上のバージョンに関する注意事項
Flutter 3.29.0 では、io.flutter.app.FlutterApplication を含む v1 Android embedding が削除されました。そのため、このバージョン以降は上記の新しい記述方法を使用してください。Android App の起動イベントを収集するために、ft-plugin はカスタム Application の onCreate() に起動監視コードを挿入する必要があります。android.app.Application(または androidx.multidex.MultiDexApplication)を直接継承してください。そうしないと、launch_cold などの App 起動イベントが収集できなくなる可能性があります。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ft.sdk.flutter.agent_example">
<application android:name=".CustomApplication">
//...
</application>
</manifest>
詳細設定のエントリ¶
高度なシナリオ¶
- カスタムタグの使用
- データ収集のカスタムルール
- データ収集のマスキング
- WebView データ監視
- Native と Flutter のハイブリッド開発
- Flutter Session Replay
- Publish Package 関連設定
競合フィールドの説明¶
- 特別なキー:
track_id、追跡機能に使用されます - ユーザーが
globalContextを介して追加したカスタムタグが SDK の既存タグと同一である場合、SDK のタグがユーザー設定値を上書きします -
タグ名には、プロジェクトの略称プレフィックスを追加することを推奨します(例:
custom_tag_name) -
プロジェクトで使用される
key値は、Android の定数定義を参照してください:Constants.java