/appcenter_sdk_flutter

Unofficial development repository for the App Center SDK for Flutter

Primary LanguageDartMIT LicenseMIT

App Center SDK for Flutter

This package supports only the Analytics and Crashes parts of the sdk.

Usage

import 'package:appcenter_sdk_flutter/appcenter_sdk_flutter.dart';
import 'package:flutter/material.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await AppCenter.start(secret: '<APP-SECRET>');
  FlutterError.onError = (final details) async {
    await AppCenterCrashes.trackException(
      message: details.exception.toString(),
      type: details.exception.runtimeType,
      stackTrace: details.stack,
    );
  };
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(final BuildContext context) => MaterialApp(
        home: Scaffold(
          appBar: AppBar(
            title: const Text('App Center Sdk'),
          ),
          body: Center(
            child: ElevatedButton(
              onPressed: () {
                int.parse('not a number');
              },
              child: const Text('TrackException'),
            ),
          ),
        ),
      );
}

AppCenter

await AppCenter.start('secret');
await AppCenter.enable();
await AppCenter.disable();
final isEnabled = await AppCenter.isEnabled();
final isConfigured = await AppCenter.isConfigured();
final installId = await AppCenter.getInstallId();
final isRunningInAppCenterTestCloud = await AppCenter.isRunningInAppCenterTestCloud();

AppCenter Analytics

  await AppCenterAnalytics.trackEvent(name: 'A Event', properties: {'property':'value'}, flags: 1);
  await AppCenterAnalytics.pause();
  await AppCenterAnalytics.resume();
  await AppCenterAnalytics.enable();
  await AppCenterAnalytics.disable();
  final isEnabled = await AppCenterAnalytics.isEnabled();
  await AppCenterAnalytics.enableManualSessionTracker();
  await AppCenterAnalytics.startSession();
  final isSetted =  AppCenterAnalytics.setTransmissionInterval(3);

AppCenter Crashes

  await generateTestCrash();
  final hasReceivedMemoryWarningInLastSession = AppCenterCrashes.hasReceivedMemoryWarningInLastSession();
  final hasCrashedInLastSession = AppCenterCrashes.hasCrashedInLastSession();
  await AppCenterCrashes.enable();
  await AppCenterCrashes.disable();
  final isEnabled = AppCenterCrashes.isEnabled();
  await AppCenterCrashes.trackException(message: 'MessageException', type: MessageException.runtimeType, stackTrace: StackTrace.fromString('stackTraceString'), properties: {'property':'value'});

When using the trackException, the flutter stack trace will appear in App Center.

Android iOS
App Center Android App Center iOS

Pigeon

Since I always forget the command, I noted it here. flutter pub run pigeon --input pigeons/messages.dart