Android : ajouter Appwin à ton app

Comment ajouter Appwin à ton app Android avec les artefacts Maven.

Avant de commencer

Compose ton intégration

Choisis les produits que tu veux. La liste de dépendances et le code d'initialisation suivent ton choix.

Compose ton intégration

AppwinCore est toujours là - il porte l'identité, la session et le client réseau. Choisis ce que tu ajoutes par-dessus.

AppwinCore

Utilise un prompt

Dépendances

kotlin
dependencies {
    implementation("io.appwin:appwin-core:0.4.0")
    implementation("io.appwin:appwin-community:0.4.0")
}

Initialisation

kotlin
import io.appwin.core.AppwinCore
import io.appwin.community.AppwinCommunity

class MyApp : Application() {
    override fun onCreate() {
        super.onCreate()
        AppwinCore.configure(
            applicationContext,
            projectAppId = BuildConfig.APPWIN_APP_ID,
        )
    }
}

lifecycleScope.launch {
    AppwinCore.bootstrapSession()
    val community = AppwinCommunity.initialize()
}
  • Chaque initialize() répond au lieu de lever une erreur. Conditionne ton propre point d'entrée à ce résultat : le SDK ne possède pas ta navigation, il ne peut pas cacher ton onglet à ta place.

Garde l'App ID hors de tes sources avec un buildConfigField :

kotlin
android {
    defaultConfig {
        buildConfigField("String", "APPWIN_APP_ID", "\"${property("appwinAppId")}\"")
    }
    buildFeatures { buildConfig = true }
}

Affiche-le à l'écran

initialize() dit si un produit a le droit de s'ouvrir. Où le poser, c'est à toi : le SDK ne possède pas ta navigation.

ArtefactCe que tu poses
appwin-communityCommunityView(), un composable
appwin-supportMessengerView()
appwin-notificationsPas d'UI - registerPushToken(...) au lancement
appwin-analyticsPas d'UI - trackEvent(...)
kotlin
if (community is AppwinInitResult.Ready) {
    CommunityView()
}

Un produit refusé se plaint bruyamment en debug, discrètement en release, et retombe sur une vue neutre si tu le présentes quand même. Il ne plante jamais, et ne reste jamais silencieusement sans rien faire.

Rattache ton utilisateur

Facultatif, et c'est ce qui fait qu'une personne est la même dans Community et dans Support, et d'un appareil à l'autre. L'externalId est le tien - celui de ta base.

kotlin
AppwinCore.identify(user.id)
AppwinCore.bootstrapSession(externalId = user.id)

AppwinCore.signOut()   // à la déconnexion

identify seul ne suffit pas : c'est le rejeu du bootstrap qui émet un token portant la nouvelle identité. Sans lui, les appels suivants restent sur la session anonyme jusqu'au prochain lancement.

Pour aller plus loin