# Quick Start (Minimal Steps)
This is the fast path. It skips deep explanations. Use the full guide for context and troubleshooting.
## Step 1: Add the SDK and FirebaseAdd to `app/build.gradle.kts`.
```kotlin
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.google.gms.google-services")
}
dependencies {
implementation(platform("com.google.firebase:firebase-bom:33.3.0"))
implementation("com.google.firebase:firebase-messaging-ktx")
implementation("tech.bubbl:bubbl-sdk:2.0.9")
implementation("com.google.android.gms:play-services-location:21.2.0")
implementation("androidx.work:work-runtime-ktx:2.10.0")
}
```
## Step 2: Add permissions and servicesAdd to `app/src/main/AndroidManifest.xml`.
```xml
```
## Step 3: Initialize in `Application`
```kotlin
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
if (FirebaseApp.getApps(this).isEmpty()) {
FirebaseApp.initializeApp(this)
}
BubblSdk.init(
application = this,
config = BubblConfig(
apiKey = "YOUR_API_KEY",
environment = Environment.PRODUCTION,
segmentationTags = emptyList(),
geoPollInterval = 5 * 60_000L,
defaultDistance = 10
)
)
}
}
```
## Step 4: Request permissions and start tracking
```kotlin
if (PermissionManager(this).locationGranted()) {
BubblSdk.startLocationTracking(this)
}
```
## Step 5: Handle notification payloads (optional but recommended)
```kotlin
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
intent.getStringExtra("payload")?.let { json ->
val notif = Gson().fromJson(json, NotificationRouter.DomainNotification::class.java)
ModalFragment.newInstance(notif).show(supportFragmentManager, "notification_modal")
}
}
```
That is enough to start. Use the full guide for a complete, production‑ready setup.