Quickstarters
Feature Overview
¿Cómo construir un backend para iOS?
41 min
introducción en este tutorial, aprenderás cómo construir un backend para ios usando back4app https //www back4app com recorreremos la integración de características esenciales de back4app, como la gestión de bases de datos, funciones en la nube, apis rest y graphql, autenticación de usuarios, almacenamiento de archivos y consultas en tiempo real (consultas en vivo), para crear un backend seguro, escalable y robusto para tu aplicación ios las ofertas de backend como servicio de back4app ayudan a reducir la complejidad de configurar una infraestructura del lado del servidor mientras aceleran el desarrollo puedes almacenar datos en un formato flexible de estilo base de datos nosql, gestionar cuentas de usuario, agregar notificaciones push , y aplicar controles de acceso avanzados en una fracción del tiempo que tomaría construir una solución personalizada esto significa que puedes centrarte en mejorar la experiencia del usuario e implementar características centrales, en lugar de preocuparte por el mantenimiento del servidor o la provisión al final de este tutorial, tendrás un backend listo que puede adaptarse a escenarios del mundo real, escalar para acomodar un aumento de tráfico y expandirse con lógica más compleja o servicios de terceros podrás ofrecer un backend confiable para tu aplicación ios, acelerar tu proceso de desarrollo , y mejorar tu interfaz de usuario general con menos esfuerzo requisitos previos para completar este tutorial, necesitarás una cuenta de back4app y un nuevo proyecto de back4app comenzando con back4app https //www back4app com/docs/get started/new parse app si no tienes una cuenta, puedes crear una gratis sigue la guía anterior para preparar tu proyecto entorno básico de desarrollo de ios puedes desarrollar con xcode (versión 13 0 o superior) instalar xcode https //developer apple com/xcode/ swift package manager o cocoapods para agregar parse swift sigue las instrucciones de github de parse swift https //github com/netreconlab/parse swift para detalles de instalación familiaridad con swift y conceptos de ios documentación de swift de apple https //docs swift org/swift book/ si eres nuevo en swift o ios, revisa la documentación oficial o un tutorial básico de ios antes de comenzar tener un entorno de ios funcional con xcode, junto con tu cuenta gratuita de back4app, te ayudará a seguir más fácilmente paso 1 – crear un nuevo proyecto en back4app y conectar ¿por qué crear un nuevo proyecto? un nuevo proyecto de back4app forma la base de tu desarrollo de backend para ios proporciona todas las herramientas que necesitas base de datos, apis, autenticación, funciones en la nube—para construir un backend de manera rápida y segura guía paso a paso inicia sesión en tu cuenta de back4app crea una nueva aplicación haciendo clic en “nueva aplicación” en tu panel de back4app dale un nombre a tu aplicación (por ejemplo, “ios backend demo”) una vez creado, su nuevo proyecto aparecerá en su panel de control de back4app instalando el sdk de parse swift y configurando las claves back4app se basa en la plataforma parse en su funcionamiento interno para ios, use el sdk de parse swift 1 recupere sus claves de parse en el panel de control de back4app, vaya a “configuración de la aplicación” o “seguridad y claves” para encontrar id de la aplicación clave del cliente (o clave de swift si corresponde) url del servidor (a menudo https //parseapi back4app com ) 2 agregue el sdk de parse swift si está utilizando swift package manager // in package swift or xcode's swift packages package( url "https //github com/netreconlab/parse swift git", from "5 0 0" ) si estás usando cocoapods , agrégalo en tu podfile pod 'parseswiftog' luego ejecuta pod install 3 inicializa parse dentro de tu appdelegate swift (o archivo principal de la aplicación swiftui), llama a parseswift initialize( ) con tus credenciales import swiftui import parseswift @main struct myapp app { init() { do { try await parseswift initialize( applicationid "your app id", clientkey "your client key", // optional serverurl url(string "https //parseapi back4app com")! ) } catch { print("error initializing parse \\\\(error)") } } var body some scene { windowgroup { contentview() } } } ¡felicidades! tu aplicación ios ahora está conectada a back4app, y cada solicitud o transacción de datos se realizará automáticamente a través de parse swift paso 2 – configuración de la base de datos 1 creando un modelo de datos back4app utiliza un schema enfoque donde cada clase/tabla puede ser gestionada desde el panel de control supongamos que queremos crear una todo clase ve a “base de datos” en tu consola de back4app haz clic en “crear una nueva clase” , nómbrala todo , y agrega columnas como title (string) y iscompleted (boolean) 2 creando un modelo de datos con el agente de ia el agente de ia de back4app puede acelerar el diseño de tu esquema abre el agente de ia en tu panel de control describe tu modelo de datos en lenguaje sencillo (por ejemplo, “crea una nueva clase todo con campos de título y iscompleted”) deja que la ia construya el esquema por ti automáticamente 3 lectura y escritura de datos usando el sdk de swift con parse swift , define tu estructura de datos en código por ejemplo import parseswift struct todo parseobject { // parseobject protocol var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom properties var title string? var iscompleted bool? } // saving func createtodoitem(title string, iscompleted bool) async { var todo = todo() todo title = title todo iscompleted = iscompleted do { let saved = try await todo save() print("saved objectid \\\\(saved objectid ?? "")") } catch { print("error saving \\\\(error)") } } // querying func fetchtodos() async { do { let todos = try await todo query() find() print("fetched \\\\(todos count) todos") } catch { print("error fetching \\\\(error)") } } 4 lectura y escritura de datos usando la api rest alternativamente, puedes usar llamadas rest por ejemplo, para crear un todo curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo 5 lectura y escritura de datos utilizando la api de graphql back4app también incluye soporte para graphql aquí hay un ejemplo de mutación mutation { createtodo(input { fields { title "clean house" iscompleted false } }) { todo { objectid title iscompleted } } } 6 trabajando con consultas en vivo (opcional) back4app soporta actualizaciones en tiempo real a través de consultas en vivo para swift let subscription = try? todo query("iscompleted" == false) subscribe() subscription? handleevent({ event in switch event { case created(let newtodo) print("new todo created \\\\(newtodo)") case updated(let updatedtodo) print("todo updated \\\\(updatedtodo)") default break } }) paso 3 – aplicando seguridad con acls y clps 1 descripción general listas de control de acceso https //www back4app com/docs/security/parse security (acls) controlan los permisos por objeto, mientras que permisos a nivel de clase (clps) establecen valores predeterminados para clases enteras 2 pasos permisos a nivel de clase en el panel de control de back4app, abre una clase (por ejemplo, todo ), luego haz clic en la pestaña “seguridad” puedes restringir la lectura/escritura solo a usuarios o roles autenticados acls en código cuando guardas un parseobject, puedes asignar un acl ajusta estos para asegurar que tus datos solo sean accesibles por los usuarios correctos paso 4 – escribiendo funciones de cloud code 1 ¿por qué cloud code? el código en la nube es tu mejor amigo para agregar lógica del lado del servidor a tu aplicación ios puedes mantener la lógica sensible o las validaciones alejadas del cliente, integrar apis externas y ejecutar tareas en segundo plano en el servidor 2 ejemplo de función crea un main js archivo localmente (o en el editor en línea) con una función parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw "no text provided"; } return { length text length }; }); 3 despliegue usa el back4app cli https //www back4app com/docs/local development/parse cli o el editor de cloud code > funciones en el panel instala el cli configura tu clave de cuenta despliega 4 llamando al cloud code desde ios task { do { if let result = try await parsecloud callfunction("calculatetextlength", with \["text" "hello back4app"]) as? \[string int] { print("text length \\\\(result\["length"] ?? 0)") } } catch { print("cloud code error \\\\(error)") } } 5 usando módulos npm en tu package json (dentro del cloud code), lista tus dependencias luego en main js const axios = require('axios'); parse cloud define("fetchposts", async () => { // use axios here }); paso 5 – configurando la autenticación 1 habilitar la autenticación de usuarios en tu panel de back4app, la user clase ya está proporcionada puedes establecer verificación de correo electrónico, restablecimientos de contraseña y más 2 ejemplos de código para ios regístrate iniciar sesión 3 inicio de sesión social puedes integrar inicios de sesión sociales (google, apple, facebook) con parse swift consulta la documentación de inicio de sesión social https //www back4app com/docs/platform/sign in with apple para instrucciones detalladas paso 6 – manejo del almacenamiento de archivos 1 configuración del almacenamiento de archivos sube y recupera archivos como imágenes o documentos a través de parse para swift struct gamescore parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var score int? var picture parsefile? } func uploadimagedata( data data) async { var file = parsefile(name "photo jpg", data data) do { file = try await file save() print("file url \\\\(file url ?? "")") } catch { print("error uploading file \\\\(error)") } } 2 recuperación de archivos func fetchimage(file parsefile) async { do { let fetched = try await file fetch() print("fetched localurl \\\\(fetched localurl? absolutestring ?? "")") } catch { print("error fetching file \\\\(error)") } } 3 consideraciones de seguridad puedes configurar los permisos de archivo en la configuración de back4app o en el archivo de tu aplicación parse config por ejemplo, restringe quién puede subir o eliminar archivos paso 7 – verificación de correo electrónico y restablecimiento de contraseña 1 ¿por qué la verificación? la verificación de correo electrónico asegura que un usuario posee la dirección de correo electrónico proporcionada los flujos de restablecimiento de contraseña permiten a los usuarios recuperar cuentas de forma segura 2 configurar en back4app ir a configuración de la aplicación > configuración del correo electrónico del usuario habilitar verificación de correo electrónico configurar el correo electrónico de origen , plantillas de correo electrónico y dominio personalizado opcional 3 implementación task { do { try await user requestpasswordreset(email "johnny\@example com") print("password reset email sent") } catch { print("error resetting password \\\\(error)") } } paso 8 – programación de tareas con trabajos en la nube 1 descripción general usar trabajos en la nube para automatizar tareas como eliminar registros antiguos o enviar notificaciones diarias se ejecutan en el lado del servidor , no son activados directamente por el cliente 2 ejemplo parse cloud job("cleanupoldtodos", async (request) => { const todo = parse object extend("todo"); const query = new parse query(todo); // older than 30 days const cutoff = new date(date now() 30 24 60 60 1000); query lessthan("createdat", cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); programa este trabajo en el panel de control de back4app bajo configuración del servidor > trabajos en segundo plano para que se ejecute periódicamente paso 9 – integrando webhooks 1 definición webhooks permiten que tu aplicación envíe datos a servicios externos cada vez que ocurren ciertos eventos por ejemplo, notificar a un canal de slack cuando se crea un todo 2 configuración panel de control ve a más > webhooks y selecciona “agregar webhook ” establecer endpoint p ej https //my server com/webhook endpoint disparador de evento p ej “nuevo registro en la clase todo ” 3 ejemplo de código parse cloud aftersave("todo", async (request) => { const { object } = request; // make an http post to an external url // containing the new todo details }); paso 10 – explorando el panel de administración de back4app 1 dónde encontrarlo tu panel de administración es accesible a través de “más” > “aplicación de administración” en el panel de control de back4app crea un usuario administrador y elige un subdominio para un acceso fácil 2 características navegación de datos ver y editar clases en un formato fácil de usar registros verificar registros del servidor y registros de cloud code analíticas monitorear uso, notificaciones push, etc conclusión en este tutorial, aprendiste cómo construir un backend para ios utilizando back4app y el sdk de parse swift integraste una base de datos escalable, implementaste seguridad con acls y clps, escribiste funciones de cloud code, configuraste la autenticación de usuarios, manejaste el almacenamiento de archivos e incluso programaste tareas en segundo plano con estas características esenciales en su lugar, puedes ofrecer un backend confiable para tu aplicación móvil ios mientras te enfocas en la experiencia del usuario y características únicas próximos pasos explora roles avanzados y controles de acceso personalizados para seguridad de múltiples niveles integra características avanzadas como notificaciones push, geo consultas o fuentes de datos externas revisa la documentación oficial de back4app para consejos de rendimiento, análisis de registros o análisis en tiempo real prueba tutoriales adicionales sobre aplicaciones de chat, integración de iot o expansiones de comercio electrónico al aprovechar back4app, obtienes una plataforma de código abierto que es una gran opción para reducir la complejidad, almacenar datos fácilmente e incorporar funcionalidades en tiempo real en tu aplicación ios implementar estos pasos te libera para trabajar en el diseño, flujos de usuario o lógica de negocio, creando un robusto backend para tu aplicación ios en poco tiempo