appdynamics_agent 25.7.0
SDKflutter
Platformandroidios
Flutter plugin to integrate AppDynamics Mobile Real User Monitoring with your app.
AppDynamics Flutter Plugin
Extension of the AppDynamics SDK that allows you to instrument Flutter apps and receive analytics.
This plugin wraps the native SDKs and requires a valid AppDynamics mobile license.
Features
The Flutter agent incorporates the following features:
- Network request tracking via the TrackedHTTPClient and RequestTracker classes.
- Automatic crash reporting and CrashReportCallback for extra crash report configuration.
- Screen tracking via NavigationObserver and WidgetTracker.
- Automatic detection and reporting of the app-is-not-responding cases (ANR).
- SessionFrame mechanism to track custom user flows in the app.
- Errors and custom metrics reporting.
- Automatic capture of screenshots and user touch-points (iOS only).
- Custom user data on network requests, crash reports, or sessions.
- Report breadcrumbs to track UI widgets or custom user interactions.
- Timers to track events that span across multiple methods.
- Mark method execution as info points.
- Split app instrumentation into multiple sessions.
- Automatically report device metrics (memory, storage, battery) and connection transition events.
Getting started
Installation
You can install the Flutter plugin via flutter — more info on
the Installation tab.
$ flutter pub add appdynamics_agent
Extra configuration for Android apps:
- Add the following changes to
android/build.gradle:
dependencies {
classpath "com.appdynamics:appdynamics-gradle-plugin:24.12.0"
// ... other dependencies
}
- Apply the
adeumplugin to the bottom of theandroid/app/build.gradlefile:
dependencies {
// ... project dependencies
}
// Bottom of file
apply plugin: 'adeum'
- Add the following permissions to your
AndroidManifest.xml(usually inandroid/src/main/):
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myawesomepackage">
<!-- add these two permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- other permissions -->
<application>
<!-- other settings -->
</application>
</manifest>
Start instrumentation
NOTE: Replace
<EUM_APP_KEY>with your app key.
import 'package:appdynamics_agent/appdynamics_agent.dart';
import 'package:flutter/material.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
final config = AgentConfiguration(
appKey: "<EUM_APP_KEY>",
loggingLevel: LoggingLevel.verbose, // optional, for better debugging.
collectorURL: "<COLLECTOR_URL>", // optional, mostly on-premises.
screenshotURL: "<SCREENSHOT_URL>" // optional, mostly on-premises.
);
await Instrumentation.start(config);
runApp(const MyApp());
}
Docs
You can access pub.dev docs or check the official docs for extra customization of the agent.