Introducció
Les compres integrades a l'aplicació (In-App Purchases, IAP) permeten als desenvolupadors monetitzar les seves aplicacions oferint contingut addicional, funcionalitats premium o altres elements digitals directament dins de l'aplicació. En aquest tema, aprendrem com implementar compres integrades a l'aplicació en un projecte Android utilitzant la biblioteca de facturació de Google Play.
Requisits Previs
Abans de començar, assegura't de tenir:
- Un compte de desenvolupador de Google Play.
- Una aplicació publicada en Google Play (pot ser en mode de prova).
- Coneixements bàsics de Kotlin o Java i Android Studio.
Passos per Implementar Compres Integrades
- Configuració del Projecte
Afegir la Dependència de Facturació
Primer, afegeix la dependència de la biblioteca de facturació de Google Play al teu fitxer build.gradle
de l'aplicació:
- Configuració de Productes a Google Play Console
- Accedeix a Google Play Console: Inicia sessió al teu compte de desenvolupador de Google Play.
- Selecciona la teva Aplicació: Tria l'aplicació en la qual vols implementar les compres integrades.
- Configura Productes: A la secció de "Monetització" o "Productes integrats a l'aplicació", afegeix nous productes. Pots crear productes de tipus "Consumible", "No consumible" o "Subscripció".
- Implementació del Codi
Inicialització del Client de Facturació
Inicialitza el client de facturació en la teva activitat principal o en un fragment:
val billingClient = BillingClient.newBuilder(this) .setListener { billingResult, purchases -> // Gestiona els resultats de la compra } .enablePendingPurchases() .build()
Connexió al Servei de Facturació
Connecta't al servei de facturació:
billingClient.startConnection(object : BillingClientStateListener { override fun onBillingSetupFinished(billingResult: BillingResult) { if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { // El client de facturació està preparat } } override fun onBillingServiceDisconnected() { // Torna a intentar la connexió } })
Sol·licitud de Productes Disponibles
Sol·licita els productes disponibles per a la compra:
val skuList = listOf("product_id_1", "product_id_2") val params = SkuDetailsParams.newBuilder() params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP) billingClient.querySkuDetailsAsync(params.build()) { billingResult, skuDetailsList -> if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && skuDetailsList != null) { for (skuDetails in skuDetailsList) { // Gestiona els detalls del producte } } }
Inici de la Compra
Inicia el procés de compra quan l'usuari selecciona un producte:
val flowParams = BillingFlowParams.newBuilder() .setSkuDetails(skuDetails) .build() billingClient.launchBillingFlow(this, flowParams)
Gestió de la Resposta de la Compra
Gestiona la resposta de la compra en el PurchasesUpdatedListener
:
override fun onPurchasesUpdated(billingResult: BillingResult, purchases: List<Purchase>?) { if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && purchases != null) { for (purchase in purchases) { // Verifica la compra i proporciona el contingut } } else if (billingResult.responseCode == BillingClient.BillingResponseCode.USER_CANCELED) { // L'usuari ha cancel·lat la compra } else { // Gestiona altres errors } }
- Verificació de la Compra
Per garantir la seguretat, verifica les compres al servidor. Això implica enviar els detalls de la compra al teu servidor i verificar-los amb els servidors de Google.
- Prova de les Compres Integrades
Prova les compres integrades utilitzant comptes de prova configurats a Google Play Console. Assegura't que totes les compres funcionin correctament abans de publicar l'aplicació.
Exercici Pràctic
Objectiu
Implementar una compra integrada en una aplicació Android que permeti als usuaris comprar un element consumible.
Passos
- Configura un producte consumible a Google Play Console.
- Afegeix la dependència de facturació al teu projecte.
- Inicialitza el client de facturació i connecta't al servei.
- Sol·licita els productes disponibles i mostra'ls a l'usuari.
- Implementa el procés de compra i gestiona la resposta.
Solució
// 1. Configura un producte consumible a Google Play Console (product_id: "consumable_item") // 2. Afegeix la dependència de facturació al fitxer build.gradle dependencies { implementation 'com.android.billingclient:billing:4.0.0' } // 3. Inicialitza el client de facturació i connecta't al servei val billingClient = BillingClient.newBuilder(this) .setListener { billingResult, purchases -> if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && purchases != null) { for (purchase in purchases) { // Verifica la compra i proporciona el contingut } } } .enablePendingPurchases() .build() billingClient.startConnection(object : BillingClientStateListener { override fun onBillingSetupFinished(billingResult: BillingResult) { if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { // El client de facturació està preparat } } override fun onBillingServiceDisconnected() { // Torna a intentar la connexió } }) // 4. Sol·licita els productes disponibles i mostra'ls a l'usuari val skuList = listOf("consumable_item") val params = SkuDetailsParams.newBuilder() params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP) billingClient.querySkuDetailsAsync(params.build()) { billingResult, skuDetailsList -> if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && skuDetailsList != null) { for (skuDetails in skuDetailsList) { // Mostra els detalls del producte a l'usuari } } } // 5. Implementa el procés de compra i gestiona la resposta val flowParams = BillingFlowParams.newBuilder() .setSkuDetails(skuDetails) .build() billingClient.launchBillingFlow(this, flowParams)
Conclusió
Implementar compres integrades a l'aplicació és una manera efectiva de monetitzar les aplicacions Android. En aquest tema, hem après a configurar el projecte, inicialitzar el client de facturació, sol·licitar productes disponibles, iniciar el procés de compra i gestionar la resposta de la compra. Amb aquests coneixements, pots començar a oferir contingut premium i funcionalitats addicionals als teus usuaris.
En el següent tema, explorarem com utilitzar l'aprenentatge automàtic en Android per crear aplicacions més intel·ligents i personalitzades.
Curs d'Android Studio
Mòdul 1: Introducció a Android Studio
- Introducció a Android Studio
- Configuració d'Android Studio
- Comprensió de la Interfície d'Android Studio
- Creació del teu Primer Projecte Android
Mòdul 2: Desenvolupament Bàsic d'Android
- Comprensió de l'Estructura del Projecte Android
- Introducció als Dissenys XML
- Components Bàsics de la Interfície d'Usuari
- Introducció a les Activitats
- Executar la teva Aplicació en un Emulador
Mòdul 3: Desenvolupament Intermedi d'Android
- Introducció als Intents
- Treballar amb Fragments
- Gestió de l'Entrada de l'Usuari
- Ús de RecyclerView
- Xarxes en Android
Mòdul 4: Desenvolupament Avançat d'Android
- Persistència de Dades amb SQLite
- Ús de Room per a la Gestió de Bases de Dades
- Components Avançats de la Interfície d'Usuari
- Vistes Personalitzades i Canvas
- Treballar amb Tasques en Segon Pla
Mòdul 5: Desenvolupament Professional d'Android
- Implementació de l'Arquitectura MVVM
- Injecció de Dependències amb Dagger
- Proves Unitàries i Proves de la Interfície d'Usuari
- Publicació de la teva Aplicació a Google Play
- Optimització del Rendiment