Skip to content

Getting Started with AppAmbit SDK

This guide walks you through setting up the AppAmbit SDK in your application, focusing on AppAmbit Analytics and Crash Reporting.

SDK Resources

Our SDKs are fully open source on GitHub:

Prerequisites

Before getting started, ensure you meet the following requirements:

Language: C#

Supported Platforms: iOS, Android, Windows, macOS

Minimum Requirements:

  • iOS 11.0+
  • Android 5.0 (API level 21)+
  • Windows 10+
  • macOS 10.13+

Note

Xamarin is currently not supported by the AppAmbit library.

Windows Considerations

When developing for Windows, ensure you initialize the SDK in the OnStartup method.

iOS/macOS Considerations

Remember to configure Info.plist with the required NSAppTransportSecurity exceptions.

Android Considerations

Don't forget to add the required permissions to AndroidManifest.xml.

Language: Swift, Objective-C

Minimum iOS Version: 12.0+

Minimum Xcode Version: 13.0+

Package Manager: CocoaPods

  • The iOS project is set up in Xcode 13 or later.
  • You are targeting devices running iOS 12.0 or later.
  • You are not using any other libraries that offer crash reporting functionality.
  • If you are using CocoaPods to integrate AppAmbit, you need CocoaPods version 1.10 or later.

CocoaPods Setup

Make sure you have CocoaPods 1.10 or later installed.

App Transport Security

Remember to configure Info.plist with NSAppTransportSecurity exceptions for AppAmbit.com.

Breadcrumbs

AppAmbit automatically tracks screen navigation. Set navigationTitle in SwiftUI or title property in UIKit for proper screen names.

Crash Reporting

Ensure you're not using other crash reporting libraries that might conflict with AppAmbit.

Language: Kotlin, Java

Minimum Android Version: 5.0 (API level 21)

Build System: Gradle

Package Repository: Maven Central

  • Your project is configured in Android Studio
  • The target devices run Android 5.0 (API level 21) or higher.
  • You are not using another SDK for crash reporting.

Gradle Configuration

Add the AppAmbit dependency to your app-level build.gradle file and sync your project.

Required Permissions

Don't forget to add these permissions to AndroidManifest.xml:

  • ACCESS_NETWORK_STATE
  • INTERNET

Initialization

Initialize AppAmbit in the onCreate method of your main Activity.

ProGuard/R8

If you're using code obfuscation, make sure to add the appropriate ProGuard rules (if needed).

Language: Dart

Supported Platforms: iOS, Android

Package Repository: pub.dev

Minimum Requirements:

  • iOS 11.0+
  • Android 5.0 (API level 21)+
  • Flutter SDK installed
  • Dart SDK compatible version

Installation

Add the package to your pubspec.yaml and run flutter pub get.

Initialization

Initialize AppAmbit in your main() function before calling runApp().

Platform Channels

The SDK uses platform channels to communicate with native iOS and Android code.

Language: JavaScript, TypeScript

Supported Platforms: iOS, Android

Package Manager: npm, yarn

Minimum Requirements:

  • iOS 11.0+
  • Android 5.0 (API level 21)+
  • React Native environment set up

Installation

Install via npm or yarn and link the native modules.

TypeScript Support

The SDK includes TypeScript type definitions out of the box.

Native Modules

The SDK uses native modules to access iOS and Android functionality.

Language: C#

Supported Platforms: Windows (WPF & WinUI)

Minimum Requirements:

  • Windows 10+

Windows Considerations

When developing for Windows, ensure you initialize the SDK in the OnStartup method.

Language: C#

Supported Platforms: iOS, Android, Windows, macOS

Minimum Requirements:

  • iOS 11.0+
  • Android 5.0 (API level 21)+
  • Windows 10+
  • macOS 10.13+

Note

Xamarin is currently not supported by the AppAmbit library.

Windows Considerations

When developing for Windows, ensure you initialize the SDK in the OnStartup method.

iOS/macOS Considerations

Remember to configure Info.plist with the required NSAppTransportSecurity exceptions.

Android Considerations

Don't forget to add the required permissions to AndroidManifest.xml.

Creating Your App in the AppAmbit Portal

  1. Visit AppAmbit.com.
  2. Sign in or create an account. Navigate to "Apps" and click on "New App".
  3. Provide a name for your app. Optionally, upload an image via drag-and-drop.
  4. Select the appropriate release type and target OS.
  5. Click "Create" to generate your app.
  6. Retrieve the App Key from the app Info page.
  7. Use this App Key when initializing the SDK.

Adding the SDK to Your Project

Get the SDK on NuGet (recommended)

Add the package to your MAUI project:

dotnet add package com.AppAmbit.Maui
# or specify version
dotnet add package com.AppAmbit.Maui --version 2.0.0

Or, using Visual Studio:

  • Right-click your project → Manage NuGet Packages…
  • Search for AppAmbit and install the latest stable version.

Get the SDK on CocoaPods (recommended)

Add this to your Podfile:

pod 'AppAmbitSdk'
# or specify version
pod 'AppAmbitSdk', '~> 0.1.0'

Then run:

pod install

Warning

If you see an error like [!] Unable to find a specification for AppAmbitSdk when running pod install, run pod repo update to get the latest pods from the CocoaPods repository, and then run pod install.

Get the SDK on Maven Central (recommended)

Open the build.gradle file at the project application level (app/build.gradle):

Kotlin DSL

dependencies {
    implementation("com.appambit:appambit:0.1.0")
    ...
}

