Quickstarters
Feature Overview
Como construir um backend para WatchOS?
40 min
introdução neste tutorial, você descobrirá como construir um backend para watchos aplicativos usando o back4app se você está criando uma extensão watchkit para seu aplicativo iphone ou projetando uma experiência independente de apple watch , o back4app simplifica seu trabalho ao fornecer ferramentas essenciais você integrará recursos como um banco de dados seguro, funções de código em nuvem, consultas em tempo real (consultas ao vivo) e autenticação de usuários—tudo isso sem gerenciar seus próprios servidores você também verá como a rotina de inicialização rápida do back4app e o ambiente fácil de usar permitem que você se concentre na funcionalidade dos aplicativos watchos , em vez de configurar servidores ao longo do caminho, você aprenderá a lidar com tarefas como agendar trabalhos, configurar webhooks e configurar notificações push ao final, você terá uma base sólida para estender seus aplicativos de relógio ou aplicações ios para necessidades de nível de produção, tudo isso enquanto entrega uma sincronização de dados perfeita (sobre uma conexão de internet ) entre o aplicativo watchkit e seu backend pré requisitos 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 um ambiente de desenvolvimento watchos/xcode você deve ter o xcode instalado com o sdk watchos você pode executar e construir sua extensão watchkit em um apple watch real ou em um simulador parse swift sdk use swift package manager https //github com/netreconlab/parse swift para instalar e configurar o sdk para seus watchos ou aplicativos combinados ios familiaridade com swift, xcode e o ecossistema de desenvolvimento da apple documentação do desenvolvedor da apple https //developer apple com/documentation/ se você é novo nas plataformas da apple, passe algum tempo explorando a documentação do watchos e ios antes de começar certifique se de atender a esses pré requisitos antes de começar ter seu projeto back4app configurado e seu ambiente local watchos pronto ajudará você a acompanhar suavemente passo 1 – criando um novo projeto no back4app e conectando por que você precisa de um projeto back4app um novo projeto back4app é essencial para armazenar todos os dados e executar código em nuvem para seus aplicativos watchos isso serve como a base do seu backend crie seu projeto faça login no back4app clique “novo app” no painel nomeie seu app (por exemplo, “watchos backend tutorial”) instale o parse swift sdk adicione a dependência parse swift no seu package swift ou usando arquivo → pacotes swift → adicionar dependência de pacote no xcode forneça a url dependencies \[ package(url "https //github com/netreconlab/parse swift git", from "5 0 0") ] inicialize o parse no seu watchos ou código compartilhado no código de inicialização do seu aplicativo watchkit ou em um arquivo compartilhado acessível por ambos os watchos e aplicativo iphone , inicialize o 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() } } } neste ponto, seu watchos aplicativo pode se comunicar com o backend do back4app seja um aplicativo apple watch independente ou uma extensão watchkit emparelhada com um aplicativo iphone , todos os dados do backend fluem através do sdk parse swift passo 2 – configurando o banco de dados 1\ criando um modelo de dados back4app utiliza o recurso de esquema on write do parse server você pode definir tabelas (classes) na seção banco de dados back4app ou deixá las serem criadas automaticamente quando os objetos são salvos pela primeira vez por exemplo, se seus aplicativos de watch rastreiam dados de saúde, você pode ter uma classe “healthmetrics” com campos como heartrate, steps ou workouttype 2\ criando um modelo de dados usando o agente de ia o agente de ia da back4app permite que você descreva seu esquema em linguagem simples abra o agente de ia no painel do seu aplicativo forneça detalhes como “por favor, configure uma classe watch metrics com campos dailysteps (número), heartrate (número) ” a ia criará o esquema para você automaticamente 3\ lendo e escrevendo dados usando o sdk abaixo está um exemplo de salvamento e consulta de dados de um aplicativo watchos vamos supor que temos uma 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\ lendo e escrevendo dados usando rest api se necessário, seus watchos ou ios apps também podem enviar requisições 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\ lendo e escrevendo dados usando graphql back4app também fornece um endpoint graphql por exemplo mutation { createhealthmetrics(input { fields { dailysteps 7500 heartrate 70 } }) { healthmetrics { objectid dailysteps heartrate } } } 6\ trabalhando com consultas ao vivo (opcional) se você precisar de atualizações de dados em tempo real no seu apple watch , ative consultas ao vivo ative consultas ao vivo em configurações do servidor no back4app configure a url da consulta ao vivo no seu código watchos parselivequery configure(url url(string "wss\ //your subdomain b4a io")!) então, inscreva se para mudanças 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 – aplicando segurança com acls e clps 1\ visão geral breve back4app permite listas de controle de acesso (acls) e permissões em nível de classe (clps) para proteger seu banco de dados por exemplo, você pode restringir certas métricas ao usuário que as gerou ou permitir acesso de leitura apenas a contas autenticadas 2\ configuração passo a passo permissões em nível de classe vá para banco de dados → classe → segurança para definir padrões (por exemplo, somente leitura para todos, escrita para proprietários) acls em código você pode adicionar acls a cada objeto em seu watchkit ou código compartilhado por exemplo 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 } isso garante que apenas o usuário logado possa visualizar ou modificar os objetos healthmetrics que eles criam passo 4 – escrevendo funções de código em nuvem 1\ por que código em nuvem o código em nuvem ajuda você a executar operações complexas ou confidenciais no lado do servidor, como validação de dados, chamadas de api externas ou registro essa configuração é útil para minimizar a carga de trabalho do dispositivo watchos e preservar a vida útil da bateria no apple watch 2\ função de exemplo em seu 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\ implantação use o back4app cli https //www back4app com/docs/local development/parse cli para implantar b4a deploy 4\ instalando módulos npm se você precisar de bibliotecas externas no seu cloud code adicione dependências em package json (dentro da sua pasta cloud code) use require('your lib') em main js passo 5 – configurando autenticação 1\ habilitar autenticação de usuário por padrão, a classe usuário está pronta no back4app certifique se de que “habilitar permissões de nível de classe” está configurado corretamente para objetos de usuário 2\ exemplos de código no parse swift, você pode cadastrar um usuário a partir do seu código 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\ login social se você planeja integrar login da apple, google ou facebook no seu aplicativo watchos ou iphone, você pode fazer isso com os recursos relevantes de login social do parse swift veja documentação do back4app https //www back4app com/docs/platform/sign in with apple para detalhes passo 6 – gerenciando armazenamento de arquivos 1\ configurando armazenamento de arquivos se seus aplicativos de relógio precisam enviar imagens, logs ou pequenos arquivos de dados, você pode contar com 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\ exemplo você pode armazenar imagens de treino ou instantâneas de progresso diário let snapshotdata = // some image data from watch screenshot task { await uploadfile(data snapshotdata, filename "workout jpg") } 3\ considerações de segurança revise suas acls de arquivo por padrão, urls de arquivos são acessíveis se alguém obtiver o link direto você pode proteger ou controlar o acesso ao arquivo através da configuração de arquivos do seu servidor parse passo 7 – verificação de email e redefinição de senha 1\ visão geral usuários do apple watch podem não gerenciar logins diretamente no relógio, mas habilitar a verificação de email ajuda a manter seus dados seguros 2\ configuração do painel back4app vá para configurações do app → email ative verificação de email personalize os templates conforme necessário 3\ código/implementação para redefinições de senha do { try await user requestpasswordreset(email "example\@domain com") } catch { print("error requesting password reset \\(error)") } passo 8 – agendando tarefas com cloud jobs 1\ o que os cloud jobs fazem os cloud jobs permitem automatizar tarefas em segundo plano, como rotacionar dados antigos ou gerar relatórios de uso para suas análises do watchos 2\ exemplo em 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 `; }); implante seu código vá para configurações do app → configurações do servidor → tarefas em segundo plano e agende diariamente passo 9 – integrando webhooks 1\ definição webhooks notificam serviços externos quando certos eventos acontecem em seu aplicativo por exemplo, você pode querer enviar uma notificação para um canal do slack toda vez que uma nova métrica for registrada 2\ configuração no painel do back4app, vá para mais → webhooks adicione um webhook com um endpoint (como uma url do slack) escolha o evento (por exemplo, “novo registro em healthmetrics”) 3\ exemplo sempre que um usuário adiciona uma nova entrada de dailysteps, seu canal do slack é notificado você também pode definir lógica mais complexa no cloud code para enviar cargas personalizadas para seus serviços externos passo 10 – explorando o painel de administração do back4app 1\ onde encontrá lo o painel de administração é acessível através do seu console do back4app em mais → aplicativo de administração ative o e crie um usuário administrador para gerenciamento de dados baseado na web se você precisar de uma interface simples para partes interessadas não técnicas 2\ recursos ver e editar dados gerenciar logs e jobs na nuvem rastrear análises ou notificações push esta é uma maneira fácil de colaborar em dados sem precisar de acesso direto ao banco de dados ou ao código conclusão ao longo deste guia, você aprendeu como construir um backend para watchos usando os poderosos recursos do back4app você configurou um esquema de banco de dados seguro, escreveu código na nuvem, lidou com consultas em tempo real e implementou autenticação de usuário agora seu aplicativo watchkit pode armazenar e sincronizar dados com o mínimo de complicação próximos passos aprimore seus aplicativos de relógio integrando funções avançadas na nuvem para notificações personalizadas ou transformações de dados explore funcionalidades adicionais de aplicações ios , como sincronização em segundo plano e estratégias de cache para seu apple watch leia a documentação oficial do back4app https //www back4app com/docs/ para mais informações sobre segurança avançada, análises e desempenho otimize para a app store para distribuir sua extensão watchos ou aplicativo de relógio autônomo ao expandir seu backend, você pode oferecer robustos aplicativos watchos que funcionam perfeitamente mesmo com uma conexão de internet limitada continue construindo e aproveite o poder do back4app para suas experiências no apple watch!