Kotlin Multiplatform
com.pushizo:pushizo-kmp — ortak Kotlin kodundan yerel Android SDK'sını çağırır. Android hedefi hazır; iOS hedefi ve Maven Central yayını hazırlanıyor.
Kaynak: sdk/kmp-mobile, örnek: examples/kmp-app. Paket mantığı yeniden yazmaz, her platformda yerel SDK'ya devreder; teslimat, kuyruk, oturum ve in-app çizimi yerel SDK'da kalır.
Durum: Android hedefi hazır. iOS hedefi henüz yok, iOS SDK'nın Objective-C köprüsünü bekliyor. Paket iOS hedefiyle birlikte Maven Central'a çıkacak; o zamana kadar kaynaktan kullanılır.
Sunucudan bildirim göndermek için bu paket değil, sunucu istemcisi kullanılır.
Kurulum (kaynaktan)
settings.gradle.kts:
includeBuild("../pushizo/sdk/kmp-mobile")Ortak modülün build.gradle.kts dosyası:
kotlin {
sourceSets {
commonMain.dependencies {
api("com.pushizo:pushizo-kmp:0.1.0")
}
}
}Android tarafında FCM kurulumu yerel SDK ile aynıdır: google-services.json ve com.google.gms.google-services eklentisi (Android).
Kullanım
Başlatma Application.onCreate içinde yapılır; PushizoContext Android'de Context türüdür:
Pushizo.initialize(context, "app_…", PushizoOptions())Bundan sonraki çağrılar ortak koddan yapılabilir:
Pushizo.login("user_42")
Pushizo.User.addTags(mapOf("plan" to "pro"))
Pushizo.User.addEmail("ali@ornek.com")
Pushizo.Session.sendEvent("purchase", mapOf("sku" to "a1"), value = 49.9)
Pushizo.InAppMessages.addTrigger("level", "gold")
val clicks = Pushizo.Notifications.addClickListener { event ->
println(event.notification.title)
}
clicks.remove()Bildirim izni
İzin istemi platform nesnesi ister; PushizoPermissionHost Android'de Activity türüdür. Android'de sonuç ayrıca bildirilir, yoksa abonelik ve izin gözlemcileri güncellenmez:
Pushizo.Notifications.requestPermission(activity)
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
Pushizo.Notifications.onPermissionResult()
}Kapsam
Ortak API: başlatma, gizlilik onayı, login / logout, JWT yenileme, etiket, takma ad, dil, e-posta ve SMS, push aboneliği, bildirim izni, tıklama ve ön plan dinleyicileri, olaylar, in-app tetikleri ve konum paylaşımı.
Bildirim kutusu, tercih merkezi, canlı sohbet ve özel in-app çizici ortak API'de yok. Android'de androidMain içinden com.pushizo.sdk.Pushizo ile doğrudan çağrılır.
Unity SDK
com.pushizo.unity — Android ve iOS yerel SDK'larını saran UPM paketi (Unity 2021.3+); push, in-app, bildirim kutusu, tercihler, otomatik iOS/Android derleme ayarları.
Node.js SDK
@pushizo/node — Node.js ≥ 20, ESM, OpenAPI'den türetilmiş tipler; bildirim, kullanıcı, olay, webhook imza doğrulama, journey ve tüm public API.