Quickstarters
Feature Overview
How to Build a Backend for tvOS?
37 min
introducción en este tutorial, aprenderás cómo construir un backend para tvos aplicaciones utilizando back4app cubrirá 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 y escalable que se comunique sin problemas con tu apple tv aplicación construida con el sdk de parse swift verás cómo el entorno simplificado de back4app y la configuración rápida reducen drásticamente el tiempo 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 trabajos en la nube e integraciones de webhook al final de este tutorial, estarás preparado para mejorar esta estructura fundamental en una aplicación de tvos lista para producción o incluir fácilmente lógica personalizada y apis de terceros esta guía también ayudará a mantener una alta calidad de experiencia de usuario en apple tv , aprovechando tu proyecto de xcode y el conocimiento existente de desarrollo de ios 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 xcode (última versión estable) instalado construirás tu aplicación de tvos con swift o swiftui asegúrate de tener la versión más reciente de xcode desde la mac app store parse swift sdk configura el parse swift sdk https //github com/netreconlab/parse swift para conectar tu aplicación de tvos familiaridad con swift y conceptos básicos de desarrollo de ios/tvos si eres nuevo en apple tv, revisa la documentación de apple tvos https //developer apple com/tvos/ o un tutorial para principiantes primero asegúrate de tener todos estos requisitos previos en su lugar antes de comenzar tener tu proyecto de back4app listo y un proyecto de xcode para tvos configurado te ayudará a seguir más fácilmente paso 1 – crear un nuevo proyecto en back4app y conectar crear un nuevo proyecto el primer paso para construir tu backend de la app de tvos en back4app es crear un nuevo proyecto si aún no lo has hecho, sigue estos pasos inicia sesión en tu cuenta de back4app haz clic en el botón “nueva app” en tu panel de control de back4app dale un nombre a tu app (por ejemplo, “tvos backend tutorial”) una vez creado, verás el proyecto listado en tu panel de control de back4app este nuevo proyecto de back4app es el núcleo de todas las configuraciones de backend cubiertas en este tutorial conectar el sdk de parse swift back4app aprovecha parse para manejar el almacenamiento de datos, la autenticación de usuarios, características en tiempo real y más para conectar tu tvos app a back4app, instala y configura el sdk de parse swift en tu xcode project recupera tus claves de parse en tu panel de back4app, ve a “configuración de la aplicación” o “seguridad y claves” para encontrar tu application id y client key también verás la parse server url —comúnmente https //parseapi back4app com instala el sdk de parse swift en tu proyecto de tvos gestor de paquetes de swift (recomendado) en xcode, selecciona archivo → agregar paquetes ingresa la url de github de parse swift https //github com/netreconlab/parse swift git elige la versión apropiada o la rama principal cocoapods si prefieres cocoapods, agrega lo siguiente a tu podfile pod 'parseswiftog' luego ejecuta pod install inicializa parse en tu appdelegate o @main struct import parseswift import swiftui @main struct mytvosapp app { init() { task { do { try await parseswift initialize( applicationid "your app id", clientkey "your client key", serverurl url(string "https //parseapi back4app com")! ) } catch { print("error initializing parse \\\\(error)") } } } var body some scene { windowgroup { contentview() } } } esto asegura que tu tvos app esté construida para comunicarse con el backend de back4app, permitiéndote almacenar datos, ejecutar consultas, autenticar usuarios y más paso 2 – configurando la base de datos creando un modelo de datos con tu tvos app ahora conectada a back4app, puedes crear y gestionar datos en parse swift, defines parseobject structs struct gamescore parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom fields var score int? var playername string? } también puedes definir clases manualmente en tu panel de back4app ve a “base de datos” en la consola de back4app crea una nueva clase (por ejemplo, “gamescore”) agrega columnas relevantes (puntuación, nombredeljugador, etc ) creando un modelo de datos usando el agente de ia el agente de ia de back4app puede diseñar automáticamente tu esquema abre el agente de ia en tu panel de back4app describe tu modelo (por ejemplo, “crea una clase todo con un campo de título y iscompleted”) aplica y deja que el agente de ia genere el esquema lectura y escritura de datos usando sdk func savescore() async { var gamescore = gamescore() gamescore score = 1337 gamescore playername = "tvos fan" do { try await gamescore save() print("score saved successfully ") } catch { print("error saving score \\\\(error)") } } func fetchscores() async { let query = gamescore query() do { let results = try await query find() print("fetched scores \\\\(results)") } catch { print("error fetching scores \\\\(error)") } } lectura y escritura de datos usando rest api 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 '{"score" 9000, "playername" "applefan"}' \\ https //parseapi back4app com/classes/gamescore lectura y escritura de datos usando graphql api mutation { creategamescore(input { fields { score 420 playername "swiftie" } }) { gamescore { objectid score playername } } } trabajando con consultas en vivo (opcional) las consultas en vivo pueden proporcionar actualizaciones en tiempo real en tu apple tv interfaz—especialmente útil para aplicaciones de múltiples jugadores o de clasificación habilitar consultas en vivo en la configuración del servidor de tu aplicación en back4app inicializar una suscripción let subscription = gamescore query("score" > 1000) subscribecallback { event in switch event { case created(let score) print("new high score created \\\\(score)") case updated(let score) print("high score updated \\\\(score)") case deleted(let score) print("high score removed \\\\(score)") default break } } paso 3 – aplicando seguridad con acls y clps descripción general back4app asegura tus datos con acls (listas de control de acceso) y clps (permisos a nivel de clase) úsalos para definir reglas de lectura/escritura a nivel de objeto o clase permisos a nivel de clase ve a la base de datos , elige una clase (por ejemplo, gamescore) haz clic en “seguridad” o “permisos a nivel de clase” establece quién puede leer, escribir o eliminar (por ejemplo, solo usuarios autenticados) acls en código var gamescore = gamescore() gamescore score = 500 // restrict read/write to only the current user var acl = parseacl() if let user = try? await user current() { acl setreadaccess(user user, value true) acl setwriteaccess(user user, value true) } gamescore acl = acl paso 4 – escribiendo funciones de código en la nube ¿por qué código en la nube? el código en la nube te permite descargar lógica crítica de tu cliente a código seguro del lado del servidor esto es excelente para reglas de negocio, validaciones de datos o integraciones de terceros sin exponer secretos en tu aplicación de tvos función de ejemplo en tu main js parse cloud define("awardbonus", async (request) => { const { objectid, bonus } = request params; const query = new parse query("gamescore"); const gamescore = await query get(objectid, { usemasterkey true }); gamescore increment("score", bonus); await gamescore save(null, { usemasterkey true }); return gamescore; }); despliegue back4app cli b4a configure accountkey b4a deploy o usa el back4app dashboard → cloud code → functions → main js }]},{ llamando desde swift import parseswift func awardbonusscore(objectid string, bonus int) async { do { let result = try await parsecloud callfunction("awardbonus", with \[ "objectid" objectid, "bonus" bonus ]) print("puntuación actualizada \\\\(result)") } catch { print("error al otorgar bonificación \\\\(error)") } } módulos npm dentro de tu package json , agrega dependencias { "dependencies" { "axios" "^0 27 0" } } luego requieres o importas en main js para usar en cloud code paso 5 – configurando la autenticación autenticación de usuario en back4app las aplicaciones de tvos a menudo necesitan sincronización de datos de usuario o inicio de sesión el parseuser de parse proporciona registro seguro, inicio de sesión, sesiones y acceso basado en roles struct user parseuser { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // esencial var username string? var email string? var emailverified bool? var password string? var authdata \[string \[string string]?]? } registrarse / iniciar sesión func signupuser() async { var newuser = user() newuser username = "tvuser" newuser password = "secreto" newuser email = "user\@example com" do { try await newuser signup() print("registro exitoso ") } catch { print("error al registrarse \\\\(error)") } } func loginuser() async { do { let loggedin = try await user login(username "tvuser", password "secreto") print("conectado como \\\\(loggedin username ?? "")") } catch { print("error de inicio de sesión \\\\(error)") } } inicio de sesión social configurar inicio de sesión con facebook o apple https //www back4app com/docs/platform/sign in with apple luego vincula cuentas try await user link(with apple(idtoken "token", rawnonce "nonce")) paso 6 – manejo del almacenamiento de archivos configuración del almacenamiento de archivos sube imágenes de usuario, repeticiones de juegos o activos de la aplicación usando parsefile let filedata = data( ) // e g image bytes let file = parsefile(name "preview\ png", data filedata) do { let savedfile = try await file save() print("file uploaded \\\\(savedfile url)") } catch { print("error uploading file \\\\(error)") } ejemplo adjunta archivos a objetos struct gamemedia parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var screenshot parsefile? } consideraciones de seguridad usa clps o acls para asegurar las referencias de archivos la url directa de un archivo puede ser accesible públicamente a menos que habilites seguridad de archivos https //www back4app com/docs/security/parse security paso 7 – verificación de correo electrónico y restablecimiento de contraseña descripción general la verificación de correo electrónico ayuda a confirmar la propiedad del usuario sobre las cuentas de correo electrónico el restablecimiento de contraseña ofrece una forma segura y fácil de usar para recuperar el acceso a la cuenta configuración del panel de control de back4app en tu aplicación → configuraciones de la aplicación → correo electrónico habilitar verificación de correo electrónico o restablecimiento de contraseña personalizar plantillas de correo electrónico implementación de código func requestpasswordreset(for email string) async { do { try await user passwordreset(email email) print("password reset link sent ") } catch { print("error requesting password reset \\\\(error)") } } paso 8 – programación de tareas con trabajos en la nube trabajos en la nube automatiza tareas recurrentes, como limpiar datos antiguos o enviar actualizaciones mensuales parse cloud job("cleanupoldscores", async (request) => { const now = new date(); const thirtydaysago = new date(now 30 24 60 60 1000); const query = new parse query("gamescore"); query lessthan("createdat", thirtydaysago); const oldscores = await query find({ usemasterkey true }); await parse object destroyall(oldscores, { usemasterkey true }); return `deleted ${oldscores length} old scores `; }); en el panel de control de back4app → configuración de la aplicación → configuración del servidor → trabajos en segundo plano , programa “cleanupoldscores” para que se ejecute diariamente paso 9 – integración de webhooks definición webhooks permiten que tu aplicación back4app envíe eventos a servicios externos esto podría ser enviar notificaciones a slack, actualizaciones de pagos a stripe, o datos analíticos a tu servidor configuración en tu panel de control de back4app, ve a más → webhooks → agregar webhook especifica un endpoint (como https //myserver com/webhook endpoint ) y los disparadores (actualizaciones de objetos, nuevos registros, etc ) ejemplo notificar a slack cuando se crea un nuevo puntaje alto parse cloud aftersave("gamescore", async (request) => { const score = request object get("score"); await sendtoslack(`a new high score of ${score} was posted!`); }); paso 10 – explorando el panel de administración de back4app dónde encontrarlo la aplicación de administración de back4app es un panel fácil de usar, centrado en modelos para gestionar datos, realizar crud o editar clases—sin necesidad de consultas directas a la base de datos habilítalo a través de panel de la aplicación → más → aplicación de administración características una vez habilitado, puedes invitar a miembros del equipo o clientes a gestionar datos, revisar registros o ajustar notificaciones push—esencialmente dándoles un portal directo al backend de tu aplicación tvos conclusión al seguir este tutorial completo, has creado un backend seguro para tu app de tvos utilizando back4app configurado una base de datos con clases, tipos de datos y relaciones configurado consultas en tiempo real para reflejar cambios inmediatos aplicado seguridad a través de acls y clps implementado cloud code para lógica de negocio personalizada e integraciones habilitado autenticación con verificación de correo electrónico y restablecimientos de contraseña manejado cargas de archivos con controles de seguridad opcionales programado cloud jobs para tareas rutinarias usado webhooks para integrarse con servicios externos explorado el panel de administración para gestionar y monitorear datos ahora estás bien equipado para construir experiencias ricas y de alta calidad en apple tv tu app está construida sobre una base sólida—¡disfruta convirtiendo tus ideas de app de tvos en realidad! próximos pasos refina tu interfaz de usuario de tvos incorpora navegación basada en el enfoque, flujos de usuario en pantallas grandes, y las mejores prácticas de la app store mejora la seguridad agrega acl basadas en roles, autenticación multifactor o cifrado avanzado profundiza tus habilidades explora características más avanzadas de parse swift como almacenamiento en caché fuera de línea o análisis personalizados consulta la documentación oficial documentos de back4app https //www back4app com/docs y documentos de apple tvos https //developer apple com/tvos/ para un conocimiento más profundo monetización considera suscripciones o pago por visión para expandir el potencial de tu negocio de streaming con los fundamentos de esta guía, puedes seguir innovando e integrando nuevas características ¡buena suerte llevando tu aplicación de tvos al siguiente nivel!