Quickstarters
Feature Overview
Come costruire un backend per tvOS?
42 min
introduzione in questo tutorial, imparerai come costruire un backend per tvos app utilizzando back4app tratteremo l'integrazione delle funzionalità essenziali di back4app—come la gestione del database, le funzioni cloud code, le api rest e graphql, l'autenticazione degli utenti e le query in tempo reale (live queries)—per creare un backend sicuro e scalabile che comunica senza problemi con la tua apple tv app costruita con il parse swift sdk vedrai come l'ambiente semplificato di back4app e la rapida configurazione riducono drasticamente il tempo rispetto alla configurazione manuale di server e database durante il percorso, acquisirai esperienza pratica con funzionalità chiave, inclusi avanzati strumenti di sicurezza, pianificazione di lavori cloud e integrazioni webhook alla fine di questo tutorial, sarai pronto a migliorare questa struttura fondamentale in un'app tvos pronta per la produzione o a includere facilmente logica personalizzata e api di terze parti questa guida aiuterà anche a mantenere un alta qualità dell'esperienza utente su apple tv , sfruttando il tuo progetto xcode e le tue conoscenze esistenti di sviluppo ios prerequisiti per completare questo tutorial, avrai bisogno di un account back4app e un nuovo progetto 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 xcode (ultima versione stabile) installato costruirai la tua app tvos con swift o swiftui assicurati di avere l'ultima versione di xcode dall'app store di mac parse swift sdk configura il https //github com/netreconlab/parse swift per connettere la tua app tvos familiarità con swift e concetti di base dello sviluppo ios/tvos se sei nuovo su apple tv, rivedi la https //developer apple com/tvos/ o un tutorial per principianti prima assicurati di avere tutti questi prerequisiti in atto prima di iniziare avere il tuo progetto back4app pronto e un progetto xcode tvos configurato ti aiuterà a seguire più facilmente passo 1 – creare un nuovo progetto su back4app e connettersi crea un nuovo progetto il primo passo per costruire il tuo backend dell'app tvos su back4app è creare un nuovo progetto se non lo hai già fatto, segui questi passaggi accedi al tuo account back4app clicca sul pulsante “nuova app” nel tuo dashboard di back4app dai un nome alla tua app (ad esempio, “tvos backend tutorial”) una volta creato, vedrai il progetto elencato nel tuo dashboard di back4app questo nuovo progetto back4app è il nucleo di tutte le configurazioni backend trattate in questo tutorial collegare il parse swift sdk back4app sfrutta parse per gestire l'archiviazione dei dati, l'autenticazione degli utenti, le funzionalità in tempo reale e altro ancora per connettere la tua tvos app a back4app, installa e configura il parse swift sdk nel tuo xcode project recupera le tue chiavi parse nel tuo dashboard di back4app, vai su “impostazioni app” o “sicurezza & chiavi” per trovare il tuo application id e client key vedrai anche il parse server url —comunemente https //parseapi back4app com installa il parse swift sdk nel tuo progetto tvos swift package manager (consigliato) in xcode, seleziona file → aggiungi pacchetti inserisci l'url github di parse swift https //github com/netreconlab/parse swift git scegli la versione appropriata o il ramo principale cocoapods se preferisci cocoapods, aggiungi quanto segue al tuo podfile pod 'parseswiftog' esegui quindi pod install inizializza parse nel tuo 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() } } } questo assicura che la tua tvos app sia costruita per comunicare con il backend di back4app, permettendoti di memorizzare dati, eseguire query, autenticare utenti e altro passo 2 – configurazione del database creazione di un modello di dati con la tua app tvos ora collegata a back4app, puoi creare e gestire dati in parse swift, definisci 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? } puoi anche definire manualmente le classi nel tuo dashboard di back4app vai a “database” nella console di back4app crea una nuova classe (ad esempio, “gamescore”) aggiungi colonne rilevanti (punteggio, nomegiocatore, ecc ) creazione di un modello dati utilizzando l'agente ai l'agente ai di back4app può progettare automaticamente il tuo schema apri l'agente ai nel tuo dashboard di back4app descrivi il tuo modello (ad esempio, “crea una classe todo con un campo titolo e iscompleted”) applica e lascia che l'agente ai generi lo schema lettura e scrittura di dati utilizzando 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)") } } lettura e scrittura dei dati utilizzando 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 lettura e scrittura dei dati utilizzando graphql api mutation { creategamescore(input { fields { score 420 playername "swiftie" } }) { gamescore { objectid score playername } } } lavorare con le query live (opzionale) le query live possono alimentare aggiornamenti in tempo reale nella tua apple tv interfaccia—particolarmente utili per app multi giocatore o di leaderboard abilita le query live nelle impostazioni del tuo server settings su back4app inizializza una sottoscrizione 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 } } passo 3 – applicare la sicurezza con acl e clp panoramica back4app protegge i tuoi dati con acl (liste di controllo degli accessi) e clp (permessi a livello di classe) usali per definire regole di lettura/scrittura a livello di oggetto o classe permessi a livello di classe vai al database , scegli una classe (ad esempio, gamescore) clicca su “sicurezza” o “permessi a livello di classe” imposta chi può leggere, scrivere o eliminare (ad esempio, solo utenti autenticati) acl in codice 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 passo 4 – scrivere funzioni di cloud code perché cloud code? il cloud code ti consente di trasferire la logica critica dal tuo client a codice sicuro lato server questo è ottimo per le regole aziendali, le convalide dei dati o le integrazioni di terze parti senza esporre segreti nella tua app tvos esempio di funzione nel tuo 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; }); distribuzione back4app cli b4a configure accountkey b4a deploy o usa il back4app dashboard → cloud code → functions → main js chiamata da swift import parseswift func awardbonusscore(objectid string, bonus int) async { do { let result = try await parsecloud callfunction("awardbonus", with \[ "objectid" objectid, "bonus" bonus ]) print("updated score \\\\(result)") } catch { print("error awarding bonus \\\\(error)") } } moduli npm all'interno del tuo package json , aggiungi dipendenze { "dependencies" { "axios" "^0 27 0" } } poi richiedili o importali in main js per usarli nel cloud code passo 5 – configurazione dell'autenticazione autenticazione utente in back4app le app tvos spesso necessitano di sincronizzazione dei dati utente o accesso parseuser di parse fornisce registrazione sicura, accesso, sessioni e accesso basato su ruoli struct user parseuser { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // essential var username string? var email string? var emailverified bool? var password string? var authdata \[string \[string string]?]? } registrati / accedi func signupuser() async { var newuser = user() newuser username = "tvuser" newuser password = "secret" newuser email = "user\@example com" do { try await newuser signup() print("sign up successful ") } catch { print("error signing up \\\\(error)") } } func loginuser() async { do { let loggedin = try await user login(username "tvuser", password "secret") print("logged in as \\\\(loggedin username ?? "")") } catch { print("login error \\\\(error)") } } accesso sociale configura https //www back4app com/docs/platform/sign in with apple quindi collega gli account try await user link(with apple(idtoken "token", rawnonce "nonce")) passo 6 – gestione dello storage dei file impostazione dello storage dei file carica immagini utente, replay di giochi o risorse dell'app utilizzando 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)") } esempio allega file agli oggetti struct gamemedia parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var screenshot parsefile? } considerazioni sulla sicurezza utilizza clp o acl per proteggere i riferimenti ai file l'url diretto di un file può essere accessibile pubblicamente a meno che tu non abiliti https //www back4app com/docs/security/parse security passo 7 – verifica email e reimpostazione password panoramica la verifica dell'email aiuta a confermare la proprietà dell'account email da parte dell'utente la reimpostazione della password offre un modo sicuro e user friendly per riacquistare l'accesso all'account configurazione del dashboard di back4app nella tua app → impostazioni app → email abilita la verifica dell'email o reimpostazione password personalizza i modelli di email implementazione del codice 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)") } } passo 8 – pianificazione dei compiti con cloud jobs cloud jobs automatizza compiti ricorrenti, come la pulizia dei dati obsoleti o l'invio di aggiornamenti mensili 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 `; }); nel back4app dashboard → impostazioni app → impostazioni server → compiti in background , pianifica “cleanupoldscores” per essere eseguito quotidianamente passo 9 – integrazione dei webhook definizione i webhook consentono alla tua app back4app di inviare eventi a servizi esterni questo potrebbe includere l'invio di notifiche a slack, aggiornamenti di pagamento a stripe o dati analitici al tuo server configurazione nel tuo back4app dashboard, vai su altro → webhooks → aggiungi webhook specifica un endpoint (come https //myserver com/webhook endpoint ) e i trigger (aggiornamenti di oggetti, nuovi record, ecc ) esempio notifica slack quando viene creato un nuovo punteggio alto parse cloud aftersave("gamescore", async (request) => { const score = request object get("score"); await sendtoslack(`a new high score of ${score} was posted!`); }); passo 10 – esplorare il pannello di amministrazione di back4app dove trovarlo l' app di amministrazione di back4app è un dashboard intuitivo, centrato sul modello per gestire i dati, eseguire operazioni crud o modificare classi—senza necessità di query dirette al database abilitalo tramite dashboard dell'app → altro → app di amministrazione caratteristiche una volta abilitato, puoi invitare membri del team o clienti a gestire i dati, controllare i log o regolare le notifiche push—essenzialmente dando loro un portale diretto al backend della tua app tvos conclusione seguendo questo tutorial completo, hai creato un backend sicuro per la tua app tvos utilizzando back4app configurato un database con classi, tipi di dati e relazioni impostato query in tempo reale per riflettere cambiamenti immediati applicato sicurezza tramite acl e clp implementato cloud code per logica aziendale personalizzata e integrazioni abilitato autenticazione con verifica email e reset della password gestito caricamenti di file con controlli di sicurezza opzionali pianificato cloud jobs per compiti di routine utilizzato webhook per integrare servizi esterni esplorato il pannello di amministrazione per gestire e monitorare i dati ora sei ben attrezzato per costruire esperienze apple tv ricche e di alta qualità la tua app è costruita su una solida base—goditi il passaggio delle tue idee per app tvos nella realtà! prossimi passi affina la tua interfaccia tvos incorpora navigazione basata sul focus, flussi utente per schermi grandi e le migliori pratiche dell'app store migliora la sicurezza aggiungi acl basate sui ruoli, autenticazione a più fattori o crittografia avanzata approfondisci le tue competenze esplora funzionalità parse swift più avanzate come la memorizzazione nella cache offline o analisi personalizzate controlla la documentazione ufficiale https //www back4app com/docs e https //developer apple com/tvos/ per una conoscenza più approfondita monetizzazione considera abbonamenti o pay per view per espandere il potenziale del tuo business di streaming con le basi di questa guida, puoi continuare a innovare e integrare nuove funzionalità buona fortuna nel portare la tua app tvos al livello successivo!
