appxiomcoreplugin 1.0.0 copy "appxiomcoreplugin: ^1.0.0" to clipboard
appxiomcoreplugin: ^1.0.0 copied to clipboard

Detect and report bugs in Flutter based mobile apps. Reports issues like memory leaks, crashes, ANR and exceptions. Plugin has low memory and size footprint.

Appxiom Core Plugin #

A comprehensive Flutter plugin for detecting and reporting bugs in mobile applications. This plugin helps developers track user journeys (Goal tracking), memory leaks, crashes, exceptions, and performance issues with minimal memory and size footprint.

Features #

  • 🔍 Memory Leak Detection: Automatically detect and report memory leaks in Flutter apps
  • 💥 Crash Tracking: Monitor and report application crashes and exceptions
  • 🎯 Goal Management: User journey (Goal) tracking with beginGoal/completeGoal APIs
  • 📊 Activity Markers: Set custom activity markers for debugging and analytics
  • 🌐 Network Monitoring: HTTP request/response interceptor for API error tracking
  • Performance Monitoring: Cold startup delay detection
  • 📱 Cross-Platform: Full support for Android and iOS
  • 🚀 Low Footprint: Minimal memory usage and app size impact

Installation #

Add this to your package's pubspec.yaml file:

dependencies:
  appxiomcoreplugin: ^1.0.0

Then run:

flutter pub get

Quick Start #

Initialize the Plugin #

import 'package:appxiomcoreplugin/appxiomcoreplugin.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // Initialize for Android
  Appxiomcoreplugin().init("<android_app_key>", "android_platform_key");
  
  // Initialize for iOS
  Appxiomcoreplugin().initIOS();
  
  runApp(MyApp());
}

Setting iOS and iPad keys in info.plist

Open your Info.plist file and add the following keys:

<key>AX</key>
<dict>
  <!-- Keys for iOS -->
  <key>AppKey</key> 
  <string>IOS_APP_KEY_FROM_APPXIOM_DASHBOARD</string>
  <key>PlatformKey</key>
  <string>IOS_PLATFORM_KEY_FROM_APPXIOM_DASHBOARD</string>


  <!-- Keys for iPadOS -->
  <key>AppKeyIpad</key>
  <string>IPADOS_APP_KEY_FROM_APPXIOM_DASHBOARD</string>
  <key>PlatformKeyIpad</key>
  <string>IPADOS_PLATFORM_KEY_FROM_APPXIOM_DASHBOARD</string>
</dict>

Setting Android in AndroidManifest.xml

Open your project level build.gradle file and add the following inside the repositories block:

maven {
    url = uri("https://appxiom-android.s3.us-west-1.amazonaws.com") //Appxiom Maven repo link
}

App Startup Delay Monitoring #

In your first screen (initial screen/splash screen), use AxInitialState instead of regular State to monitor cold startup delays:

// For the FIRST screen/initial screen only
class InitialScreen extends StatefulWidget {
  @override
  _InitialScreenState createState() => _InitialScreenState();
}

class _InitialScreenState extends AxInitialState<InitialScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Text('Initial Screen'),
    );
  }
}


### Memory Leak Detection

Use `AxState` instead of regular `State` for automatic memory leak detection.

// For all OTHER screens, use AxState
class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() => _MyWidgetState();
}

class _MyWidgetState extends AxState<MyWidget> {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Text('Hello World'),
    );
  }
}

Goal/ User Journey Tracking #

Track user goals and completion:

// Begin a goal and get the goal ID
int goalId = await Ax.beginGoal("user_signup");

// Complete the goal
await Ax.completeGoal(goalId);

Activity Markers #

Set activity markers for debugging:

// Set an activity marker
await Ax.setActivityMarker("button_clicked", "Login button pressed");

Network Monitoring #

import 'package:appxiomcoreplugin/observe.dart';

// The plugin automatically intercepts HTTP calls
// Use AxClient for monitored HTTP requests
final response = await AxClient().get(Uri.parse('<url>'));

Custom Issue Reporting #

// Report custom issues
Ax.reportIssue("LoginScreen.dart:45","Login failed", "User authentication failed with invalid credentials"
);

Custom Error Reporting #


// Report custom exceptions with stack trace
try {
  // Some code that may throw an error
} catch (error, stackTrace) {
  // Report the error using Ax.reportError API
  Ax.reportError(error, stackTrace);
}

Advanced Usage #

HTTP Interceptor #

Use AxHttpInterceptor for HTTP monitoring when not using AxClient:

import 'package:appxiomcoreplugin/src/ax_http_interceptor.dart';

// The interceptor automatically tracks:
// - Request/response times
// - HTTP status codes
// - Request/response payloads
// - API endpoint patterns

final response = await AxHttpInterceptor.get(
    Uri.parse('<url>'),
    headers: {'Content-Type': 'application/json'},
);

About Appxiom #

Appxiom helps developers build more reliable mobile applications with comprehensive monitoring and debugging tools. Visit appxiom.com to learn more.

1
likes
0
points
303
downloads

Publisher

unverified uploader

Weekly Downloads

Detect and report bugs in Flutter based mobile apps. Reports issues like memory leaks, crashes, ANR and exceptions. Plugin has low memory and size footprint.

Homepage

Documentation

Documentation

License

unknown (license)

Dependencies

flutter, http, plugin_platform_interface, stack_trace, uuid

More

Packages that depend on appxiomcoreplugin

Packages that implement appxiomcoreplugin