Quickstarters
Feature Overview
How to Build a Backend for Android?
47 min
introducción en este tutorial, aprenderás a construir un backend completo para una android (java) aplicación utilizando back4app recorreremos la integración de características esenciales de back4app, como la gestión de bases de datos, funciones de cloud code, apis rest y graphql, autenticación de usuarios y consultas en tiempo real (live queries), para crear un backend seguro, escalable y robusto que se comunique sin problemas con tu cliente de android también verás cómo la configuración rápida de back4app y su entorno intuitivo pueden reducir drásticamente el tiempo y el esfuerzo en comparación con la configuración manual de servidores y bases de datos a lo largo del camino, obtendrás experiencia práctica con funcionalidades clave, incluyendo características de seguridad avanzadas, programación de tareas con cloud jobs y configuración de webhooks para integraciones externas al final de este tutorial, estarás bien preparado para mejorar esta configuración básica en una aplicación lista para producción, o incorporar fácilmente lógica personalizada y apis de terceros según sea necesario requisitos previos para completar este tutorial, necesitarás una cuenta de back4app y un nuevo proyecto de back4app introducción a back4app https //www back4app com/docs/get started/new parse app si no tienes una cuenta, puedes crear una de forma gratuita sigue la guía anterior para preparar tu proyecto entorno de desarrollo básico de android (java) puedes configurarlo utilizando android studio https //developer android com/studio o una herramienta similar asegúrate de tener instalado el sdk de android más reciente java (versión 8 o superior) necesitarás java para compilar y ejecutar tu proyecto de android familiaridad con java y conceptos básicos de android documentación de desarrolladores de android https //developer android com/docs si eres nuevo en android, revisa la documentación oficial o un tutorial para principiantes antes de comenzar asegúrate de tener todos estos requisitos previos en su lugar antes de comenzar tener tu proyecto de back4app configurado y tu entorno local de android listo te ayudará a seguir más fácilmente paso 1 – configuración del proyecto de back4app crear un nuevo proyecto el primer paso para construir tu backend de android en back4app es crear un nuevo proyecto si aún no has creado uno, sigue estos pasos inicia sesión en tu cuenta de back4app haz clic en el botón “nueva app” en tu panel de back4app dale un nombre a tu app (por ejemplo, “android backend tutorial”) una vez que se crea el proyecto, lo verás listado en tu panel de back4app este proyecto será la base para todas las configuraciones de backend discutidas en este tutorial conectar el sdk de parse back4app se basa en la plataforma parse para gestionar tus datos, proporcionar características en tiempo real, manejar la autenticación de usuarios y más conectar tu aplicación de android a back4app implica instalar el sdk de android de parse e inicializarlo con las credenciales de tu panel de back4app recupera tus claves de parse en tu panel de back4app, navega a la sección “configuraciones de la app” o “seguridad y claves” de tu app para encontrar tu id de aplicación y clave de cliente (o clave de javascript si se indica) también encontrarás la url del servidor de parse (a menudo en el formato https //parseapi back4app com ) instala el sdk de parse en tu proyecto de android añadiendo estas líneas a tu module level build gradle dependencies { implementation "com github parse community parse sdk android\ parse\ latest version here" } si necesitas el repositorio de jitpack en tu root build gradle allprojects { repositories { maven { url "https //jitpack io" } } } inicializa parse en tu aplicación de android crea una application personalizada (por ejemplo, app java ) y configura el androidmanifest xml package com example app; import android app application; import com parse parse; public class app extends application { @override public void oncreate() { super oncreate(); parse initialize(new parse configuration builder(this) applicationid("your app id") // from back4app clientkey("your client key") // from back4app server("https //parseapi back4app com/") build() ); } } luego, añade esta clase personalizada de application en tu androidmanifest xml \<?xml version="1 0" encoding="utf 8"?> \<manifest > \<application android\ name=" app" > \</application> \</manifest> al completar este paso, has establecido una conexión segura entre tu front end de android y el backend de back4app todas las solicitudes y transacciones de datos se enrutan de forma segura a través de este sdk, reduciendo la complejidad de las llamadas manuales rest o graphql (aunque aún puedes usarlas cuando sea necesario) paso 2 – configuración de la base de datos guardar y consultar datos con tu proyecto de back4app configurado y el sdk de parse integrado en tu aplicación de android, ahora puedes comenzar a guardar y recuperar datos una forma típica de crear y guardar un registro es usar la parseobject clase parseobject gamescore = new parseobject("gamescore"); gamescore put("score", 1337); gamescore put("playername", "sean plott"); gamescore put("cheatmode", false); gamescore saveinbackground(e > { if (e == null) { // success! } else { // failed } }); para consultar los datos parsequery\<parseobject> query = parsequery getquery("gamescore"); query whereequalto("playername", "sean plott"); query findinbackground((objects, e) > { if (e == null) { // objects now contains the results } else { // something went wrong } }); alternativamente, puedes usar los puntos finales de la api rest curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"score" 1337, "playername" "sean plott", "cheatmode" false}' \\ https //parseapi back4app com/classes/gamescore back4app también proporciona una interfaz graphql mutation { creategamescore(input { fields { score 1337 playername "sean plott" cheatmode false } }) { gamescore { objectid score playername cheatmode } } } mutation { creategamescore(input { fields { score 1337 playername "sean plott" cheatmode false } }) { gamescore { objectid score playername cheatmode } } } estas diversas opciones te permiten integrar operaciones de datos de la manera que mejor se adapte a tu proceso de desarrollo, ya sea a través del sdk de android de parse, rest o graphql diseño de esquema y tipos de datos por defecto, parse permite la creación de esquemas sobre la marcha , pero también puedes definir tus clases y tipos de datos en el panel de control de back4app para tener más control navega a la sección “base de datos” en tu panel de control de back4app crea una nueva clase (por ejemplo, “gamescore”) y añade columnas relevantes back4app también soporta varios tipos de datos string , number , boolean , object , date , file , pointer, array, relation , geopoint , y polygon puedes elegir el tipo apropiado para cada campo back4app ofrece un agente de ia que puede ayudarte a diseñar tu modelo de datos abre el agente de ia desde tu panel de control de la aplicación o en el menú describe tu modelo de datos en un lenguaje simple (por ejemplo, “por favor, crea una nueva aplicación todo con un esquema de clase completo ”) deja que el agente de ia cree el esquema por ti datos relacionales si tienes datos relacionales—digamos, un categoría objeto que apunta a múltiples gamescore objetos—puedes usar punteros o relaciones en parse por ejemplo // linking a gamescore to a category with a pointer public void creategamescoreforcategory(string categoryobjectid, int scorevalue) { parseobject gamescore = new parseobject("gamescore"); // construct a pointer to the category parseobject categorypointer = parseobject createwithoutdata("category", categoryobjectid); // set fields gamescore put("score", scorevalue); gamescore put("category", categorypointer); gamescore saveinbackground(e > { if (e == null) { // success } else { // error } }); } cuando consultas, puedes incluir datos de punteros parsequery\<parseobject> query = parsequery getquery("gamescore"); query include("category"); query findinbackground((scores, e) > { if (e == null) { // scores now has category details } }); consultas en vivo para actualizaciones en tiempo real, back4app proporciona consultas en vivo puedes suscribirte a cambios en una clase específica desde tu aplicación de android habilitar consultas en vivo en tu panel de back4app bajo la configuración del servidor de tu aplicación inicializar la consulta en vivo en tu código en android, normalmente confías en la biblioteca parse livequery para android https //github com/parse community/parselivequery android para suscribirte los pasos son similares a otras plataformas, pero integrarás un livequeryclient dependencies { implementation "com github parse community\ parselivequery android\ latest version here" } entonces livequeryclient livequeryclient = new livequeryclient builder("wss\ //your subdomain here b4a io", 443) build(); parsequery\<parseobject> query = parsequery getquery("gamescore"); subscriptionhandling\<parseobject> subscriptionhandling = livequeryclient subscribe(query); subscriptionhandling handleevents((query1, event, gamescore) > { switch (event) { case create // a new gamescore object was created break; case update // existing gamescore updated break; case delete // existing gamescore deleted break; default break; } }); al suscribirte, recibes notificaciones en tiempo real cada vez que se crea, actualiza o elimina un nuevo registro esta función es particularmente valiosa para aplicaciones colaborativas o dinámicas donde múltiples usuarios necesitan ver los últimos datos sin refrescar la página paso 3 – aplicando seguridad con acls y clps mecanismo de seguridad de back4app back4app toma la seguridad en serio al proporcionar listas de control de acceso (acls) y permisos a nivel de clase (clps) estas características te permiten restringir quién puede leer o escribir datos a nivel de objeto o de clase, asegurando que solo los usuarios autorizados puedan modificar tus datos listas de control de acceso (acls) un acl se aplica a objetos individuales para determinar qué usuarios, roles o el público pueden realizar operaciones de lectura/escritura por ejemplo public void createprivatescore(int scorevalue, parseuser owneruser) { parseobject gamescore = new parseobject("gamescore"); gamescore put("score", scorevalue); parseacl acl = new parseacl(owneruser); acl setpublicreadaccess(false); acl setpublicwriteaccess(false); gamescore setacl(acl); gamescore saveinbackground(e > { if (e == null) { // success } else { // failed } }); } permisos a nivel de clase (clps) los clps rigen los permisos predeterminados de toda una clase, como si la clase es legible o escribible públicamente, o si solo ciertos roles pueden acceder a ella ve a tu panel de control de back4app , selecciona tu aplicación y abre la base de datos sección selecciona una clase (por ejemplo, “gamescore”) abre la pestaña de permisos a nivel de clase configura tus predeterminados estos permisos establecen la línea base, mientras que los acls ajustan los permisos para objetos individuales un modelo de seguridad robusto combina típicamente tanto clps (restricciones amplias) como acls (restricciones detalladas por objeto) para más información, ve a directrices de seguridad de la aplicación https //www back4app com/docs/security/parse security paso 4 – escribir y desplegar funciones de código en la nube por qué cloud code cloud code es una característica del entorno de parse server que te permite ejecutar código javascript personalizado en el lado del servidor, sin necesidad de gestionar tus servidores o infraestructura al escribir cloud code, puedes extender tu backend de back4app con lógica de negocio adicional, validaciones, disparadores e integraciones que se ejecutan de manera segura y eficiente en el parse server función de ejemplo una función simple de cloud code que calcula la longitud de una cadena de texto enviada desde el cliente main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); despliegue back4app cli tablero en el tablero de tu aplicación, ve a cloud code > funciones copia/pega tu código en main js y haz clic en desplegar llamando a tu función desde android (java) usando el sdk de parse hashmap\<string, object> params = new hashmap<>(); params put("text", "hello back4app"); parsecloud callfunctioninbackground("calculatetextlength", params, (result, e) > { if (e == null) { // result is a hashmap; get the length map\<?, ?> mapresult = (map\<?, ?>) result; object lengthval = mapresult get("length"); // cast to number, etc } else { // handle error } }); también puedes llamarlo a través de rest o graphql esta flexibilidad te permite integrar tu lógica personalizada en tu frontend de android o cualquier otro cliente que soporte rest o graphql paso 5 – configuración de la autenticación de usuario autenticación de usuario en back4app back4app aprovecha la clase parse user como base para la autenticación por defecto, parse maneja el hash de contraseñas, tokens de sesión y almacenamiento seguro esto significa que no tienes que configurar flujos de seguridad complejos manualmente configurando la autenticación de usuario en una aplicación de android usando java, puedes crear un nuevo usuario parseuser user = new parseuser(); user setusername("myusername"); user setpassword("mypassword"); user setemail("email\@example com"); user signupinbackground(e > { if (e == null) { // sign up success } else { // sign up failed } }); iniciar sesión con un usuario existente parseuser logininbackground("myusername", "mypassword", (parseuser, e) > { if (e == null) { // logged in successfully } else { // login failed } }); a través de rest, un inicio de sesión podría verse así curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ g \\ \ data urlencode 'username=alice' \\ \ data urlencode 'password=secret123' \\ https //parseapi back4app com/login gestión de sesiones después de un inicio de sesión exitoso, parse crea un token de sesión almacenado en el objeto del usuario puedes verificar el usuario que ha iniciado sesión actualmente parseuser currentuser = parseuser getcurrentuser(); if (currentuser != null) { // user is logged in } else { // no user is logged in } puedes cerrar sesión parseuser logout(); integración de inicio de sesión social back4app y parse pueden integrarse con proveedores de oauth populares como google o facebook por ejemplo, puedes configurar el inicio de sesión de facebook configurando el facebook app id y utilizando parse facebookutils dedicados para android las instrucciones detalladas varían, así que consulta documentación de inicio de sesión social https //www back4app com/docs/platform/sign in with apple verificación de correo electrónico y restablecimiento de contraseña para habilitar la verificación de correo electrónico y el restablecimiento de contraseña navega a la configuración de correo electrónico en tu panel de control de back4app habilita la verificación de correo electrónico configura la dirección del remitente y las plantillas de correo electrónico esto ayuda a asegurar que el correo electrónico de tu usuario sea válido y proporciona un método seguro de recuperación de contraseña paso 6 – manejo del almacenamiento de archivos subiendo y recuperando archivos parse incluye la clase parsefile para manejar la carga de archivos, que back4app almacena de forma segura file file = new file("/path/to/image jpg"); byte\[] data = // read file as bytes parsefile parsefile = new parsefile("image jpg", data); parsefile saveinbackground(e > { if (e == null) { // file saved } else { // error } }); adjuntar el archivo a un objeto parseobject photo = new parseobject("photo"); photo put("imagefile", parsefile); photo saveinbackground(); recuperar la url del archivo parsefile imagefile = photo getparsefile("imagefile"); string url = imagefile geturl(); seguridad de archivos parse server proporciona configuraciones flexibles para gestionar la seguridad de la carga de archivos, incluyendo el control sobre si los usuarios anónimos o autenticados pueden cargar archivos asegúrate de consultar la documentación para configuraciones más avanzadas paso 7 – verificación de correo electrónico y restablecimiento de contraseña descripción general verificar correos electrónicos asegura que los nuevos usuarios son propietarios de la dirección de correo utilizada para registrarse los restablecimientos de contraseña permiten a los usuarios recuperar sus cuentas de manera segura configuración del panel de control de back4app habilitar verificación de correo electrónico en el panel de control de tu aplicación, ve a configuraciones de correo electrónico habilitar restablecimiento de contraseña configura el flujo de correo electrónico para el restablecimiento de contraseña código/implementación activar el restablecimiento de contraseña en java parseuser requestpasswordresetinbackground("email\@example com", e > { if (e == null) { // email sent } else { // something went wrong } }); paso 8 – programación de tareas con cloud jobs cloud jobs usa cloud jobs en back4app para programar tareas recurrentes, como limpiar datos antiguos o enviar correos electrónicos diarios ejemplo parse cloud job('cleanupoldscores', async (request) => { const gamescore = parse object extend('gamescore'); const query = new parse query(gamescore); // e g , remove scores older than 30 days // }); programarlo en el panel de control de back4app > configuraciones de la aplicación > configuraciones del servidor > tareas en segundo plano paso 9 – integrando webhooks webhooks permiten que tu aplicación back4app envíe solicitudes http a un servicio externo cada vez que ocurren ciertos eventos, por ejemplo, enviar datos a un servicio de terceros como stripe navega a webhooks en tu panel de control de back4app > más > webhooks agregar webhook con tu endpoint externo configurar disparadores para eventos relevantes paso 10 – explorando el panel de administración de back4app la aplicación de administración de back4app es una interfaz de gestión basada en la web diseñada para usuarios no técnicos permite operaciones crud rápidas y gestión rutinaria de datos sin necesidad de escribir código habilitando la aplicación de administración ve a panel de la aplicación > más > aplicación de administración y haz clic en habilitar aplicación de administración crear un primer usuario administrador y subdominio, y tendrás una interfaz web para la administración de datos conclusión siguiendo este tutorial completo, has creado un backend seguro para una aplicación de android (java) en back4app configurado una base de datos con esquemas de clase, tipos de datos y relaciones integrado consultas en tiempo real (consultas en vivo) para actualizaciones de datos inmediatas aplicado medidas de seguridad utilizando acls y clps para proteger y gestionar el acceso a los datos implementado cloud code funciones para ejecutar lógica de negocio personalizada en el lado del servidor configurado la autenticación de usuarios con soporte para verificación de correo electrónico y restablecimiento de contraseñas gestionado cargas de archivos y recuperación, con controles de seguridad de archivos opcionales programado trabajos en la nube para tareas automatizadas en segundo plano usado webhooks para integrarse con servicios externos explorado el panel de administración de back4app para la gestión de datos con un sólido frontend de android (java) y un robusto backend de back4app, ahora estás bien equipado para desarrollar aplicaciones ricas en características, escalables y seguras continúa explorando funcionalidades más avanzadas, integra tu lógica de negocio y aprovecha el poder de back4app para ahorrarte innumerables horas en la administración de servidores y bases de datos ¡feliz codificación! próximos pasos construye una aplicación de android lista para producción extendiendo este backend para manejar modelos de datos más complejos, estrategias de caché y optimizaciones de rendimiento integra características avanzadas como flujos de autenticación especializados, control de acceso basado en roles o apis externas (como pasarelas de pago) consulta la documentación oficial de back4app para profundizar en seguridad avanzada, ajuste de rendimiento y análisis de registros explora otros tutoriales sobre aplicaciones de chat en tiempo real, paneles de iot o servicios basados en ubicación puedes combinar las técnicas aprendidas aquí con apis de terceros para crear aplicaciones complejas del mundo real