Passer au contenu principal

Intégrer Poool Access dans une application Android

Alexandre Santini avatar
Écrit par Alexandre Santini
Mis à jour il y a plus de 2 semaines

Installation

L’installation de la bibliothèque Poool Access se fait simplement via Gradle.

Avec Gradle classique

Ajoutez la dépendance suivante dans votre fichier build.gradle :

implementation("tech.poool:access-android:1.2.0")

Avec le Versions Catalog

Si vous utilisez un catalogue de versions (libs.versions.toml), ajoutez :

[libraries] 
access-android = { group = "tech.poool", name = "access-android", version.ref = "accessAndroid" }

Puis dans vos fichiers Gradle :

implementation(libs.access.android)

Utilisation avec Jetpack Compose

Le SDK est conçu en priorité pour Jetpack Compose. Il propose plusieurs composables qui facilitent l'intégration des paywalls dans une application moderne.

Mode Snippet / RestrictedContent

Ce mode repose sur deux composants principaux :

  • Snippet : contenu visible tant que le mur est actif.

  • RestrictedContent : contenu complet affiché une fois le mur franchi.

Exemple :

@Composable
fun App() {
AccessProvider(
appId = "<your_app_id>",
config = mapOf(
"debug" to true,
"cookiesEnabled" to true
)
) {
Snippet {
Text("Contenu visible avant déblocage du mur")
}

RestrictedContent {
Text("Contenu complet affiché après déblocage")
}

Paywall(pageType = "premium")
}
}

Mode Custom

Si vous souhaitez un contrôle plus précis sur l'affichage, vous pouvez gérer manuellement l’état de libération du mur :

@Composable
fun App() {
var isReleased by remember { mutableStateOf(false) }
AccessProvider(
appId = "<your_app_id>",
config = mapOf(
"debug" to true,
"cookiesEnabled" to true
)
) {
if (!isReleased) {
Text("Contenu visible avant déblocage")
} else {
Text("Contenu complet affiché après déblocage")
}

Paywall(
pageType = "premium",
mode = PaywallMode.CUSTOM,
onRelease = { isReleased = true }
)
}
}

Les principaux composables

  • AccessProvider : composant racine qui enveloppe tout votre contenu soumis au paywall. Il accepte des paramètres de configuration, styles, textes, et variables.

  • Snippet et RestrictedContent : pour afficher respectivement le contenu avant et après déblocage.

  • Paywall : pour configurer le wall (type de page, mode d’affichage, callbacks, etc.).

Le mode d’affichage du composant Paywall

Le composable Paywall permet de spécifier le mode d’affichage du mur via la propriété mode. Cette option contrôle la manière dont le contenu est restreint et comment l’expérience utilisateur est gérée. Trois modes sont actuellement disponibles :

  • PaywallMode.SNIPPET (par défaut) : utilisé en combinaison avec les composables Snippet et RestrictedContent. Le contenu complet est masqué, et une portion "teaser" reste visible.

  • PaywallMode.BOTTOM_SHEET : affiche le mur d’accès dans un bottom sheet modal. Ce mode est idéal pour une expérience plus intrusive et centrée, sans masquer le contenu sous-jacent.

  • PaywallMode.CUSTOM : donne un contrôle total à l'application. Le contenu est affiché ou masqué en fonction de l’état que vous gérez manuellement, souvent via une variable comme isReleased.

Exemple d’utilisation du mode BOTTOM_SHEET :

kotlinCopierModifierPaywall( pageType = "premium", mode = PaywallMode.BOTTOM_SHEET )

Exemple d’utilisation du mode CUSTOM avec callback :

kotlinCopierModifierPaywall( pageType = "premium", mode = PaywallMode.CUSTOM, onRelease = { isReleased = true } )

Chaque mode permet d’adapter le comportement du mur d’accès à l’expérience utilisateur que vous souhaitez offrir, du simple teasing de contenu à des stratégies de conversion plus marquées.


Utilisation avec le système de vues (legacy)

Même si le SDK cible Compose, il reste compatible avec les vues XML. L’intégration se fait à l’aide de la classe Access, qui injecte dynamiquement un paywall dans un ViewGroup.

Exemple Kotlin :

class MainActivity : AppCompatActivity() {
private var access: Access? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
access = Access("<your_app_id>", this)
access?.config(
mapOf(
"debug" to true,
"cookiesEnabled" to true
)
)
val content = findViewById<LinearLayout>(R.id.content)
access?.createPaywall(
pageType = "premium",
percent = 80,
viewGroup = content
)
}
}
Layout XML :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Contenu partiellement masqué par le paywall" />
</LinearLayout>
</RelativeLayout>

Le paramètre percent = 80 définit ici le pourcentage du contenu initialement visible avant affichage du mur. Il est bien entendu possible d’affiner cette configuration via d'autres options disponibles dans la documentation.

Merci pour votre lecture !Si vous rencontrez un problème pour accéder au contenu ou avez des questions, n’hésitez pas à contacter notre support sur Intercom

À très bientôt !

Avez-vous trouvé la réponse à votre question ?