Every SDK ships with a runnable example app you can pull down, run locally, and copy from. Pick a platform — we'll show what's inside and how to run it.
Android (Kotlin)
Published on JitPack — com.github.dmsyudha:gatiflow-androidA tiny single-Activity Kotlin app that initializes the SDK in Application.onCreate(), tracks a screen-view event, and exposes a button to throw a test exception. The fastest way to confirm crashes reach your dashboard end-to-end.
What it demonstrates
- ▸One JitPack line in settings.gradle, one dependency line in app/build.gradle
- ▸Application.onCreate() initialization pattern
- ▸trackEvent with string + numeric properties
- ▸trackError for handled exceptions, plus an uncaught-crash demo button
Run it
// settings.gradle.kts — add JitPack
dependencyResolutionManagement {
repositories { maven { url = uri("https://jitpack.io") } }
}
// app/build.gradle.kts
dependencies {
implementation("com.github.dmsyudha:gatiflow-android:v1.0.0")
}Files to read first
| ExampleApplication.kt | GatiFlow.start() with a Config.Builder — copy this into your own Application class |
| MainActivity.kt | trackEvent + trackError + crash button demo |
| AndroidManifest.xml | Application class registration |
Package on JitPack: https://jitpack.io/#dmsyudha/gatiflow-android
iOS (Swift)
Available via Swift Package Manager — github.com/dmsyudha/gatiflow-iosTwo iOS examples ship side-by-side. Example is a Swift Package executable that runs on macOS — handy for verifying the SDK without firing up the simulator. ExampleApp is a full SwiftUI iOS app project demonstrating the same APIs on a real device.
What it demonstrates
- ▸One Add-Package-Dependencies step in Xcode — no Podfile required
- ▸Single-file walkthrough of every public API in main.swift
- ▸Demonstrates setUserId, trackEvent, trackError, setEnabled toggle, manual flush, and stop()
- ▸ExampleApp shows lifecycle integration in SwiftUI @main
Run it
# In Xcode: File → Add Package Dependencies… https://github.com/dmsyudha/gatiflow-ios
Files to read first
| Sources/GatiFlow/GatiFlow.swift | Main SDK entry point — public API surface |
| Sources/GatiFlow/Config.swift | Config struct — all init options |
| Package.swift | Swift Package manifest |
Browse the source at https://github.com/dmsyudha/gatiflow-ios
React Native
Published on npm — @gatiflow/react-nativeA thin JS wrapper over the native iOS + Android SDKs — one API, full native performance. Just install from npm, import, and call start() at the top of your App.tsx. No bridging code, no manual linking on modern RN.
What it demonstrates
- ▸One JS API matching the native Crashes + Analytics surface
- ▸iOS native pod auto-links via pod install (CocoaPods autolinking)
- ▸Android side resolves through JitPack — no extra Gradle setup
- ▸TypeScript types included out of the box
Run it
npm install @gatiflow/react-native # iOS only: cd ios && pod install
// App.tsx
import GatiFlow from '@gatiflow/react-native';
GatiFlow.start({
appToken: 'mhub_YOUR_TOKEN',
services: ['crashes', 'analytics'],
});
// Later, anywhere:
GatiFlow.trackEvent('button_click', { screen: 'home' });Files to read first
| README.md | Full integration walkthrough (on npm) |
| src/index.ts | TypeScript surface — every public method |
Package on npm: https://www.npmjs.com/package/@gatiflow/react-native
Flutter (Dart)
Published on pub.dev — gatiflow_flutterType-safe Dart wrapper around the native iOS and Android SDKs via platform channels. Add the package, initialize in main(), then call the static API anywhere in your widget tree.
What it demonstrates
- ▸Single-line install with flutter pub add gatiflow_flutter
- ▸Async init — await GatiFlow.start() before runApp()
- ▸Same API across iOS and Android targets, with platform-aware behavior under the hood
- ▸Plugin auto-registers — no manual platform setup
Run it
flutter pub add gatiflow_flutter
import 'package:gatiflow_flutter/gatiflow_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await GatiFlow.start(
appToken: 'mhub_YOUR_TOKEN',
services: [GatiFlowService.crashes, GatiFlowService.analytics],
);
runApp(const MyApp());
}
// Track events / errors anywhere:
GatiFlow.trackEvent('button_tap', { 'screen': 'home' });Files to read first
| README.md | Complete usage walkthrough (on pub.dev) |
| lib/ | Public Dart API surface |
Package on pub.dev: https://pub.dev/packages/gatiflow_flutter
.NET MAUI
Published on NuGet — GatiFlow.MauiSingle C# package that targets iOS, Android, and Mac Catalyst from one codebase. Install from NuGet, wire it up in MauiProgram.cs with one builder extension, and you're done. A runnable example MAUI app ships alongside the source.
What it demonstrates
- ▸One NuGet package — no platform-specific install steps
- ▸Fluent .UseGatiFlow() extension on MauiAppBuilder
- ▸Targets iOS, Android, and Mac Catalyst from a single TFM list
- ▸Working example app ships alongside the library source
Run it
dotnet add package GatiFlow.Maui
using GatiFlow.Maui;
public static class MauiProgram {
public static MauiApp CreateMauiApp() =>
MauiApp.CreateBuilder()
.UseMauiApp<App>()
.UseGatiFlow("mhub_YOUR_TOKEN")
.Build();
}# After installing the package, create a new MAUI project and wire it up: dotnet new maui -n MyApp cd MyApp dotnet add package GatiFlow.Maui
Files to read first
| src/GatiFlow.Maui/ | Library source — public C# surface |
| README.md | Detailed integration guide (on NuGet) |
Package on NuGet: https://www.nuget.org/packages/GatiFlow.Maui
Ready to integrate?
Each SDK is one install command away. Pick your platform above, grab your app token from the dashboard, and follow the quickstart.