Groovy

dependencies {
    implementation 'com.appambit:appambit:0.1.0'
    ...
}

Note

Make sure to run a Gradle synchronization in Android Studio.

Add the dependency to your pubspec.yaml:

dependencies:
  appambit_sdk: ^0.1.0

Then run:

flutter pub get

Install via npm:

npm install appambit

Get the SDK on NuGet (recommended)

Add the package to your MAUI project:

dotnet add package com.AppAmbit.Sdk
# or specify version
dotnet add package com.AppAmbit.Sdk --version 2.0.0

Or, using Visual Studio:

  • Right-click your project → Manage NuGet Packages…
  • Search for AppAmbit and install the latest stable version.

Get the SDK on NuGet (recommended)

Add the package to your MAUI project:

dotnet add package com.AppAmbit.Avalonia
# or specify version
dotnet add package com.AppAmbit.Avalonia --version 2.0.0

Or, using Visual Studio:

  • Right-click your project → Manage NuGet Packages…
  • Search for AppAmbit and install the latest stable version.

Initializing the SDK

Import the Namespace

using AppAmbitMaui;

Configure in MauiProgram

Call .UseAppAmbit("<YOUR-APPKEY>") during application initialization:

using AppAmbitMaui;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .UseAppAmbit("<YOUR-APPKEY>");

        return builder.Build();
    }
}

Platform-Specific Initialization

Android

using AppAmbitMaui;

protected override void OnCreate(Bundle? savedInstanceState)
{
    base.OnCreate(savedInstanceState);
    AppAmbitSdk.Start("<YOUR-APPKEY>");
    ...
}

iOS and macOS

using AppAmbitMaui;

public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
    AppAmbitSdk.Start("<YOUR-APPKEY>");
    ...
}

Windows

using AppAmbitMaui;

protected override void OnStartup(StartupEventArgs e)
{
    base.OnStartup(e);
    AppAmbitSdk.Start("<YOUR-APPKEY>");
}

Android Requirements

Add the following permissions in your AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

iOS and macOS Requirements

Add the required URL exceptions in your Info.plist file:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>appambit.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

Import the SDK

Swift

import AppAmbit;

Objective-C

#import "AppAmbitSdk/AppAmbitSdk-Swift.h"

Initialize

Swift

AppAmbit.start(appKey: "<YOUR-APPKEY>")

Objective-C

[AppAmbit start:@"<YOUR-APPKEY>"];

Warning

It is not recommended to insert the secret API key directly into the code.

AppAmbit records screen-change breadcrumbs automatically. To display the intended screen name, set a navigation title:

SwiftUI

NavigationStack {
  MyView()
    .navigationTitle("My View")
}

Objective-C

UIViewController *vc = [UIViewController new];
vc.title = @"My View";
[self.navigationController pushViewController:vc animated:YES];

Import the SDK

Java

import com.appambit.sdk.AppAmbit;

Kotlin

import com.appambit.sdk.AppAmbit

Initialize

Add the following line inside the onCreate callback of your app's main Activity class:

Java

AppAmbit.start(getApplicationContext(), "<YOUR-APPKEY>");

Kotlin

AppAmbit.start(this, "<YOUR-APPKEY>");

Warning

It is not recommended to insert the secret API key directly into the code.

Android App Requirements

Add the following permissions in your AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

Import the SDK

import 'package:appambit_sdk/appambit_sdk.dart';

Initialize

void main() {
  AppAmbitSdk.start("<YOUR-APPKEY>");
  runApp(MyApp());
}

Import the SDK

import { start } from "appambit";

Initialize

export default function App() {
  useEffect(() => {
    start("<YOUR-APPKEY>");
  }, []);
}

Import the Namespace

using AppAmbit;

Initialize the SDK

using AppAmbit;

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        AppAmbitSdk.Start("<YOUR-APPKEY>");
    }
}

Import the Namespace

using AppAmbitAvalonia;

Initialize the SDK

using AppAmbitAvalonia;

public partial class App : Application
{
    public override void OnFrameworkInitializationCompleted()
    {
        AppAmbitSdk.Start("<YOUR-APPKEY>");
        ...
        base.OnFrameworkInitializationCompleted();
    }
}

Platform-Specific Initialization

Android

using AppAmbitAvalonia;

public class MainActivity : AvaloniaMainActivity<App>
{
    protected override AppBuilder CustomizeAppBuilder(AppBuilder builder)
    {
        AppAmbitSdk.Start("<YOUR_APPKEY>");
        return base.CustomizeAppBuilder(builder)
            .WithInterFont();
    }
}

iOS

using AppAmbitAvalonia;

[Register("AppDelegate")]
public partial class AppDelegate : AvaloniaAppDelegate<App>
{
    protected override AppBuilder CustomizeAppBuilder(AppBuilder builder)
    {
        AppAmbitSdk.Start("<YOUR-APPKEY>");
        return base.CustomizeAppBuilder(builder)
            .WithInterFont();
    }
}

Windows and MacOS (Desktop Avalonia Multiplatform)

using AppAmbitAvalonia;

public partial class App : Application
{
    public override void OnFrameworkInitializationCompleted()
    {
        AppAmbitSdk.Start("<YOUR-APPKEY>");
        ...
        base.OnFrameworkInitializationCompleted();
    }
}

Android Requirements

Add the following permissions in your AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

iOS and macOS Requirements

Add the required URL exceptions in your Info.plist file:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>appambit.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

The SDK is now initialized and will automatically manage sessions for your application.