Quickstarters
Feature Overview
¿Cómo construir un backend para Swift?
44 min
introducción en este tutorial, aprenderás a construir un backend completo para una aplicación de swift 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, consultas en tiempo real (live queries) y más, para crear un backend seguro, escalable y robusto que se comunique sin problemas con tu aplicación cliente basada en swift al aprovechar la configuración rápida y el entorno intuitivo de back4app, reducirás drásticamente el tiempo y el esfuerzo requeridos 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 cruciales, 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 este servicio backend fundamental en una aplicación lista para producción o incorporar fácilmente lógica personalizada y apis de terceros según sea necesario verás cómo trabajar con una plataforma baas puede transformar el desarrollo backend en una experiencia más fluida, especialmente al crear un backend ágil o cualquier otra aplicación backend ¡comencemos! 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 un entorno de desarrollo swift puedes usar xcode https //developer apple com/xcode/ como tu ide para crear aplicaciones ios o macos usando swift asegúrate de tener instalada una versión estable reciente de xcode en tu máquina familiaridad con el lenguaje de programación swift si eres nuevo en swift, revisa la documentación de swift https //swift org/documentation/ o un tutorial para principiantes antes de comenzar parse swift sdk si estás usando cocoapods, agrega pod 'parseswiftog' a tu podfile o si estás usando swift package manager, agrega package(url "https //github com/netreconlab/parse swift git", from "5 0 0") a tus dependencias lee más en la documentación de parse swift https //docs parseplatform org/parse swift/guide/ 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 swift listo te ayudará a seguir más fácilmente paso 1 – crear un nuevo proyecto en back4app y conectar el primer paso para construir tu backend de swift en back4app es crear un nuevo proyecto este proyecto es la base para todas las configuraciones de backend discutidas en este tutorial swift puede conectarse sin problemas a tu nuevo backend utilizando el sdk de parse swift veamos cómo crear un nuevo proyecto inicia sesión en tu cuenta de back4app haz clic en el botón “nueva app” en tu panel de control de back4app nombra tu app (por ejemplo, “swift backend tutorial”) después de la creación, verás la nueva app listada en tu panel de control aquí es donde configurarás tu base de datos, funciones en la nube y otros ajustes cruciales para tu app de backend conectar el sdk de parse swift back4app está impulsado por la plataforma parse, que proporciona la base para tu base de datos, actualizaciones en tiempo real, autenticación y más tu aplicación swift puede conectarse a back4app instalando e inicializando el sdk de parse para swift recupera tus claves de parse en tu panel de back4app, ve a “configuración de la app” o “seguridad y claves” para encontrar tu id de aplicación y clave de cliente también verás tu url del servidor parse (a menudo https //parseapi back4app com ) instala el sdk de parse para swift gestor de paquetes swift (recomendado) dependencies \[ package(url "https //github com/netreconlab/parse swift git", from "5 0 0") ] cocoapods pod 'parseswiftog' inicializa parse en tu app puedes hacer esto en el punto de entrada principal de tu proyecto swift (por ejemplo, appdelegate swift o la estructura @main de swiftui) por ejemplo import swiftui import parseswift @main struct myapp app { init() { // replace placeholders with your back4app credentials parseswift initialize( applicationid "your application id", clientkey "your client key", serverurl url(string "https //parseapi back4app com")! ) } var body some scene { windowgroup { contentview() } } } con esta configuración, tu cliente swift ahora puede enviar solicitudes seguras a back4app has establecido una conexión robusta que simplifica las operaciones de datos sin requerir llamadas manuales rest o graphql (aunque aún puedes usarlas si lo deseas) paso 2 – configuración de la base de datos en este paso, configurarás tu base de datos backend en back4app y verás cómo gestionar datos desde tu código swift back4app utiliza el modelo de datos parse, lo que te permite almacenar objetos en estructuras similares a clases swift puede interactuar fácilmente con estas clases a través del sdk de parse swift creando un modelo de datos navega a la sección “base de datos” en tu panel de control de back4app crea una nueva clase (por ejemplo, “todo”) agrega columnas para los datos que necesitas, como “title” (string) y “iscompleted” (boolean) también puedes permitir que el sdk de parse swift cree estas columnas automáticamente la primera vez que guardes un objeto de cualquier manera, tu esquema debe coincidir con los datos que almacenas para que tu aplicación pueda manejarlos sin problemas creando un modelo de datos usando el agente de ia back4app proporciona un agente de ia que puede ayudarte a diseñar tu modelo de datos abre el agente de ia desde el panel de control o menú de tu aplicación describe tu modelo de datos en lenguaje natural por ejemplo “por favor, crea un nuevo proyecto swift con un esquema de clase todo ” deja que el agente de ia cree el esquema por ti automáticamente lectura y escritura de datos sdk de parse swift usando el sdk de parse swift, puedes crear una estructura que cumpla con parseobject para representar tus datos por ejemplo, si tienes una todo clase import parseswift struct todo parseobject { // parseobject protocol properties var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom properties var title string? var iscompleted bool? } crea un objeto todo y guarda var newtodo = todo() newtodo title = "buy groceries" newtodo iscompleted = false task { do { let saved = try await newtodo save() print("saved ", saved) } catch { print("error saving todo ", error) } } consulta todos los elementos todo task { do { let todos = try await todo query() find() print("todos ", todos) } catch { print("error fetching ", error) } } lectura y escritura de datos api rest si prefieres solicitudes http estándar, puedes usar la api rest por ejemplo, para crear un nuevo todo 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 '{"title" "walk the dog", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo lectura y escritura de datos api graphql graphql también es compatible aquí hay una muestra de mutación para crear un todo mutation { createtodo(input { fields { title "finish homework" iscompleted false } }) { todo { objectid title iscompleted } } } trabajando con consultas en vivo si tu aplicación de swift necesita actualizaciones en tiempo real, back4app soporta consultas en vivo para ios habilitar consultas en vivo en la configuración del servidor de tu aplicación conectar especificando parse livequeryserverurl en tu aplicación parse configuration serverurl = url(string "https //parseapi back4app com")! parse configuration livequeryserverurl = url(string "wss\ //your subdomain b4a io")! suscribirse a actualizaciones en vivo let subscription = todo query() subscribecallback { subscriptionstate in switch subscriptionstate { case subscribed(let querysubscription) print("subscribed to todo changes!") default break } } ahora, cada vez que se crea, actualiza o elimina un todo, recibirás actualizaciones en tiempo real esto es especialmente útil para características colaborativas o sensibles al tiempo en el desarrollo de tu backend en swift paso 3 – aplicando seguridad con acls y clps ¿qué son acls y clps? back4app utiliza listas de control de acceso (acls) y permisos a nivel de clase (clps) para asegurar tus datos las acls te permiten definir permisos por objeto, mientras que los clps establecen reglas de acceso predeterminadas para toda una clase permisos a nivel de clase en el panel de control de back4app ve a base de datos y selecciona una clase (por ejemplo, “todo”) abre permisos a nivel de clase configura restricciones en lectura, escritura o acceso público listas de control de acceso (acls) al crear o actualizar un parseobject en swift, puedes establecer un acl por ejemplo var acl = parseacl() // only let the current user read and write acl setreadaccess(userid "current user id", value true) acl setwriteaccess(userid "current user id", value true) var todo = todo() todo acl = acl esto asegura que solo el usuario especificado pueda leer o modificar ese objeto combinar acls y clps forma un modelo de seguridad robusto y en capas para los datos de tu aplicación paso 4 – escribiendo funciones de cloud code ¿por qué cloud code? cloud code te permite ejecutar lógica de swift del lado del servidor (o javascript si usas el estilo original de cloud code de parse) sin exponer secretos al cliente es perfecto para validaciones, disparadores, tareas programadas y más ejemplo de función aquí hay un ejemplo basado en javascript, pero también puedes trabajar en typescript o llamar desde swift en tu cloud code de back4app, crea main js parse cloud define("gettaskscount", async (request) => { const query = new parse query("todo") const count = await query count({ usemasterkey true }) return count }) parse cloud beforesave("todo", async (request) => { const todo = request object if (!todo get("title")) { throw "cannot save a todo without a title " } }) es posible que desees instalar módulos npm incluyéndolos en tu package json archivo, y luego llamándolos en main js una vez desplegado, puedes invocar estas funciones desde tu código swift usando callfunction despliegue despliega tu cloud code a través de b4a deploy también puedes desplegar a través del panel de back4app yendo a cloud code > functions pega tu código en el editor en línea y haz clic en deploy llamando desde swift task { do { let result = try await parsecloud callfunction("gettaskscount", with \[string any]\()) print("count ", result) } catch { print("error calling cloud function ", error) } } paso 5 – configurando la autenticación habilitando la autenticación de usuarios en el tablero , verás una clase predeterminada user para cuentas de usuario activa cualquier proveedor de autenticación adicional (apple, facebook, google, etc ) en la configuración de autenticación de tu aplicación si es necesario registrarse e iniciar sesión (swift) struct user parseuser { var objectid string? var username string? var email string? var password string? var emailverified bool? var createdat date? var updatedat date? var acl parseacl? var originaldata data? } // sign up task { do { var newuser = user() newuser username = "alice" newuser password = "p\@ssword" let signedup = try await newuser signup() print("user signed up ", signedup) } catch { print("error signing up ", error) } } // log in task { do { let user = try await user login(username "alice", password "p\@ssword") print("logged in user ", user) } catch { print("error logging in ", error) } } inicio de sesión social back4app soporta inicio de sesión oauth con google, apple y facebook configura estos proveedores en tu página de configuración de autenticación , y utiliza el código de integración relevante de parse swift en tu aplicación swift (por ejemplo, parsefacebookutils o parseappleutils ) para manejar los flujos de autenticación para más detalles, consulta la documentación de inicio de sesión social https //www back4app com/docs/platform/sign in with apple paso 6 – manejo del almacenamiento de archivos configurando el almacenamiento de archivos puedes almacenar imágenes, videos o cualquier archivo en back4app en swift, tienes parsefile let imagedata = data(/ your image bytes /) let parsefile = parsefile(name "photo jpg", data imagedata) task { do { let savedfile = try await parsefile save() print("file saved ", savedfile url ?? "no url") } catch { print("error uploading file ", error) } } luego puedes adjuntar este archivo a un parseobject y guardarlo recupera la url del archivo para mostrarla o descargarla en otro lugar consideraciones de seguridad para restringir el acceso a los archivos, puedes usar la configuración de archivos de parse server https //www back4app com/docs/platform/file storage por ejemplo, podrías permitir que solo los usuarios autenticados suban archivos o especificar permisos de lectura/escritura en tu código swift paso 7 – verificación de correo electrónico y restablecimiento de contraseña ¿por qué correos electrónicos de verificación y restablecimiento? validar el correo electrónico de un usuario asegura un buzón real y activo el restablecimiento de contraseña ayuda a tus usuarios a recuperar de forma segura el acceso a la cuenta si olvidan sus credenciales configurando en back4app ve a configuración de correo electrónico y habilita verificación de correo electrónico edita tus plantillas de correo electrónico tanto para la verificación como para los flujos de restablecimiento activando un restablecimiento de contraseña desde swift task { do { try await user passwordreset(email "alice\@example com") print("password reset email sent!") } catch { print("error requesting password reset ", error) } } paso 8 – programando tareas con trabajos en la nube trabajos en la nube puedes programar tareas del lado del servidor en back4app por ejemplo, limpiar datos antiguos o enviar informes semanales define un trabajo en tu código en la nube y prográmalo a través del panel de control de back4app parse cloud job("cleanupoldtodos", async (request) => { const now = new date() // example logic remove todos older than 30 days // use master key for privileged operations }) luego, en la configuración del servidor de back4app > trabajos en segundo plano , puedes programarlo para que se ejecute diariamente o en cualquier intervalo paso 9 – integrando webhooks ¿qué son los webhooks? los webhooks permiten que tu aplicación envíe automáticamente datos a servicios externos cada vez que ocurren ciertos eventos esto es perfecto para integrarse con slack, stripe u otras api de terceros configuración en tu panel de back4app, ve a más > webhooks agrega un endpoint de webhook (por ejemplo, https //example com/webhook ) elige desencadenadores (por ejemplo, creación de objeto en “todo”) para lógica personalizada, también puedes emitir solicitudes a url externas en los desencadenadores de cloud code paso 10 – explorando el panel de administración de back4app ¿qué es el panel de administración? el back4app admin app es una interfaz de punto y clic para personal no técnico o de soporte proporciona una gui simple para realizar operaciones crud en sus datos, ideal para gestionar datos fuera de su entorno de desarrollo habilitando la aplicación de administración ir al panel de la aplicación > más > aplicación de administración habilitar la aplicación de administración y elegir un subdominio crear un usuario administrador una vez activada, cualquier persona con las credenciales adecuadas puede ver y editar sus datos desde una interfaz web fácil de usar, sin necesidad de código conclusión al seguir este tutorial completo, has aprendido cómo construir un backend para swift utilizando back4app específicamente, has creado un backend seguro para tu aplicación swift configurado una base de datos con esquemas de clase y relaciones de datos trabajado con consultas en tiempo real (consultas en vivo) para actualizaciones inmediatas establecido una seguridad robusta con acls y clps usado cloud code para ejecutar lógica personalizada en el lado del servidor implementado autenticación de usuario con verificación y restablecimientos de contraseña manejado cargas de archivos de manera segura programado tareas automatizadas con cloud jobs aprendido sobre webhooks para integrar apis externas explorado el panel de administración para la gestión directa de datos ahora tienes un servicio backend funcional y escalable para tu aplicación swift, uno que puede ser fácilmente ampliado para manejar características más complejas, conectarse a servicios de terceros o adaptarse a un tráfico de usuarios más pesado también has visto de primera mano cómo la combinación de las características baas de back4app y la sintaxis moderna de swift puede acelerar el desarrollo del backend próximos pasos construir una aplicación swift lista para producción desarrollando tu ui/ux integrar características avanzadas como autenticación especializada (basada en roles, sso), o lógica adicional de cloud code para reglas específicas de dominio consulta la documentación oficial de back4app para profundizar en registros, análisis o seguridad avanzada explora otros tutoriales sobre chat en tiempo real, paneles de iot o aplicaciones basadas en ubicación combina estos con apis externas para resolver desafíos del mundo real ¡así es como construir un backend para swift usando back4app! ¡feliz codificación!