Android SDK
Tacaíonn SDK Kixo do Android le Kotlin 2.0+ agus le Java, éilíonn sé minSdk 24 (Android 7.0), agus tógadh é in aghaidh compileSdk 35. Fanann d’aip óstach freagrach as a targetSdk féin. Le glao amháin ar Kixo.configure i do Application.onCreate, déantar scáileáin, sconnaí, seisiúin, tuairteanna agus imeachtaí saolré a rianú go huathoibríoch. Teastaíonn an droichead FCM atá mínithe thíos chun brúfhógraí a rianú. Níl uathrianú iarratas líonra san eisiúint Android reatha. Tacaíonn an SDK freisin le hathsheinm seisiún, aitheantas agus spriocanna.
Tús tapa
Trí chomhad. Cuir repo Maven leis, cuir an spleáchas leis, ansin cuir dhá líne i do fho-aicme Application.
Riachtanais tógála: compileSdk 35, minSdk 24, Kotlin 2.0+ nó Java, agus bytecode Java 17.
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven {
url = uri("https://raw.githubusercontent.com/kixoio/kixo-android-sdk/main/repo")
}
}
}Nóta
Sin é an comhtháthú anailísíochta ar fad. Tá na huathriantóirí caighdeánacha cumasaithe de réir réamhshocraithe; teastaíonn an droichead FCM thíos fós don bhrú. Ná húsáid KixoConfiguration.Builder(...) chun bratacha aonair a shárú ach nuair is gá.
Cuir le d’aip é
Tá repo Maven Kixo óstáilte ar GitHub Pages. Cuir leis é taobh le google() agus mavenCentral() in settings.gradle.kts:
// settings.gradle.kts
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven {
url = uri("https://raw.githubusercontent.com/kixoio/kixo-android-sdk/main/repo")
}
}
}Ansin dearbhaigh an spleáchas i modúl d’aip:
// app/build.gradle.kts
dependencies {
implementation("io.kixo:kixo-android-sdk:0.1.20")
}Leid
Tá android.permission.INTERNET agus android.permission.ACCESS_NETWORK_STATE cuachta i manifest an SDK. Fanann ceadanna fógraí faoi smacht d’aip féin agus dearbhaítear iad nuair a roghnaíonn tú na gnéithe brúfhógraí.
Tionscadail ilmhódúil
Tá cumraíocht implementation de chuid Gradle neamh-aistritheach: má dhearbhaíonn tú implementation("io.kixo:kixo-android-sdk:0.1.20") i modúl leabharlainne (m.sh. :core_domain), NÍ bheidh Kixo infheicthe do :app ná d’aon tomhaltóir eile. Oibríonn dhá phatrún anseo — roghnaigh ceann amháin.
Patrún A — dearbhaíonn gach modúl a ghlaonn ar Kixo é féin é (molta). Coinníonn sé seo classpath gach modúil chomh beag agus is féidir agus seachnaíonn sé atógálacha slabhracha. Úsáid catalóg leaganacha (libs.kixo.sdk) ionas nach gá duit an leagan a athrú ach in aon áit amháin.
// :core_domain/build.gradle.kts
dependencies {
implementation("io.kixo:kixo-android-sdk:0.1.20") // local use only
}
// :app/build.gradle.kts
dependencies {
implementation(project(":core_domain"))
implementation("io.kixo:kixo-android-sdk:0.1.20") // declared again — fine
}Patrún B — athonnmhairigh trí api(...). Ní gá ach dearbhú amháin, ach cuimsíonn ABI poiblí an mhodúil leabharlainne cineálacha Kixo anois — agus cuirfidh aon ardú leagain atógáil ar gach modúl iartheachtach. Ná húsáid é seo ach nuair a úsáideann an leabharlann cineálacha Kixo ina sínithe poiblí féin (m.sh. nuair a fhilleann feidhm KixoDiagnostics).
// :core_domain/build.gradle.kts
dependencies {
api("io.kixo:kixo-android-sdk:0.1.20") // re-exposed
}
// :app/build.gradle.kts
dependencies {
implementation(project(":core_domain")) // gets Kixo for free
}Rabhadh
Má fheiceann tú Unresolved reference: Kixo ag am tiomsaithe i modúl, tá spleáchas an mhodúil sin féin ar an SDK in easnamh — cuir an líne implementation thuas leis, nó úsáid Patrún B.
Túsú
Cumraigh Kixo i do fho-aicme Application — ritheann onCreate roimh aon activity, mar sin gabhtar gach amharc scáileáin, sconna agus imeacht saolré ón gcéad fhráma. Cláraigh an Application i do manifest le android:name=".MyApp".
import android.app.Application
import io.kixo.sdk.Kixo
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
Kixo.configure(
context = this,
projectId = "kx_proj_YOUR_PROJECT_ID",
apiKey = "kx_key_YOUR_API_KEY",
)
}
}Le haghaidh socruithe mionsonraithe inoiriúnaithe (bratacha uathrianta, minicíocht sruthlaithe, sampláil athsheinm, óstach saincheaptha API), tóg KixoConfiguration go sainráite:
import io.kixo.sdk.Kixo
import io.kixo.sdk.KixoConfiguration
val config = KixoConfiguration.Builder(
projectId = "kx_proj_YOUR_PROJECT_ID",
apiKey = "kx_key_YOUR_API_KEY",
)
.autoTrackScreens(true)
.autoTrackTaps(true)
.autoTrackNetwork(false) // reserved; no-op in the current Android release
.autoTrackCrashes(true)
.autoTrackSessions(true)
.autoTrackPush(true)
.flushIntervalMillis(30_000)
.flushAt(20)
.maxBufferSize(200)
.build(applicationContext)
Kixo.configure(this, config)Nóta
Idempotent. Má ghlaonn tú configure an dara huair ón bpróiseas céanna, is no-op é a logáiltear mar WARN — coimeádann an SDK an chéad chumraíocht. Cuirtear imeachtaí a chuireann do singleton údaraithe i scuaine sula sroicheann roimh configure maolán orthu (uas-teorainn 50) agus athsheinntear iad nuair a bheidh an SDK ceangailte, ionas gur féidir leat glaoch ar Kixo.identify(...) ó chomhthéacs domhanda sula gcríochnaíonn Application.onCreate.
Rianaigh imeachtaí
Iompraíonn trí phríomhthógáil an chuid is mó de d’ionstraimiú: track d’imeachtaí, markGoal do chomharthaí comhshó, agus addBreadcrumb do chomhthéacs nach imeacht é.
import io.kixo.sdk.Kixo
Kixo.track("video_played", mapOf(
"video_id" to "vid_42",
"duration_ms" to 18_500,
"autoplay" to false,
))
// markGoal(name, value?, currency?, properties?) — pass extra context
// through the named 'properties' argument (a Map can't be the 2nd
// positional arg; that slot is the Double 'value').
Kixo.markGoal("activated", properties = mapOf(
"step" to "onboarding_completed",
))
// Revenue goals use the typed value + currency parameters:
Kixo.markGoal("purchase_completed", value = 49.99, currency = "USD")
Kixo.addBreadcrumb(
message = "user toggled dark mode",
category = "ui",
level = "info",
)Leid
Déantar spriocanna a ghrádú. Cothaíonn spriocanna marcáilte tonnadóirí gníomhachtaithe Kixo agus an cron laethúil braite athraithe — má thiteann toirt sprice 70% seachtain ar sheachtain, feicfear í ar do dheais le suaitheantas Le hathbhreithniú. Úsáid markGoal do na corrnóiméid is tábhachtaí; track do gach rud eile.
Imeachtaí caighdeánacha
Sraith áise thar Kixo.track do na himeachtaí a aithníonn Kixo de réir ainm — eochracha teaghráin díreach mar atá a mheaitseálann braiteoir imeachtaí caighdeánacha an chúlchórais. Bailíochtú ar chruth na n-airíonna ag am tiomsaithe, agus foinse amháin fhírinne don ainmniú.
import io.kixo.sdk.Kixo
import io.kixo.sdk.SubscriptionInterval
Kixo.trackPurchase(
amount = 49.99,
currency = "USD",
productId = "pro_yearly",
)
Kixo.trackSubscriptionStart(
plan = "pro",
amount = 9.99,
currency = "USD",
interval = SubscriptionInterval.MONTH,
)
Kixo.trackSignup(method = "google")
Kixo.trackTrialStart(plan = "pro", days = 14)
Kixo.trackCancel(plan = "pro", reason = "too_expensive")
Kixo.trackUpgrade(fromPlan = "free", toPlan = "pro")
Kixo.trackActivation(event = "first_post_published")
Kixo.trackShare(channel = "twitter", contentId = "post_123")
Kixo.trackInvite(channel = "email", recipientCount = 5)Aithin úsáideoirí
Ceangail imeachtaí ina dhiaidh sin le haitheantas úsáideora seasmhach agus le tacar tréithe. Déantar an fuáil idir úsáideoir anaithnid agus úsáideoir aitheanta in Kixo — cuirtear imeachtaí a gabhadh roimh identify i leith an úsáideora chéanna go haisghníomhach.
import io.kixo.sdk.Kixo
// Reserved standard property keys carry a $-prefix (Mixpanel
// convention) so they namespace away from your own custom traits
// and promote to the dashboard's profile columns. See
// io.kixo.sdk.StandardProperty for the typed catalogue, or the
// "Standard property catalog" section below for the full 37-key list.
Kixo.identify("user_123", mapOf(
"$email" to "jane@example.com", // identity
"$name" to "Jane Doe", // identity
"$plan" to "pro", // subscription pack
"$lifetime_orders" to 12, // e-commerce pack
"signup_source" to "twitter_ad", // custom trait
))
// Logout: clear identity, super-properties, and the persisted queue.
Kixo.reset()⚠️ Gaiste an chomhartha dollar i Kotlin. Tá na gnátheochracha aitheantais réimírithe le $ ($email, $name, $first_name) — agus i litriú Kotlin, ní mór an comhartha dollar a éalú mar "\$email". Má scríobhann tú "$email", cuirfear idirshuíomh teaghráin i bhfeidhm ar d’athróg email, agus rachaidh an luach i dtír go ciúin mar thréith saincheaptha gan na colúin ríomhphoist ná ainm san Audience a líonadh. An réiteach is simplí: úsáid an t-overload clóscríofa (SDK 0.1.13+), rud nach féidir a chur amú: Kixo.setUserProperty(StandardProperty.EMAIL, email).
Clibeáil úsáideoir le haghaidh deighilte
Úsáid setUserProperty le luach boole chun clib shimplí tá/níl a cheangal leis an úsáideoir. Fanann an chlib sin i bhfeidhm thar sheoltaí agus cumhachtaíonn sí deighleoga, feachtais ríomhphoist agus cuardaigh sa chomhrá — gan aon socrú eile seachas an glao SDK.
// Tag a user as subscribed — segments + campaigns can target this
Kixo.setUserProperty("subscribe", true)
// VIP membership
Kixo.setUserProperty("vip", true)
// String + numeric values work too
Kixo.setUserProperty("plan_tier", "enterprise")
Kixo.setUserProperty("lifetime_orders", 42)
// Bulk-set
Kixo.setUserProperties(mapOf(
"subscribe" to true,
"plan_tier" to "enterprise",
))Stóráiltear airíonna trí SharedPreferences thar sheoltaí agus ceanglaítear iad go huathoibríoch le gach imeacht amach. Sa chomhrá, abair rudaí cosúil le "seol ríomhphost fáilte chuig úsáideoirí a bhfuil subscribe fíor acu" — tógann Kixo an deighleog agus dréachtaíonn sé an teimpléad duit. Glantar iad ar Kixo.reset().
Catalóg chaighdeánach na n-airíonna
Bíonn réimír $ ar eochracha airíonna forchoimeádta ionas go bhfanann siad i spás ainmneacha ar leithligh ó do thréithe saincheaptha. Clúdaíonn catalóg Kixo 37 eochair thar 3 phacáiste uilíocha (aitheantas, geo, saolré) agus 5 phacáiste ingearacha B2B (síntiús, ríomhthráchtáil, meáin, margadh, dílseacht). Socraigh na cinn a bhaineann le do tháirge — oiriúnaíonn an painéal agus ní thaispeánann sé ach na pacáistí a líonann tú.
Aitheantas
Baineann sé i gcónaí. Socraíonn sé colúin cheanntásc an phróifíle.
| Eochair | Cineál | Cur síos |
|---|---|---|
$email | teaghrán | An príomhsheoladh ríomhphoist, agus is minic gurb é an eochair chumaisc é le haghaidh fuaite aitheantais. |
$phone | teaghrán | Uimhir theileafóin E.164. |
$name | teaghrán | Ainm taispeána iomlán. |
$first_name | teaghrán | Ainm baiste. |
$last_name | teaghrán | Sloinne. |
$avatar_url | teaghrán | URL iomlán chuig íomhá avatar an úsáideora. |
Geo
Comhthéacs geografach.
| Eochair | Cineál | Cur síos |
|---|---|---|
$country | teaghrán | Cód tíre de réir ISO 3166. |
$city | teaghrán | Ainm cathrach. |
$region | teaghrán | Stát nó cúige. |
$timezone | teaghrán | Crios IANA ar nós America/Los_Angeles. |
$language | teaghrán | Clib IETF ar nós en nó ru-RU. |
$locale | teaghrán | Aitheantóir locale iomlán. |
Saolré
Cathain a chonaiceamar iad.
| Eochair | Cineál | Cur síos |
|---|---|---|
$created | ISO8601 | Am clárúcháin nó cruthaithe cuntais. |
$last_seen | ISO8601 | An t-am rannpháirtíochta is déanaí. |
Síntiús
Socraigh é seo má tá pleananna ag do tháirge.
| Eochair | Cineál | Cur síos |
|---|---|---|
$plan | teaghrán | Slug sraithe — free, pro, enterprise. |
$subscription_status | teaghrán | active / trial / cancelled / past_due. |
$trial_ends | ISO8601 | Cathain a rachaidh an triail reatha in éag. |
$mrr | uimhir | Ioncam athfhillteach míosúil in airgeadra an chuntais. |
$subscription_started | ISO8601 | Cathain a thosaigh an síntiús reatha. |
Ríomhthráchtáil
Socraigh é seo má dhíolann tú táirgí.
| Eochair | Cineál | Cur síos |
|---|---|---|
$lifetime_orders | uimhir | Líon na n-orduithe críochnaithe. |
$lifetime_revenue | uimhir | Caiteachas iomlán. |
$aov | uimhir | Meánluach an ordaithe. |
$last_purchase | ISO8601 | An ceannach rathúil is déanaí. |
$first_purchase | ISO8601 | An chéad cheannach rathúil. |
$cart_abandoned_count | uimhir | Líon iomlán na dtréigean ciseáin. |
Meáin
Socraigh é seo má fhoilsíonn tú ábhar.
| Eochair | Cineál | Cur síos |
|---|---|---|
$content_tier | teaghrán | free / premium / paid. |
$subscribed_categories | Teaghrán CSV nó eagar | Catagóirí a leanann an t-úsáideoir. |
$watch_time_total | uimhir | An t-am faire iomlán i soicindí. |
$last_played | ISO8601 | An tús athsheinm is déanaí. |
Margadh
Socraigh é seo más ardán déthaobhach thú.
| Eochair | Cineál | Cur síos |
|---|---|---|
$seller_tier | teaghrán | Slug na sraithe ar thaobh an díoltóra. |
$buyer_tier | teaghrán | Slug leibhéil ar thaobh an cheannaitheora. |
$listings_count | uimhir | Liostuithe gníomhacha atá ag an úsáideoir. |
$reviews_count | uimhir | Na léirmheasanna a fuair an t-úsáideoir. |
$verified | boole | Stádas KYC. |
Dílseacht
Socraigh é seo do chláir rannpháirtíochta agus luaíochtaí.
| Eochair | Cineál | Cur síos |
|---|---|---|
$loyalty_points | uimhir | Iarmhéid reatha pointí infhuascailte. |
$vip_level | teaghrán | Slug sraithe VIP. |
$referral_count | uimhir | Atreoruithe rathúla curtha i leith an úsáideora seo. |
Leid
Nach bhfeiceann tú do phatrún? Úsáid eochracha loma do thréithe saincheaptha. Beidh siad le feiceáil i bpainéal Custom Traits na deaise gan colúin an phróifíle a thruailliú. Is buillí tuairime iad na 5 phacáiste ingearacha thuas faoi na cruthanna B2B is coitianta — fanann téarmaíocht atá sonrach don chustaiméir (m.sh. shipping_plan) lom.
Sár-airíonna
Péirí eochair/luacha in aghaidh an tseisiúin a cheanglaítear go huathoibríoch le gach imeacht amach. Tá siad éagsúil ó thréithe identify (a chuireann síos ar fhéiniúlacht); cuireann super-properties síos ar chomhthéacs an tseisiúin — malairt ghníomhach A/B, blas tógála, bratacha gné a roghnaíodh isteach. Fanann siad i bhfeidhm thar sheoltaí; glantar iad ar reset(). Má bhíonn coimhlint ann, bíonn tosaíocht i gcónaí ag properties in aghaidh an imeachta ar track.
import io.kixo.sdk.Kixo
Kixo.setSuperProperty("build_flavor", "beta")
Kixo.setSuperProperties(mapOf(
"ab_variant" to "B",
"referrer_campaign" to "autumn-launch",
))
// Sugar for A/B tracking — stored as 'experiment_<id>'.
Kixo.setExperimentVariant("checkout_v2", "variant_a")
Kixo.unsetSuperProperty("build_flavor")
Kixo.clearSuperProperties()Fógraí push
Dhá bhealach comhtháthaithe. Roghnaigh A má úsáideann tú FCM agus más mian leat an socrú is giorra a oibríonn; roghnaigh B má tá FirebaseMessagingService saincheaptha agat cheana nach féidir leat a atheagrú, nó más mian leat smacht sainráite ar na seachadtaí FCM a fheiceann Kixo.
Rogha A — leathnaigh KixoFirebaseMessagingService (uathrianú)
Déan fo-aicme de KixoFirebaseMessagingService agus glaoigh ar super.onMessageReceived(...) i do shárú — astaíonn Kixo push_received go huathoibríoch (ualach infheicthe) nó push_silent (sonraí amháin). Láimhseálann an bunrang clárú onNewToken freisin mura sáraíonn tú é. Tá clárú AndroidManifest.xml mar a bheadh i ngnáthsheirbhís FCM.
import com.google.firebase.messaging.RemoteMessage
import io.kixo.sdk.KixoFirebaseMessagingService
class MyMessagingService : KixoFirebaseMessagingService() {
override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remoteMessage) // Kixo auto-tracks push_received
// … your own routing / notification display
}
}Nóta
Tiomsaíonn Kixo an rang roghnach seo in aghaidh Firebase Messaging ach ní chuireann sé Firebase le d’aip go haistritheach. Dearbhaíonn an SDK Firebase mar compileOnly; mar sin, caithfidh aip a roghnaíonn an rogha seo a bheith ag brath ar firebase-messaging cheana, mar a bhíonn ag aon receiver FCM.
Rogha B — glaoigh ar an API de láimh ó do sheirbhís FCM féin
Cláraigh do token FCM le Kixo trí FirebaseMessagingService.onNewToken, ansin logáil gach seachadadh go sainráite. Úsáid an bealach seo más mian leat nach bhfeicfeadh Kixo ach fo-thacar de sheachadtaí FCM. Faoi láthair, ní thacaíonn seachadadh ar Android ach le FCM.
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
import io.kixo.sdk.Kixo
import io.kixo.sdk.PushProvider
class MyMessagingService : FirebaseMessagingService() {
override fun onNewToken(token: String) {
Kixo.setPushToken(token, PushProvider.FCM)
}
override fun onMessageReceived(message: RemoteMessage) {
// Convert the FCM payload to a Map<String, Any?> and log it —
// Kixo correlates this with the open / dismiss it sees later.
Kixo.logPushReceived(message.data.toMap(), appState = "background")
}
}Ní chuireann Android duán uilíoch saolré ar fáil do oscailtí, díbheanna ná cnaipí gnímh fógraí. Cuir na comharthaí sin ar aghaidh ó na intents fógraí nó na receivers a chruthaíonn d’aip:
import io.kixo.sdk.Kixo
Kixo.logPushOpened(payload = pushPayload) // open
Kixo.logPushOpened(payload = pushPayload, actionId = "reply") // action-button tap
Kixo.logPushDismissed(payload = pushPayload) // swipe-awayAthsheinm seisiúin
Athsheinn atógáil amhairc fhíor den mhéid a chonaic an t-úsáideoir. Ag gach gabháil, ionchódaíonn an SDK fráma comhbhrúite den scáileán (íomhá JPEG) mar aon le léargas struchtúrtha ar ordlathas na radharc, agus uaslódálann sé an dá cheann — ionas gur féidir leis an seinnteoir sa deais athsheinm picteilínchruinn a thaispeáint taobh leis an amlínte idirghníomhaíochta. Cumraigh an athsheinm don tionscadal in Deais → Socruithe → Athsheinm seisiúin. Léann agus athnuachann an SDK an beartas tionscadail sin go huathoibríoch, lena n-áirítear cumhdach, modhanna gabhála agus cead uaslódála ar líonraí ceallacha.
import io.kixo.sdk.Kixo
import io.kixo.sdk.KixoConfiguration
val config = KixoConfiguration.Builder(
projectId = "kx_proj_YOUR_PROJECT_ID",
apiKey = "kx_key_YOUR_API_KEY",
)
.build(applicationContext)
Kixo.configure(this, config)Má tá uaslódáil ar líonraí ceallacha díchumasaithe, fanann athsheinm atá i scuaine go mbeidh líonra ceadaithe ar fáil.
Leid
Cumhdaigh sula n-uaslódálann tú. Gabhann Kixo picteilíní, mar sin cuirtear an cumhdach i bhfeidhm roimh sula bhfágann aon rud an gléas. Aimsítear réimsí pasfhocail agus ríomhphoist go huathoibríoch agus ceiltítear iad; téann téacs i ngrianghraif struchtúracha trí scagaire PII; agus déantar aon radharc a mharcálann tú le setKixoMask(true) a rasterú mar dhronuilleog theimhneach sa fhráma roimh sula n-ionchódaítear an JPEG — ní fhágann a phicteilíní an gléas riamh. Déantar scáileáin Jetpack Compose a chumhdach ina n-iomláine de réir réamhshocraithe (glaoigh ar setKixoMask(false) ar an ComposeView is forimeallaí chun scáileán atá iniúchta agat a chur san áireamh). Is féidir le hoibreoirí an seinnteoir athsheinm a sciúradh taobh leis an amlínte imeachtaí sa deais.
Bailiú sonraí
Gabhann an SDK na sonraí atá cumasaithe i do thionscadal, chomh maith leis na himeachtaí agus na hairíonna a sheolann d’aip.
Dífhabhtú
Tugann Kixo.diagnostics() léargas inléite amháin ar staid an SDK ar ais — úsáideach ar scáileán dífhabhtaithe i bhfolach nó i dtástáil deataigh. Freagraíonn sé “cén fáth nach bhfuil mo chuid imeachtaí ag teacht tríd?” gan dífhabhtóir.
import io.kixo.sdk.Kixo
val diag = Kixo.diagnostics()
Log.d("Kixo", "queued=${diag.queue.bufferedEventCount}")
Log.d("Kixo", "paused=${diag.paused}") // collection paused state
Log.d("Kixo", "lifecycleState=${diag.lifecycleState}") // SDK lifecycle stateCuir iallach ar shruthlú ó do chreatlach tástála — blocálann sé ar feadh suas le timeoutMs fad is a bhíonn turas líonra ar siúl:
import io.kixo.sdk.Kixo
// Async fire-and-forget — returns immediately.
Kixo.flush()
// Blocking variant for instrumentation tests. Never call on the main thread.
val landed: Boolean = Kixo.flushBlocking(timeoutMs = 5_000L)
assertTrue(landed)Nascleanúint Compose
Cruthaíonn bealaí Activity / Fragment imeachtaí screen_view láithreach agus taifid struchtúrtha screen_visit le meiteashonraí ama fanachta agus sreafa gan aon socrú breise. Le Jetpack Compose Navigation, seol Kixo.screen ó LaunchedEffect atá eochraithe ar an mbealach — feicfidh an SDK imeacht amháin in aghaidh gach ceann scríbe, is cuma cé mhéad uair a athchumtar é.
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import io.kixo.sdk.Kixo
@Composable
fun AppNavHost(nav: NavHostController) {
NavHost(navController = nav, startDestination = "home") {
composable("home") {
LaunchedEffect("home") { Kixo.screen("HomeScreen") }
HomeScreen()
}
composable("settings") {
LaunchedEffect("settings") { Kixo.screen("SettingsScreen") }
SettingsScreen()
}
}
}Gníomhairí códaithe AI
Tá dromchla poiblí an SDK beag agus deartha don uathchríochnú cód — tá gach modh ar an singleton Kixo, tosaíonn gach sampla Kotlin sa treoir seo le import io.kixo.sdk.Kixo, agus tá bloc “tagairt thapa do ghníomhairí AI” inár README ar féidir le huirlisí ar nós Claude Code, Cursor agus Codex a ghreamú díreach ina gcomhthéacs. Má théann do ghníomhaire i bhfostú, seo an tús canónach:
// Tell your AI coding agent:
// "Integrate the Kixo Android SDK using io.kixo:kixo-android-sdk
// from https://raw.githubusercontent.com/kixoio/kixo-android-sdk/main/repo.
// Call Kixo.configure(this, projectId, apiKey) in Application.onCreate.
// Then use Kixo.track / Kixo.identify / Kixo.markGoal as needed."Nóta
Scríobhadh gach rannán thuas leis an sreabhadh oibre sin san áireamh — bíonn na hallmhairí follasach i gcónaí, ainmnítear cineálacha i gcónaí, agus ní thugtar ailias ar singleton an SDK riamh. Tabhair an leathanach seo do do ghníomhaire agus lig dó tabhairt faoin obair.