Quickstarters
Feature Overview
Come creare un backend per WatchOS?
40 min
introduzione in questo tutorial, scoprirai come costruire un backend per watchos app utilizzando back4app che tu stia creando un watchkit extension per la tua iphone app o progettando un'esperienza autonoma per apple watch , back4app semplifica il tuo lavoro fornendo strumenti essenziali integrerai funzionalità come un database sicuro, cloud code functions, query in tempo reale (live queries) e autenticazione degli utenti—tutto senza gestire i tuoi server vedrai anche come la rapida routine di avvio di back4app e l'ambiente facile da usare ti permettano di concentrarti sulla funzionalità delle tue watchos apps , piuttosto che sulla configurazione dei server durante il percorso, imparerai a gestire compiti come pianificare lavori, impostare webhook e configurare notifiche push alla fine, avrai una solida base per estendere le tue app per watch o ios applications per esigenze a livello di produzione, il tutto mentre fornisci una sincronizzazione dei dati senza soluzione di continuità (su una connessione internet ) tra l' watchkit app e il tuo backend prerequisiti un account back4app e un nuovo progetto back4app iniziare con back4app https //www back4app com/docs/get started/new parse app se non hai un account, puoi crearne uno gratuitamente segui la guida sopra per preparare il tuo progetto un ambiente di sviluppo watchos/xcode dovresti avere xcode installato con il watchos sdk puoi eseguire e costruire la tua watchkit extension su un vero apple watch o su un simulatore parse swift sdk usa swift package manager https //github com/netreconlab/parse swift per installare e configurare l'sdk per le tue watchos o app ios combinate familiarità con swift, xcode e l'ecosistema di sviluppo di apple documentazione per sviluppatori apple https //developer apple com/documentation/ se sei nuovo sulle piattaforme apple, trascorri del tempo esplorando la documentazione di watchos e ios prima di iniziare assicurati di soddisfare questi requisiti prima di iniziare avere il tuo progetto back4app configurato e il tuo ambiente watchos locale pronto ti aiuterà a seguire senza intoppi passo 1 – creare un nuovo progetto su back4app e connettersi perché hai bisogno di un progetto back4app un nuovo progetto back4app è essenziale per memorizzare tutti i dati e eseguire il codice cloud per le tue app watchos questo serve come base del tuo backend crea il tuo progetto accedi a back4app clicca “nuova app” nella dashboard dai un nome alla tua app (ad esempio, “watchos backend tutorial”) installa parse swift sdk aggiungi la dipendenza parse swift nel tuo package swift o utilizzando file → swift packages → aggiungi dipendenza pacchetto in xcode fornisci l'url dependencies \[ package(url "https //github com/netreconlab/parse swift git", from "5 0 0") ] inizializza parse nel tuo codice watchos o condiviso nel codice di avvio della tua app watchkit o in un file condiviso accessibile sia dalla tua watchos che dalla tua iphone app , inizializza 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() } } } a questo punto, la tua watchos app può comunicare con il backend di back4app che si tratti di un apple watch app indipendente o di un watchkit extension abbinata a un iphone app , tutti i dati del backend fluiscono attraverso il parse swift sdk passo 2 – configurazione del database 1\ creazione di un modello dati back4app utilizza la funzionalità schema on write di parse server puoi definire tabelle (classi) nella sezione back4app database o lasciare che vengano create automaticamente quando gli oggetti vengono salvati per la prima volta ad esempio, se le tue watch apps tracciano i dati sulla salute, potresti avere una classe “healthmetrics” con campi come heartrate, steps o workouttype 2\ creare un modello di dati utilizzando l'agente ai l' agente ai di back4app ti consente di descrivere il tuo schema in linguaggio semplice apri l' agente ai nel tuo dashboard dell'app fornisci dettagli come “per favore, imposta una classe watch metrics con i campi dailysteps (numero), heartrate (numero) ” l'ai creerà automaticamente lo schema per te 3\ leggere e scrivere dati utilizzando l'sdk di seguito è riportato un esempio di salvataggio e interrogazione dei dati da un'app watchos supponiamo di avere una healthmetrics struct 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\ lettura e scrittura dei dati utilizzando rest api se necessario, le tue watchos o ios apps possono anche inviare richieste 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\ lettura e scrittura dei dati utilizzando graphql back4app fornisce anche un endpoint graphql ad esempio mutation { createhealthmetrics(input { fields { dailysteps 7500 heartrate 70 } }) { healthmetrics { objectid dailysteps heartrate } } } 6\ lavorare con le query live (opzionale) se hai bisogno di aggiornamenti dei dati in tempo reale sul tuo apple watch , abilita le query live attiva live queries nelle impostazioni del server in back4app configura l'url della query live nel tuo codice watchos parselivequery configure(url url(string "wss\ //your subdomain b4a io")!) poi iscriviti ai cambiamenti 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 } } } passo 3 – applicare la sicurezza con acl e clp 1\ breve panoramica back4app consente liste di controllo degli accessi (acl) e permessi a livello di classe (clp) per proteggere il tuo database ad esempio, potresti limitare alcune metriche all'utente che le ha generate o consentire l'accesso in lettura solo agli account autenticati 2\ configurazione passo dopo passo permessi a livello di classe vai a database → classe → sicurezza per definire i valori predefiniti (ad es , solo lettura per tutti, scrittura per i proprietari) acl nel codice puoi aggiungere acl a ciascun oggetto nel tuo watchkit o codice condiviso ad esempio 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 } questo assicura che solo l'utente connesso possa visualizzare o modificare gli oggetti healthmetrics che crea passo 4 – scrivere funzioni di cloud code 1\ perché cloud code il cloud code ti aiuta a eseguire operazioni complesse o riservate lato server, come la validazione dei dati, le chiamate api esterne o il logging questa configurazione è utile per ridurre il carico di lavoro sui dispositivi watchos e preservare la durata della batteria sull' apple watch 2\ funzione di esempio nel tuo 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\ distribuzione usa il back4app cli https //www back4app com/docs/local development/parse cli per distribuire b4a deploy 4\ installazione dei moduli npm se hai bisogno di librerie esterne nel tuo cloud code aggiungi dipendenze in package json (all'interno della tua cartella cloud code) usa require('your lib') in main js passo 5 – configurazione dell'autenticazione 1\ abilitare l'autenticazione utente per impostazione predefinita, la user classe è pronta in back4app assicurati che “abilita autorizzazioni a livello di classe” sia impostato correttamente per gli oggetti utente 2\ esempi di codice in parse swift, puoi registrare un utente dal tuo codice 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\ accesso sociale se prevedi di integrare l'accesso apple, google o facebook nella tua app watchos o iphone, puoi farlo con le relative funzionalità di accesso sociale di parse swift vedi documentazione di back4app https //www back4app com/docs/platform/sign in with apple per dettagli passo 6 – gestione dello storage dei file 1\ configurazione dello storage dei file se le tue app watch devono caricare immagini, log o piccoli file di dati, puoi fare affidamento su 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\ esempio potresti memorizzare immagini di allenamenti o istantanee dei progressi quotidiani let snapshotdata = // some image data from watch screenshot task { await uploadfile(data snapshotdata, filename "workout jpg") } 3\ considerazioni sulla sicurezza controlla le acl dei tuoi file per impostazione predefinita, gli url dei file sono accessibili se qualcuno ottiene il link diretto puoi proteggere o controllare l'accesso ai file tramite la configurazione dei file del tuo server parse passo 7 – verifica email e ripristino password 1\ panoramica gli utenti di apple watch potrebbero non gestire sempre i login direttamente sull'orologio, ma abilitare la verifica email aiuta a mantenere i loro dati sicuri 2\ configurazione del dashboard di back4app vai a impostazioni app → email attiva verifica email personalizza i modelli secondo necessità 3\ codice/implementazione per il ripristino delle password do { try await user requestpasswordreset(email "example\@domain com") } catch { print("error requesting password reset \\(error)") } do { try await user requestpasswordreset(email "example\@domain com") } catch { print("error requesting password reset \\(error)") } passo 8 – pianificazione dei compiti con cloud jobs 1\ cosa fanno i cloud jobs i cloud jobs ti permettono di automatizzare compiti in background come la rotazione dei dati obsoleti o la generazione di report di utilizzo per le tue analisi watchos 2\ esempio in 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 `; }); distribuisci il tuo codice vai a impostazioni app → impostazioni server → compiti in background e pianificalo quotidianamente passo 9 – integrazione dei webhook 1\ definizione i webhook notificano i servizi esterni quando si verificano determinati eventi nella tua app ad esempio, potresti voler inviare un ping a un canale slack ogni volta che viene registrato un nuovo metrica 2\ configurazione nel dashboard di back4app, vai a altro → webhook aggiungi un webhook con un endpoint (come un url slack) scegli l'evento (ad es , “nuovo record in healthmetrics”) 3\ esempio ogni volta che un utente aggiunge una nuova voce di dailysteps, il tuo canale slack viene notificato puoi anche definire logiche più complesse nel cloud code per inviare payload personalizzati ai tuoi servizi esterni passo 10 – esplorare il pannello di amministrazione di back4app 1\ dove trovarlo il pannello di amministrazione è accessibile tramite la tua console back4app sotto altro → app di amministrazione abilitalo e crea un utente amministratore per la gestione dei dati basata sul web se hai bisogno di un'interfaccia semplice per i soggetti non tecnici 2\ caratteristiche visualizza e modifica i dati gestisci i log e i cloud jobs monitora le analisi o invia notifiche push questo è un modo semplice per collaborare sui dati senza bisogno di accesso diretto al database o al codice conclusione in questa guida, hai imparato come costruire un backend per watchos utilizzando le potenti funzionalità di back4app hai impostato uno schema di database sicuro, scritto cloud code, gestito query in tempo reale e implementato l'autenticazione degli utenti ora la tua app watchkit può memorizzare e sincronizzare i dati con il minimo sforzo prossimi passi affina le tue app per smartwatch integrando funzioni cloud avanzate per notifiche personalizzate o trasformazioni dei dati esplora ulteriori funzionalità delle applicazioni ios , come la sincronizzazione in background e le strategie di caching per il tuo apple watch leggi la documentazione ufficiale di back4app https //www back4app com/docs/ per ulteriori informazioni su sicurezza avanzata, analisi e prestazioni ottimizza per l'app store per distribuire la tua estensione watchos o app per smartwatch autonoma espandendo il tuo backend, puoi offrire robuste app per watchos che funzionano senza problemi anche con una connessione internet continua a costruire e goditi la potenza di back4app per le tue esperienze su apple watch!
