Home|
GatiFlow Docs
/Quickstart
Open dashboard

Get started

OverviewQuickstartUse casesExample apps

Platform SDKs

AndroidiOS

Resources

Open dashboardPricing

Get from a blank account to your first crash & event flowing into the dashboard in well under 5 minutes.

In a nutshell

  1. Create an account & organization
  2. Create your first app
  3. Generate an API token
  4. Install the SDK
  5. Initialize at app launch
  6. Track an event & a crash
1

Create an account

~30s

Head to /registerand sign up with GitHub, Google, or email. The first time you sign in, you'll be asked to name your organization — this is the top-level container for your apps, team, and billing.

Already have an account? Sign in →
2

Create your first app

~20s

From the dashboard, click Apps → New App. Pick a name and a platform (you can have one app per platform or a single cross-platform entry — your choice).

An “app” in GatiFlow corresponds to a single binary identity: one for iOS, one for Android. React Native / Flutter / MAUI projects usually register two apps and share their tokens.

3

Generate an API token

~15s

Go to Settings → API Tokens, click Create token, scope it to the app you just made, and copy the value. It looks like:

text
mhub_c7b5d22e9b817c431c1898c88ef63489
Treat the token like a password. The SDK is read-only by design, but anyone with it can post events on behalf of your app.
4

Install the SDK

~1 min

Every SDK is published to its language's standard package registry — no manual builds, no git submodules. Pick your platform:

Android

JitPack

Add the JitPack repository once, then add the dependency.

kotlin
// settings.gradle.kts
dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        maven { url = uri("https://jitpack.io") }   // <- add this
    }
}

// app/build.gradle.kts
dependencies {
    implementation("com.github.dmsyudha:gatiflow-android:v1.0.0")
}

iOS

Swift Package Manager

In Xcode: File → Add Package Dependencies… and paste the URL below. Choose Up to Next Major Version from 1.0.0, then add the GatiFlow product to your app target.

text
https://github.com/dmsyudha/gatiflow-ios

React Native

npm
bash
npm install @gatiflow/react-native
# iOS only — link the native pod:
cd ios && pod install

Flutter

pub.dev
bash
flutter pub add gatiflow_flutter

Or add gatiflow_flutter: ^1.0.0 to your pubspec.yaml manually.

.NET MAUI

NuGet
bash
dotnet add package GatiFlow.Maui

Or in your .csproj: <PackageReference Include="GatiFlow.Maui" Version="1.*" />

That's it for installation — no extra build steps, no native config files. Restart your IDE / re-sync if it doesn't auto-fetch.
5

Initialize at launch

~1 min

Call start()as early as possible in your app's lifecycle so crashes during startup are still captured. One line per platform — copy, replace the token, done.

Android — in your Application class

kotlin
class MyApp : Application() {
    override fun onCreate() {
        super.onCreate()
        GatiFlow.start(
            app      = this,
            appToken = "mhub_YOUR_APP_TOKEN",
            services = listOf(Crashes::class.java, Analytics::class.java),
        )
    }
}

Don't forget to register your Application class in AndroidManifest.xml with android:name=".MyApp".

iOS — SwiftUI

Add your token as a String in Info.plist under the key GatiFlowAppToken, then:

swift
import SwiftUI
import GatiFlow

@main
struct MyApp: App {
    init() {
        GatiFlow.shared.start()   // reads GatiFlowAppToken from Info.plist
    }
    var body: some Scene { WindowGroup { ContentView() } }
}

UIKit users: call the same GatiFlow.shared.start() from application(_:didFinishLaunchingWithOptions:).

React Native — top of App.tsx

javascript
import GatiFlow from "@gatiflow/react-native";

GatiFlow.start({
  appToken: "mhub_YOUR_APP_TOKEN",
  services: ["crashes", "analytics"],
});

Flutter — in main()

dart
import 'package:gatiflow_flutter/gatiflow_flutter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await GatiFlow.start(
    appToken: "mhub_YOUR_APP_TOKEN",
    services: [GatiFlowService.crashes, GatiFlowService.analytics],
  );
  runApp(const MyApp());
}

.NET MAUI — in MauiProgram.cs

csharp
using GatiFlow.Maui;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
            .UseMauiApp<App>()
            .UseGatiFlow("mhub_YOUR_APP_TOKEN");
        return builder.Build();
    }
}
6

Track an event & a crash

~1 min

Now prove the integration works. Fire a test event and a test crash.

Track an event

kotlin
GatiFlow.analytics?.trackEvent("first_run", mapOf(
    "platform" to "android",
    "demo" to true,
))
swift
GatiFlow.shared.analytics?.trackEvent("first_run", properties: [
    "platform": "ios",
    "demo": true
])

Trigger a test crash

kotlin
// Don't ship this — just for verifying the dashboard end-to-end.
findViewById<Button>(R.id.crashBtn).setOnClickListener {
    throw RuntimeException("Hello from GatiFlow!")
}

Restart the app, then go back to the dashboard:Diagnostics for the crash,Analytics for the event. They should appear within seconds.

You're in. From here, you can wire crash metadata, user IDs, distribute test builds, and create push campaigns — all from the dashboard.

Deep dive

Android SDK API →

Deep dive

iOS SDK API →

Learn by example

Runnable example apps →

GatiFlow·Mobile DevOps platform
HomeDocsDashboard