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.
sdk/in the GatiFlow monorepo. Clone the repo, navigate to the platform you need, and follow the run steps below.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
// app/build.gradle.kts
dependencies {
implementation("com.github.dmsyudha:gatiflow-android:v1.0.0")
}# Build & install the bundled example app: cd sdk/android ./gradlew :example-app:installDebug adb shell am start -n dev.gatiflow.example/.MainActivity
Files to read first
| sdk/android/example-app/src/main/java/dev/gatiflow/example/ExampleApplication.kt | GatiFlow.start() with a Config.Builder |
| sdk/android/example-app/src/main/java/dev/gatiflow/example/MainActivity.kt | trackEvent + trackError + crash button |
| sdk/android/example-app/src/main/AndroidManifest.xml | Application class registration |
Look up the 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
# Quick CLI sanity check (runs on macOS, no simulator needed): cd sdk/ios && swift run GatiFlowExample
# Full iOS app: cd sdk/ios/ExampleApp xcodegen # if you haven't generated the .xcodeproj yet open ExampleApp.xcodeproj
Files to read first
| sdk/ios/Example/Sources/GatiFlowExample/main.swift | End-to-end walkthrough of every public method |
| sdk/ios/ExampleApp/project.yml | xcodegen spec — regenerate the Xcode project from this |
The CLI example uses a dummy token; replace it with your own to see events land in the dashboard.
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
| sdk/react-native/README.md | Full integration walkthrough |
| sdk/react-native/src/index.ts | TypeScript surface — every public method |
Look up the 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
| sdk/flutter/README.md | Complete usage walkthrough |
| sdk/flutter/lib | Public Dart API surface |
Look up the 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 under sdk/maui/example
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();
}# Run the bundled example: cd sdk/maui/example dotnet build -t:Run -f net9.0-ios # or net9.0-android
Files to read first
| sdk/maui/src/GatiFlow.Maui | Library source — public C# surface |
| sdk/maui/example | Runnable example MAUI app |
| sdk/maui/README.md | Detailed integration guide |
Look up the package on NuGet: https://www.nuget.org/packages/GatiFlow.Maui
Want a fresh repo to play with?
Clone the GatiFlow monorepo — every example app, the dashboard, the ingestor, and all SDKs in one tree.
git clone https://github.com/dmsyudha/gatiflow.git cd gatiflow/sdk/android # or ios / flutter / react-native / maui