Quickstarters
Feature Overview
How to Build a Backend for tvOS?
42 min
introdução neste tutorial, você aprenderá como construir um backend para tvos aplicativos usando back4app vamos abordar a integração de recursos essenciais do back4app—como gerenciamento de banco de dados, funções de cloud code, apis rest e graphql, autenticação de usuários e consultas em tempo real (live queries)—para criar um backend seguro e escalável que se comunica perfeitamente com seu apple tv aplicativo construído com o parse swift sdk você verá como o ambiente simplificado do back4app e a configuração rápida reduzem drasticamente o tempo em comparação com a configuração manual de servidores e bancos de dados ao longo do caminho, você ganhará experiência prática com funcionalidades chave, incluindo recursos avançados de segurança, agendamento de jobs em nuvem e integrações de webhook ao final deste tutorial, você estará preparado para aprimorar essa estrutura fundamental em um aplicativo tvos pronto para produção ou incluir facilmente lógica personalizada e apis de terceiros este guia também ajudará a manter uma alta qualidade na experiência do usuário em apple tv , aproveitando seu projeto xcode e o conhecimento existente em desenvolvimento ios pré requisitos para completar este tutorial, você precisará uma conta back4app e um novo projeto back4app começando com back4app https //www back4app com/docs/get started/new parse app se você não tiver uma conta, pode criar uma gratuitamente siga o guia acima para preparar seu projeto xcode (última versão estável) instalado você construirá seu aplicativo tvos com swift ou swiftui certifique se de ter a versão mais recente do xcode na mac app store parse swift sdk configure o parse swift sdk https //github com/netreconlab/parse swift para conectar seu aplicativo tvos familiaridade com swift e conceitos básicos de desenvolvimento ios/tvos se você é novo no apple tv, revise a documentação do apple tvos https //developer apple com/tvos/ ou um tutorial para iniciantes primeiro certifique se de ter todos esses pré requisitos em vigor antes de começar ter seu projeto back4app pronto e um projeto xcode local configurado ajudará você a acompanhar mais facilmente passo 1 – criando um novo projeto no back4app e conectando criar um novo projeto o primeiro passo para construir seu backend de app tvos no back4app é criar um novo projeto se você ainda não fez isso, siga estes passos faça login na sua conta back4app clique no botão “novo app” no seu painel do back4app dê um nome ao seu app (por exemplo, “tvos backend tutorial”) uma vez criado, você verá o projeto listado no seu painel do back4app este novo projeto back4app é o núcleo de todas as configurações de backend abordadas neste tutorial conectar o sdk parse swift back4app aproveita parse para gerenciar armazenamento de dados, autenticação de usuários, recursos em tempo real e mais para conectar seu aplicativo tvos ao back4app, instale e configure o sdk parse swift em seu projeto xcode recupere suas chaves parse no seu painel do back4app, vá para “configurações do app” ou “segurança & chaves” para encontrar seu id da aplicação e chave do cliente você também verá a url do servidor parse —comumente https //parseapi back4app com instale o sdk parse swift em seu projeto tvos gerenciador de pacotes swift (recomendado) no xcode, selecione arquivo → adicionar pacotes insira a url do github do parse swift https //github com/netreconlab/parse swift git escolha a versão apropriada ou o branch principal cocoapods se você preferir cocoapods, adicione o seguinte ao seu podfile pod 'parseswiftog' em seguida, execute pod install inicialize o parse no seu appdelegate ou @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() } } } isso garante que seu app tvos seja construído para se comunicar com o backend do back4app, permitindo que você armazene dados, execute consultas, autentique usuários e muito mais passo 2 – configurando o banco de dados criando um modelo de dados com seu app tvos agora conectado ao back4app, você pode criar e gerenciar dados no parse swift, você define 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? } você também pode definir classes manualmente no seu painel do back4app vá para “banco de dados” no console do back4app crie uma nova classe (por exemplo, “gamescore”) adicione colunas relevantes (pontuação, nomedojogador, etc ) criando um modelo de dados usando o agente de ia o agente de ia do back4app pode projetar automaticamente seu esquema abra o agente de ia no seu painel do back4app descreva seu modelo (por exemplo, “criar uma classe todo com um título e um campo iscompleted”) aplique e deixe o agente de ia gerar o esquema lendo e escrevendo dados 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)") } } lendo e escrevendo dados 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 lendo e escrevendo dados usando graphql api mutation { creategamescore(input { fields { score 420 playername "swiftie" } }) { gamescore { objectid score playername } } } trabalhando com consultas ao vivo (opcional) consultas ao vivo podem fornecer atualizações em tempo real em sua apple tv interface—especialmente útil para aplicativos de múltiplos jogadores ou de classificação ative consultas ao vivo nas configurações do servidor do seu aplicativo no back4app inicialize uma assinatura 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 – aplicando segurança com acls e clps visão geral back4app protege seus dados com acls (listas de controle de acesso) e clps (permissões de nível de classe) use os para definir regras de leitura/escrita no nível do objeto ou da classe permissões de nível de classe vá para o banco de dados , escolha uma classe (por exemplo, gamescore) clique em “segurança” ou “permissões de nível de classe” defina quem pode ler, escrever ou deletar (por exemplo, apenas usuários autenticados) acls no 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 passo 4 – escrevendo funções de código em nuvem por que código em nuvem? o código em nuvem permite que você transfira lógica crítica do seu cliente para um código seguro do lado do servidor isso é ótimo para regras de negócios, validações de dados ou integrações de terceiros sem expor segredos no seu aplicativo tvos exemplo de função no seu 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; }); implantação back4app cli b4a configure accountkey b4a deploy ou use o back4app dashboard → cloud code → functions → main js chamando do 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)") } } módulos npm dentro do seu package json , adicione dependências { "dependencies" { "axios" "^0 27 0" } } então, requer ou importa os em main js para usar no cloud code passo 5 – configurando autenticação autenticação de usuário no back4app aplicativos tvos frequentemente precisam de sincronização de dados do usuário ou login o parseuser do parse fornece registro seguro, login, sessões e acesso baseado em funções 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]?]? } registrar / fazer login 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)") } } login social configure facebook ou apple sign in https //www back4app com/docs/platform/sign in with apple então vincule contas try await user link(with apple(idtoken "token", rawnonce "nonce")) passo 6 – gerenciamento de armazenamento de arquivos configurando armazenamento de arquivos carregue imagens de usuários, replays de jogos ou ativos de aplicativos 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)") } exemplo anexe arquivos a objetos struct gamemedia parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var screenshot parsefile? } considerações de segurança use clps ou acls para proteger referências de arquivos a url direta de um arquivo pode ser publicamente acessível, a menos que você ative segurança de arquivos https //www back4app com/docs/security/parse security passo 7 – verificação de email e redefinição de senha visão geral a verificação de email ajuda a confirmar a propriedade da conta de email pelo usuário a redefinição de senha oferece uma maneira segura e amigável para recuperar o acesso à conta configuração do painel do back4app no seu aplicativo → configurações do aplicativo → email ative a verificação de email ou redefinição de senha personalize modelos de email implementação 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)") } } passo 8 – agendando tarefas com cloud jobs cloud jobs automatize tarefas recorrentes, como limpar dados antigos ou enviar atualizações mensais 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 `; }); no painel do back4app → configurações do app → configurações do servidor → tarefas em segundo plano , agende “cleanupoldscores” para ser executado diariamente passo 9 – integrando webhooks definição webhooks permitem que seu aplicativo back4app envie eventos para serviços externos isso pode incluir o envio de notificações para o slack, atualizações de pagamento para o stripe ou dados analíticos para seu servidor configuração no seu painel do back4app, vá para mais → webhooks → adicionar webhook especifique um endpoint (como https //myserver com/webhook endpoint ) e os gatilhos (atualizações de objeto, novos registros, etc ) exemplo notifique o slack quando uma nova pontuação alta for criada parse cloud aftersave("gamescore", async (request) => { const score = request object get("score"); await sendtoslack(`a new high score of ${score} was posted!`); }); passo 10 – explorando o painel de administração do back4app onde encontrá lo o aplicativo de administração do back4app é um painel de controle amigável, centrado em modelos para gerenciar dados, realizar crud ou editar classes—sem precisar de consultas diretas ao banco de dados ative o através do painel do aplicativo → mais → aplicativo de administração recursos uma vez ativado, você pode convidar membros da equipe ou clientes para gerenciar dados, verificar logs ou ajustar notificações push—essencialmente dando a eles um portal direto para o backend do seu aplicativo tvos conclusão seguindo este tutorial abrangente, você criou um backend seguro para seu app tvos usando back4app configurou um banco de dados com classes, tipos de dados e relacionamentos configurou consultas em tempo real para refletir mudanças imediatas aplicou segurança através de acls e clps implementou cloud code para lógica de negócios personalizada e integrações habilitou autenticação com verificação de e mail e redefinições de senha gerenciou uploads de arquivos com controles de segurança opcionais agendou cloud jobs para tarefas rotineiras usou webhooks para integrar com serviços externos explorou o painel de administração para gerenciar e monitorar dados agora você está bem preparado para construir experiências ricas e de alta qualidade para apple tv seu app está construído sobre uma base sólida—aproveite para transformar suas ideias de app tvos em realidade! próximos passos refine sua interface tvos incorpore navegação baseada em foco, fluxos de usuário para telas grandes e práticas recomendadas da app store aprimore a segurança adicione acl baseada em função, autenticação multifatorial ou criptografia avançada aprofunde suas habilidades explore recursos mais avançados do parse swift, como cache offline ou análises personalizadas confira a documentação oficial documentos do back4app https //www back4app com/docs e documentos da apple tvos https //developer apple com/tvos/ para um conhecimento mais profundo monetização considere assinatura ou pagamento por visualização para expandir o potencial do seu negócio de streaming com os fundamentos deste guia, você pode continuar inovando e integrando novos recursos boa sorte ao levar seu aplicativo tvos para o próximo nível!