Quickstarters
Feature Overview
Como Construir um Backend para Swift?
44 min
introdução neste tutorial, você aprenderá como construir um backend completo para uma aplicação swift usando o back4app vamos percorrer 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, consultas em tempo real (consultas ao vivo) e mais—para criar um backend seguro, escalável e robusto que se comunica perfeitamente com seu aplicativo cliente baseado em swift ao aproveitar a configuração rápida e o ambiente intuitivo do back4app, você reduzirá drasticamente o tempo e o esforço necessários 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 cruciais, incluindo recursos avançados de segurança, agendamento de tarefas com cloud jobs e configuração de webhooks para integrações externas ao final deste tutorial, você estará bem preparado para aprimorar este serviço de backend fundamental em uma aplicação pronta para produção ou facilmente incorporar lógica personalizada e apis de terceiros conforme necessário você verá como trabalhar com uma plataforma baas pode transformar o desenvolvimento de backend em uma experiência mais simplificada, especialmente ao criar um backend ágil ou qualquer outro aplicativo de backend vamos começar! 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 um ambiente de desenvolvimento swift você pode usar xcode https //developer apple com/xcode/ como seu ide para criar aplicativos ios ou macos usando swift certifique se de ter uma versão estável recente do xcode instalada em sua máquina familiaridade com a linguagem de programação swift se você é novo em swift, revise a documentação do swift https //swift org/documentation/ ou um tutorial para iniciantes antes de começar parse swift sdk se você estiver usando cocoapods, adicione pod 'parseswiftog' ao seu podfile ou se você estiver usando o swift package manager, adicione package(url "https //github com/netreconlab/parse swift git", from "5 0 0") às suas dependências leia mais na documentação do parse swift https //docs parseplatform org/parse swift/guide/ certifique se de ter todos esses pré requisitos em ordem antes de começar ter seu projeto back4app configurado e seu ambiente local swift pronto ajudará você a acompanhar mais facilmente passo 1 – criando um novo projeto no back4app e conectando o primeiro passo para construir seu backend swift no back4app é criar um novo projeto este projeto é a base para todas as configurações de backend discutidas neste tutorial o swift pode se conectar perfeitamente ao seu novo backend usando o parse swift sdk vamos ver como criar um novo projeto faça login na sua conta back4app clique no botão “novo app” no seu painel do back4app nomeie seu app (por exemplo, “swift backend tutorial”) após a criação, você verá o novo app listado no seu painel é aqui que você configurará seu banco de dados, funções em nuvem e outras configurações cruciais para seu app de backend conectar o parse swift sdk back4app é alimentado pela parse platform, que fornece a base para seu banco de dados, atualizações em tempo real, autenticação e mais seu aplicativo swift pode se conectar ao back4app instalando e inicializando o parse swift sdk recupere suas chaves parse no seu painel do back4app, vá para as “configurações do app” ou “segurança & chaves” do seu app para encontrar seu id do aplicativo e chave do cliente você também verá sua url do servidor parse (geralmente https //parseapi back4app com ) instale o parse swift sdk gerenciador de pacotes swift (recomendado) dependencies \[ package(url "https //github com/netreconlab/parse swift git", from "5 0 0") ] cocoapods pod 'parseswiftog' inicialize o parse no seu app você pode fazer isso no ponto de entrada principal do seu projeto swift (por exemplo, appdelegate swift ou a estrutura @main do swiftui) por exemplo import swiftui import parseswift @main struct myapp app { init() { // replace placeholders with your back4app credentials parseswift initialize( applicationid "your application id", clientkey "your client key", serverurl url(string "https //parseapi back4app com")! ) } var body some scene { windowgroup { contentview() } } } com essa configuração, seu cliente swift agora pode enviar solicitações seguras para o back4app você estabeleceu uma conexão robusta que simplifica as operações de dados sem exigir chamadas manuais de rest ou graphql (embora você ainda possa usá las se desejar) passo 2 – configurando o banco de dados neste passo, você configurará seu banco de dados backend no back4app e verá como gerenciar dados a partir do seu código swift o back4app usa o modelo de dados parse, permitindo que você armazene objetos em estruturas semelhantes a classes o swift pode interagir facilmente com essas classes através do sdk parse swift criando um modelo de dados navegue até a seção “banco de dados” no seu painel do back4app crie uma nova classe (por exemplo, “todo”) adicione colunas para os dados que você precisa, como “título” (string) e “estácompleto” (boolean) você também pode deixar o sdk parse swift criar essas colunas automaticamente na primeira vez que você salvar um objeto de qualquer forma, seu esquema deve corresponder aos dados que você armazena para que seu aplicativo possa lidar com isso de forma transparente criando um modelo de dados usando o agente de ia back4app fornece um agente de ia que pode ajudá lo a projetar seu modelo de dados abra o agente de ia no painel ou menu do seu aplicativo descreva seu modelo de dados em linguagem natural por exemplo “por favor, crie um novo projeto swift com um esquema de classe todo ” deixe o agente de ia criar o esquema para você automaticamente lendo e escrevendo dados parse swift sdk usando o sdk parse swift, você pode criar uma struct que conforma com parseobject para representar seus dados por exemplo, se você tiver uma todo classe import parseswift struct todo parseobject { // parseobject protocol properties var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom properties var title string? var iscompleted bool? } crie um objeto todo e salve var newtodo = todo() newtodo title = "buy groceries" newtodo iscompleted = false task { do { let saved = try await newtodo save() print("saved ", saved) } catch { print("error saving todo ", error) } } consultar todos os itens todo task { do { let todos = try await todo query() find() print("todos ", todos) } catch { print("error fetching ", error) } } lendo e escrevendo dados rest api se você preferir solicitações http padrão, pode usar a rest api por exemplo, para criar um novo todo curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "walk the dog", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo lendo e escrevendo dados graphql api graphql também é suportado aqui está uma mutação de exemplo para criar um todo mutation { createtodo(input { fields { title "finish homework" iscompleted false } }) { todo { objectid title iscompleted } } } trabalhando com consultas ao vivo se o seu aplicativo swift precisa de atualizações em tempo real, o back4app suporta consultas ao vivo para ios ative as consultas ao vivo nas configurações do servidor do seu aplicativo conecte se especificando parse livequeryserverurl no seu aplicativo parse configuration serverurl = url(string "https //parseapi back4app com")! parse configuration livequeryserverurl = url(string "wss\ //your subdomain b4a io")! inscreva se para atualizações ao vivo let subscription = todo query() subscribecallback { subscriptionstate in switch subscriptionstate { case subscribed(let querysubscription) print("subscribed to todo changes!") default break } } agora, sempre que um todo for criado, atualizado ou excluído, você receberá atualizações em tempo real isso é especialmente útil para recursos colaborativos ou sensíveis ao tempo no desenvolvimento do seu backend swift passo 3 – aplicando segurança com acls e clps o que são acls e clps? back4app usa listas de controle de acesso (acls) e permissões de nível de classe (clps) para proteger seus dados acls permitem que você defina permissões por objeto, enquanto clps definem regras de acesso padrão para uma classe inteira permissões de nível de classe no painel do back4app vá para banco de dados e selecione uma classe (por exemplo, “todo”) abra permissões de nível de classe configure restrições de leitura, escrita ou acesso público listas de controle de acesso (acls) ao criar ou atualizar um parseobject em swift, você pode definir um acl por exemplo var acl = parseacl() // only let the current user read and write acl setreadaccess(userid "current user id", value true) acl setwriteaccess(userid "current user id", value true) var todo = todo() todo acl = acl isso garante que apenas o usuário especificado possa ler ou modificar esse objeto combinar acls e clps forma um modelo de segurança robusto e em camadas para os dados do seu aplicativo passo 4 – escrevendo funções de cloud code por que cloud code? cloud code permite que você execute lógica swift do lado do servidor (ou javascript se estiver usando o estilo original do cloud code do parse) sem expor segredos ao cliente é perfeito para validações, gatilhos, tarefas agendadas e mais exemplo de função aqui está um exemplo baseado em javascript, mas você também pode trabalhar em typescript ou chamar a partir do swift na sua cloud code pasta, crie main js parse cloud define("gettaskscount", async (request) => { const query = new parse query("todo") const count = await query count({ usemasterkey true }) return count }) parse cloud beforesave("todo", async (request) => { const todo = request object if (!todo get("title")) { throw "cannot save a todo without a title " } }) você pode querer instalar módulos npm incluindo os em seu package json arquivo, e então chamá los em main js uma vez implantado, você pode invocar essas funções do seu código swift usando callfunction implantação implante seu cloud code via b4a deploy você também pode implantar através do painel do back4app indo para cloud code > functions cole seu código no editor online e clique em deploy chamando do swift task { do { let result = try await parsecloud callfunction("gettaskscount", with \[string any]\()) print("count ", result) } catch { print("error calling cloud function ", error) } } passo 5 – configurando autenticação habilitando a autenticação do usuário no painel , você verá uma classe padrão user para contas de usuário ative quaisquer provedores de autenticação adicionais (apple, facebook, google, etc ) na configurações de autenticação do seu aplicativo, se necessário cadastro e login (swift) struct user parseuser { var objectid string? var username string? var email string? var password string? var emailverified bool? var createdat date? var updatedat date? var acl parseacl? var originaldata data? } // sign up task { do { var newuser = user() newuser username = "alice" newuser password = "p\@ssword" let signedup = try await newuser signup() print("user signed up ", signedup) } catch { print("error signing up ", error) } } // log in task { do { let user = try await user login(username "alice", password "p\@ssword") print("logged in user ", user) } catch { print("error logging in ", error) } } login social back4app suporta login oauth com google, apple e facebook configure esses provedores na sua página de configurações de autenticação , e use o código de integração relevante do parse swift no seu aplicativo swift (por exemplo, parsefacebookutils ou parseappleutils ) para gerenciar os fluxos de autenticação para detalhes, veja a documentação de login social https //www back4app com/docs/platform/sign in with apple passo 6 – gerenciando o armazenamento de arquivos configurando o armazenamento de arquivos você pode armazenar imagens, vídeos ou qualquer arquivo no back4app em swift, você tem parsefile let imagedata = data(/ your image bytes /) let parsefile = parsefile(name "photo jpg", data imagedata) task { do { let savedfile = try await parsefile save() print("file saved ", savedfile url ?? "no url") } catch { print("error uploading file ", error) } } então você pode anexar este arquivo a um parseobject e salvar recupere a url do arquivo para exibi lo ou baixá lo em outro lugar considerações de segurança para restringir o acesso ao arquivo, você pode usar a configuração de arquivos do parse server https //www back4app com/docs/platform/file storage por exemplo, você pode permitir que apenas usuários autenticados façam upload de arquivos ou especificar permissões de leitura/gravação em seu código swift passo 7 – verificação de email e redefinição de senha por que verificação e emails de redefinição? validar o email de um usuário garante uma caixa de correio real e ativa a redefinição de senha ajuda seus usuários a recuperarem o acesso à conta de forma segura se esquecerem as credenciais configurando no back4app vá para configurações de email e ative verificação de email edite seus modelos de email para os fluxos de verificação e redefinição acionando uma redefinição de senha a partir do swift task { do { try await user passwordreset(email "alice\@example com") print("password reset email sent!") } catch { print("error requesting password reset ", error) } } passo 8 – agendando tarefas com jobs em nuvem jobs em nuvem você pode agendar tarefas do lado do servidor no back4app por exemplo, limpar dados antigos ou enviar relatórios semanais defina um job no seu cloud code e agende o através do painel do back4app parse cloud job("cleanupoldtodos", async (request) => { const now = new date() // example logic remove todos older than 30 days // use master key for privileged operations }) então, nas configurações do servidor do back4app > jobs em segundo plano , você pode agendá lo para ser executado diariamente ou em qualquer intervalo passo 9 – integrando webhooks o que são webhooks? webhooks permitem que seu aplicativo envie automaticamente dados para serviços externos sempre que certos eventos acontecem isso é perfeito para integrar com slack, stripe ou outras apis de terceiros configuração no seu painel do back4app, vá para mais > webhooks adicione um endpoint de webhook (por exemplo, https //example com/webhook ) escolha os gatilhos (por exemplo, criação de objeto em “todo”) para lógica personalizada, você também pode fazer solicitações para urls externas em gatilhos de cloud code passo 10 – explorando o painel de administração do back4app o que é o painel de administração? o back4app admin app é uma interface de apontar e clicar para funcionários não técnicos ou de suporte ele fornece uma gui simples para realizar operações crud em seus dados—ótimo para gerenciar dados fora do seu ambiente de desenvolvimento habilitando o app de administração vá para o painel do app > mais > app de administração habilite o app de administração e escolha um subdomínio crie um usuário administrador uma vez ativado, qualquer pessoa com as credenciais adequadas pode visualizar e editar seus dados a partir de uma interface web amigável—sem necessidade de código conclusão ao seguir este tutorial completo, você aprendeu como construir um backend para swift usando o back4app especificamente, você criou um backend seguro para seu aplicativo swift configurou um banco de dados com esquemas de classe e relacionamentos de dados trabalhou com consultas em tempo real (consultas ao vivo) para atualizações imediatas definiu segurança robusta com acls e clps usou cloud code para executar lógica personalizada no lado do servidor implementou autenticação de usuário com verificação e redefinições de senha gerenciou uploads de arquivos de forma segura agendou tarefas automatizadas com cloud jobs aprendeu sobre webhooks para integrar apis externas explorou o painel de administração para gerenciamento direto de dados agora você tem um serviço de backend funcional e escalável para sua aplicação swift—um que pode ser facilmente estendido para lidar com recursos mais complexos, conectar se a serviços de terceiros ou se adaptar a um tráfego de usuários mais intenso você também viu em primeira mão como a combinação dos recursos baas do back4app e a sintaxe moderna do swift podem acelerar o desenvolvimento do backend próximos passos construa um aplicativo swift pronto para produção desenvolvendo sua ui/ux integre recursos avançados como autenticação especializada (baseada em função, sso) ou lógica adicional de cloud code para regras específicas de domínio confira a documentação oficial do back4app para mergulhos mais profundos em logs, análises ou segurança avançada explore outros tutoriais sobre chat em tempo real, painéis de iot ou aplicativos baseados em localização combine esses com apis externas para resolver desafios do mundo real é assim que se constrói um backend para swift usando o back4app! boa codificação!