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
etRestrictedContent
: 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 composablesSnippet
etRestrictedContent
. 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 commeisReleased
.
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 !