More
Flutter, Google Wallet y Back4App: Tutorial de aplicación de recompensas ambientales
15 min
introducción en este tutorial, crearemos una aplicación flutter que anima a los usuarios a tomar acciones ambientales, recompensándolos con insignias digitales y entradas para eventos almacenadas en google wallet integraremos back4app como el backend para gestionar los datos de los usuarios y rastrear las contribuciones ambientales cada vez que un usuario completa una tarea, recibe una insignia coleccionable o una entrada para un evento, que puede añadirse a su google wallet para su resguardo características los usuarios pueden registrar tareas ambientales (por ejemplo, reciclaje, voluntariado) los usuarios ganan insignias digitales y pases para eventos según sus contribuciones google wallet almacena y muestra estos activos digitales integración de backend con back4app para el seguimiento y la gestión de datos requisitos previos entorno de desarrollo de flutter sigue la guía de instalación de flutter https //flutter dev/docs/get started/install cuenta de back4app regístrate en back4app https //www back4app com acceso a la api de google wallet configura tu proyecto siguiendo la documentación de la api de google wallet https //developers google com/wallet claves de api de google wallet genera y utiliza las claves de api necesarias para acceder a google wallet paso 1 configuración de back4app como backend 1 1 crear un proyecto en back4app inicia sesión en back4app https //www back4app com/ y crea un nuevo proyecto crea una clase parse llamada environmentalactions con los siguientes campos nombredeusuario (string) el nombre de usuario del usuario tipodeacción (string) tipo de acción ambiental (por ejemplo, reciclaje, plantación de árboles) marcadetiempo (datetime) la fecha en que el usuario completó la acción recompensaemitida (boolean) si se ha emitido una recompensa por la acción 1 2 agregar datos de ejemplo a back4app puedes agregar algunos registros de ejemplo para fines de prueba, pero la aplicación manejará la entrada de datos más tarde cuando los usuarios completen tareas paso 2 inicializar el sdk de parse en flutter 2 1 crear un nuevo proyecto de flutter abre tu terminal y crea un nuevo proyecto de flutter flutter create env rewards app 2 2 agregar dependencias abre el pubspec yaml archivo y agrega las dependencias requeridas dependencies flutter sdk flutter parse server sdk flutter latest version http ^0 13 3 # for networking google wallet pass latest version # example package to handle google wallet passes ejecuta flutter pub get para instalar los paquetes 2 3 inicializar el sdk de parse en el archivo principal en lib/main dart , inicializa el sdk de parse agregando tus credenciales de back4app import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your back4app app id'; const keyclientkey = 'your back4app client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize(keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true); runapp(myapp()); } class myapp extends statelesswidget { @override widget build(buildcontext context) { return materialapp( title 'environmental rewards', home environmentalrewardsscreen(), ); } } import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your back4app app id'; const keyclientkey = 'your back4app client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize(keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true); runapp(myapp()); } class myapp extends statelesswidget { @override widget build(buildcontext context) { return materialapp( title 'environmental rewards', home environmentalrewardsscreen(), ); } } reemplace your back4app app id y your back4app client key con sus credenciales reales de back4app paso 3 construir la interfaz de usuario para registrar acciones ambientales crearemos una interfaz de usuario básica que permita a los usuarios registrar sus acciones ambientales y ver sus recompensas digitales 3 1 crear el widget environmentalrewardsscreen crea un nuevo widget en lib/environmental rewards screen dart import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; import 'package\ intl/intl dart'; // for formatting dates class environmentalrewardsscreen extends statefulwidget { @override environmentalrewardsscreenstate createstate() => environmentalrewardsscreenstate(); } class environmentalrewardsscreenstate extends state\<environmentalrewardsscreen> { final texteditingcontroller usernamecontroller = texteditingcontroller(); string? selectedaction; bool loading = false; string? rewardmessage; final list\<string> actions = \['recycling', 'tree planting', 'volunteering']; future\<void> logaction() async { if ( usernamecontroller text isempty || selectedaction == null) { scaffoldmessenger of(context) showsnackbar(snackbar( content text('please enter a username and select an action '), )); return; } setstate(() { loading = true; }); // save action to back4app final actionobject = parseobject('environmentalactions') set('username', usernamecontroller text) set('actiontype', selectedaction) set('timestamp', datetime now()) set('rewardissued', false); final response = await actionobject save(); if (response success) { setstate(() { rewardmessage = 'action logged! check your rewards!'; }); // call google wallet api to issue a reward here await issuereward(); } else { setstate(() { rewardmessage = 'failed to log action '; }); } setstate(() { loading = false; }); } future\<void> issuereward() async { // this is where you'd integrate the google wallet api to issue a digital badge // use the google wallet sdk to generate a pass and add it to the user's wallet } @override widget build(buildcontext context) { return scaffold( appbar appbar(title text('environmental rewards')), body padding( padding const edgeinsets all(16 0), child column( children \[ textfield( controller usernamecontroller, decoration inputdecoration(labeltext 'username'), ), sizedbox(height 16), dropdownbutton\<string>( value selectedaction, hint text('select an environmental action'), items actions map((string action) { return dropdownmenuitem\<string>( value action, child text(action), ); }) tolist(), onchanged (string? newvalue) { setstate(() { selectedaction = newvalue!; }); }, ), sizedbox(height 16), elevatedbutton( onpressed loading ? null logaction, child loading ? circularprogressindicator() text('log action'), ), sizedbox(height 16), if ( rewardmessage != null) text( rewardmessage!, style textstyle(color colors green)), ], ), ), ); } } esta interfaz de usuario permite al usuario ingresar su nombre de usuario seleccionar una acción ambiental registrar la acción, lo que activa el backend y emite una recompensa utilizando la api de google wallet paso 4 integrar google wallet para emitir recompensas 4 1 configurar la api de google wallet sigue la documentación de la api de google wallet https //developers google com/wallet para configurar la api y obtener tus claves de api 4 2 emitir una insignia digital con google wallet en el issuereward() método, implementarás la lógica para crear una insignia digital (pase genérico) y guardarla en la google wallet del usuario aquí hay una estructura básica future\<void> issuereward() async { final badgedata = { 'title' 'environmental hero', 'description' 'awarded for completing environmental actions ', // add any additional information or metadata }; // call google wallet api to generate a pass // you can use the 'google wallet pass' package or direct api calls final response = await creategooglewalletpass(badgedata); // placeholder for actual implementation if (response success) { scaffoldmessenger of(context) showsnackbar(snackbar( content text('badge issued! check your google wallet '), )); } else { scaffoldmessenger of(context) showsnackbar(snackbar( content text('failed to issue badge '), )); } } paso 5 ejecutar la aplicación ejecuta la aplicación usando flutter run para comenzar a registrar acciones y recibir recompensas cuando un usuario registra una acción, se guardará en back4app, y se emitirá una insignia utilizando la api de google wallet conclusión este tutorial mostró cómo construir una aplicación de recompensas ambientales usando flutter , google wallet , y back4app los usuarios registran acciones ambientales, y al completarlas, reciben insignias digitales o pases de eventos almacenados en su google wallet este proyecto podría ampliarse con funciones de compartir en redes sociales, tablas de clasificación, o incluso recompensas basadas en ubicación usando códigos qr para más información, consulta documentación de flutter https //flutter dev/docs documentación de la api de google wallet https //developers google com/wallet documentación de back4app https //www back4app com/docs