Quickstarters
Feature Overview
How to Build a Backend for WatchOS?
40 min
introducción en este tutorial, descubrirás cómo construir un backend para watchos aplicaciones usando back4app ya sea que estés creando una extensión de watchkit para tu aplicación de iphone o diseñando una experiencia independiente de apple watch , back4app simplifica tu trabajo al proporcionar herramientas esenciales integrarás características como una base de datos segura, funciones de cloud code, consultas en tiempo real (live queries) y autenticación de usuarios, todo sin gestionar tus propios servidores también verás cómo la rutina de inicio rápido de back4app y su entorno fácil de usar te permiten concentrarte en la funcionalidad de tus aplicaciones de watchos , en lugar de configurar servidores a lo largo del camino, aprenderás a manejar tareas como programar trabajos, configurar webhooks y configurar notificaciones push al final, tendrás una base sólida para extender tus aplicaciones de reloj o aplicaciones de ios para necesidades a nivel de producción, todo mientras ofreces sincronización de datos sin problemas (a través de una conexión a internet ) entre la aplicación de watchkit y tu backend requisitos previos 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 watchos/xcode deberías tener xcode instalado con el sdk de watchos puedes ejecutar y construir tu extensión de watchkit en un apple watch real o en un simulador sdk de parse swift usa swift package manager https //github com/netreconlab/parse swift para instalar y configurar el sdk para tus watchos o aplicaciones combinadas de ios familiaridad con swift, xcode y el ecosistema de desarrollo de apple documentación para desarrolladores de apple https //developer apple com/documentation/ si eres nuevo en las plataformas de apple, dedica un tiempo a explorar la documentación de watchos e ios antes de comenzar asegúrate de cumplir con estos requisitos previos antes de comenzar tener tu proyecto de back4app configurado y tu entorno local de watchos listo te ayudará a seguir sin problemas paso 1 – crear un nuevo proyecto en back4app y conectar por qué necesitas un proyecto de back4app un nuevo proyecto de back4app es esencial para almacenar todos los datos y ejecutar código en la nube para tus aplicaciones de watchos esto sirve como la base de tu backend crea tu proyecto inicia sesión en back4app haz clic en “nueva app” en el panel de control nombra tu app (por ejemplo, “watchos backend tutorial”) instala parse swift sdk agrega la dependencia de parse swift en tu package swift o usando archivo → paquetes swift → agregar dependencia de paquete en xcode proporciona la url dependencies \[ package(url "https //github com/netreconlab/parse swift git", from "5 0 0") ] inicializa parse en tu código de watchos o compartido en el código de inicio de tu aplicación watchkit o en un archivo compartido accesible tanto por tu watchos como por tu iphone app , inicializa parse @main struct mywatchapp 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() } } } en este punto, tu watchos aplicación puede comunicarse con el backend de back4app ya sea una apple watch aplicación independiente o una watchkit extension emparejada con una iphone app , todos los datos del backend fluyen a través del sdk de parse swift paso 2 – configuración de la base de datos 1\ creando un modelo de datos back4app utiliza la característica de esquema en escritura de parse server puedes definir tablas (clases) en la back4app database sección o dejar que se creen automáticamente cuando los objetos se guardan por primera vez por ejemplo, si tus watch apps rastrean datos de salud, podrías tener una clase “healthmetrics” con campos como heartrate, steps, o workouttype 2\ creando un modelo de datos usando el agente de ia el agente de ia de back4app te permite describir tu esquema en lenguaje sencillo abre el agente de ia en el panel de tu aplicación proporciona detalles como “por favor, configura una clase de métricas de observación con campos dailysteps (número), heartrate (número) ” la ia creará el esquema automáticamente para ti 3\ leyendo y escribiendo datos usando el sdk a continuación se muestra un ejemplo de guardar y consultar datos desde una aplicación watchos supongamos que tenemos una healthmetrics estructura import parseswift struct healthmetrics parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var dailysteps int? var heartrate int? } // saving data func savemetrics(steps int, heart int) async { var metrics = healthmetrics() metrics dailysteps = steps metrics heartrate = heart do { let saved = try await metrics save() print("saved metrics \\(saved)") } catch { print("error saving \\(error)") } } // querying data func fetchlatestmetrics() async { let query = healthmetrics query() do { let results = try await query find() print("fetched \\(results count) items") } catch { print("error fetching \\(error)") } } 4\ lectura y escritura de datos utilizando rest api si es necesario, tus watchos o ios apps también pueden enviar solicitudes rest 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 '{"dailysteps" 8000, "heartrate" 75}' \\ https //parseapi back4app com/classes/healthmetrics 5\ lectura y escritura de datos utilizando graphql back4app también proporciona un endpoint de graphql por ejemplo mutation { createhealthmetrics(input { fields { dailysteps 7500 heartrate 70 } }) { healthmetrics { objectid dailysteps heartrate } } } 6\ trabajando con consultas en vivo (opcional) si necesitas actualizaciones de datos en tiempo real en tu apple watch , habilita las consultas en vivo activa live queries en server settings en back4app configura la url de la consulta en vivo en tu código de watchos parselivequery configure(url url(string "wss\ //your subdomain b4a io")!) luego suscríbete a los cambios func subscribemetricsupdates() async throws { let subscription = healthmetrics query() subscribe() for try await event in subscription { switch event { case created(let newdata) print("new data \\(newdata)") case updated(let updateddata) print("updated \\(updateddata)") default break } } } paso 3 – aplicando seguridad con acls y clps 1\ breve descripción back4app permite listas de control de acceso (acls) y permisos a nivel de clase (clps) para asegurar tu base de datos por ejemplo, podrías restringir ciertas métricas al usuario que las generó o permitir acceso de lectura solo a cuentas autenticadas 2\ configuración paso a paso permisos a nivel de clase ve a base de datos → clase → seguridad para definir los valores predeterminados (por ejemplo, solo lectura para todos, escritura para propietarios) acls en código puedes agregar acls a cada objeto en tu watchkit o código compartido por ejemplo if let user = user current { var acl = parseacl() acl setreadaccess(user user, value true) acl setwriteaccess(user user, value true) var metrics = healthmetrics() metrics acl = acl } esto asegura que solo el usuario que ha iniciado sesión pueda ver o modificar los objetos healthmetrics que crean paso 4 – escribiendo funciones de cloud code 1\ por qué cloud code cloud code te ayuda a ejecutar operaciones complejas o confidenciales del lado del servidor, como validación de datos, llamadas a api externas o registro esta configuración es útil para minimizar la carga de trabajo del dispositivo watchos y preservar la vida de la batería en el apple watch 2\ función de ejemplo en tu main js parse cloud define('processmetrics', async (request) => { const { dailysteps, heartrate } = request params; if (!dailysteps || !heartrate) { throw 'missing parameters '; } // example simple calculation return dailysteps heartrate; }); 3\ despliegue usa el back4app cli https //www back4app com/docs/local development/parse cli para desplegar b4a deploy 4\ instalando módulos npm si necesitas bibliotecas externas en tu cloud code agrega dependencias en package json (dentro de tu carpeta de cloud code) usa require('your lib') en main js paso 5 – configurando la autenticación 1\ habilitar la autenticación de usuarios por defecto, la clase usuario está lista en back4app asegúrate de que “habilitar permisos a nivel de clase” esté configurado correctamente para los objetos de usuario 2\ ejemplos de código en parse swift, puedes registrar un usuario desde tu código de watchos struct user parseuser { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var username string? var email string? var emailverified bool? var password string? var authdata \[string \[string string]?]? } func signupnewuser(name string, pass string, mail string) async { var newuser = user() newuser username = name newuser password = pass newuser email = mail do { let signedup = try await newuser signup() print("sign up successful \\(signedup)") } catch { print("error signing up \\(error)") } } 3\ inicio de sesión social si planeas integrar el inicio de sesión de apple, google o facebook en tu aplicación de watchos o iphone, puedes hacerlo con las funciones relevantes de inicio de sesión social de parse swift consulta documentación de back4app https //www back4app com/docs/platform/sign in with apple para más detalles paso 6 – manejo del almacenamiento de archivos 1\ configurando el almacenamiento de archivos si tus aplicaciones de reloj necesitan subir imágenes, registros o archivos de datos pequeños, puedes confiar en parsefile func uploadfile(data data, filename string) async { let file = parsefile(name filename, data data) do { let savedfile = try await file save() print("uploaded file \\(savedfile url ?? "")") } catch { print("error uploading file \\(error)") } } 2\ ejemplo puedes almacenar imágenes de entrenamientos o instantáneas de progreso diario let snapshotdata = // some image data from watch screenshot task { await uploadfile(data snapshotdata, filename "workout jpg") } 3\ consideraciones de seguridad revisa tus acls de archivo por defecto, las url de los archivos son accesibles si alguien obtiene el enlace directo puedes asegurar o controlar el acceso a los archivos a través de la configuración de archivos de tu servidor de parse paso 7 – verificación de correo electrónico y restablecimiento de contraseña 1\ descripción general los usuarios de apple watch pueden no gestionar siempre los inicios de sesión directamente en el reloj, pero habilitar la verificación de correo electrónico ayuda a mantener sus datos seguros 2\ configuración del panel de control de back4app ve a configuraciones de la aplicación → correo electrónico activa verificación de correo electrónico personaliza las plantillas según sea necesario 3\ código/implementación para restablecimientos de contraseña do { try await user requestpasswordreset(email "example\@domain com") } catch { print("error requesting password reset \\(error)") } paso 8 – programación de tareas con cloud jobs 1\ lo que hacen los cloud jobs los cloud jobs te permiten automatizar tareas en segundo plano como rotar datos antiguos o generar informes de uso para tus análisis de watchos 2\ ejemplo en main js parse cloud job('cleanupmetrics', async (request) => { const query = new parse query('healthmetrics'); // for example, remove records older than 7 days const now = new date(); const cutoff = new date(now 7 24 60 60 1000); query lessthan('createdat', cutoff); const oldmetrics = await query find({ usemasterkey true }); await parse object destroyall(oldmetrics, { usemasterkey true }); return `deleted ${oldmetrics length} old records `; }); despliega tu código ve a configuraciones de la app → configuraciones del servidor → tareas en segundo plano y prográmalo diariamente paso 9 – integración de webhooks 1\ definición los webhooks notifican a servicios externos cuando ocurren ciertos eventos en tu aplicación por ejemplo, podrías querer enviar un ping a un canal de slack cada vez que se registre una nueva métrica 2\ configuración en el panel de control de back4app, ve a más → webhooks agrega un webhook con un endpoint (como una url de slack) elige el evento (por ejemplo, “nuevo registro en healthmetrics”) 3\ ejemplo cada vez que un usuario añade una nueva entrada de dailysteps, tu canal de slack es notificado también puedes definir lógica más compleja en cloud code para enviar cargas personalizadas a tus servicios externos paso 10 – explorando el panel de administración de back4app 1\ dónde encontrarlo el panel de administración es accesible a través de tu consola de back4app bajo más → aplicación de administración actívalo y crea un usuario administrador para la gestión de datos basada en la web si necesitas una interfaz sencilla para partes interesadas no técnicas 2\ características ver y editar datos gestionar registros y trabajos en la nube rastrear análisis o notificaciones push esta es una forma fácil de colaborar en datos sin necesidad de acceso directo a la base de datos o al código conclusión a lo largo de esta guía, aprendiste cómo construir un backend para watchos utilizando las potentes características de back4app configuraste un esquema de base de datos seguro, escribiste código en la nube, manejaste consultas en tiempo real e implementaste autenticación de usuarios ahora tu aplicación watchkit puede almacenar y sincronizar datos con un mínimo de complicaciones próximos pasos perfecciona tus aplicaciones de reloj integrando funciones avanzadas en la nube para notificaciones personalizadas o transformaciones de datos explora funcionalidades adicionales de aplicaciones ios , como sincronización en segundo plano y estrategias de almacenamiento en caché para tu apple watch lee la documentación oficial de back4app https //www back4app com/docs/ para más información sobre seguridad avanzada, análisis y rendimiento optimiza para la app store para distribuir tu extensión de watchos o aplicación de reloj independiente al expandir tu backend, puedes ofrecer robustas aplicaciones watchos que funcionan sin problemas incluso con una conexión a internet ¡sigue construyendo y disfruta del poder de back4app para tus experiencias en apple watch!