Quickstarters
CRUD Samples
How to Develop a Basic CRUD Application with SwiftUI?
29 min
visão geral neste guia, você aprenderá como desenvolver um aplicativo crud (criar, ler, atualizar e excluir) totalmente funcional usando swiftui swiftui é um framework para construir interfaces de usuário para ios, ipados, watchos, tvos, visionos e macos usaremos o back4app como o serviço de backend para gerenciar nossos dados este tutorial o guiará na configuração do seu projeto back4app, no design do seu esquema de banco de dados, na integração com swiftui usando chamadas de api e na segurança do seu backend o que você vai aprender como construir um aplicativo crud que gerencia operações de dados de forma integrada técnicas para projetar um backend robusto e escalável métodos para conectar uma interface swiftui com o back4app usando apis rest como gerenciar dados de forma segura com controles de acesso avançados pré requisitos conta back4app certifique se de que você se inscreveu e configurou um novo projeto no back4app consulte back4app quickstart https //www back4app com/docs/get started/new parse app para assistência ambiente swiftui confirme que você tem o xcode instalado e um projeto básico de swiftui criado familiaridade conhecimento básico de swift, swiftui e apis restful será útil antes de começar passo 1 – estabelecendo seu projeto back4app iniciar um novo projeto no back4app acesse seu painel do back4app fazendo login na sua conta selecione “novo app” para começar um novo projeto nomeie seu projeto por exemplo, basic crud app swiftui , e siga as instruções na tela para completar a configuração criar novo projeto uma vez que seu projeto é criado, ele aparecerá no seu painel, pronto para ser configurado para operações de backend passo 2 – elaborando seu esquema de banco de dados definindo seu modelo de dados para este aplicativo crud, você precisa definir várias coleções (classes) abaixo estão exemplos que delineiam coleções chave junto com seus campos e tipos 1\ coleção itens esta coleção armazena detalhes sobre cada entrada campo tipo propósito id objectid chave primária gerada automaticamente título string nome ou título do item descrição string breve explicação sobre o item criado em data timestamp marcando a criação atualizado em data timestamp da última atualização 2\ coleta usuários esta coleção contém credenciais de usuários e detalhes do perfil campo tipo propósito id objectid identificador único gerado automaticamente nome de usuário string nome de usuário exclusivo para login email string endereço de e mail único do usuário hash da senha string senha criptografada para autenticação criado em data timestamp de criação da conta atualizado em data timestamp da última modificação da conta você pode configurar essas classes manualmente através do painel do back4app, criando novas classes e adicionando colunas para cada campo criar nova classe utilize as ferramentas do painel para definir o nome do campo, tipo, valor padrão e status de obrigatoriedade criar coluna aproveitando o agente de ia do back4app o agente de ia do back4app simplifica o processo de geração de esquemas ele pode produzir automaticamente o esquema do seu banco de dados com base em um prompt textual como utilizar o agente de ia localize o agente de ia faça login e navegue até a seção do agente de ia nas configurações do seu projeto envie a descrição do seu esquema insira um prompt detalhado que descreva as coleções e campos desejados revise e implemente após a geração, verifique o esquema e aplique as alterações prompt de exemplo create these collections in my back4app project 1\) collection items \ fields \ id objectid (auto generated) \ title string \ description string \ created at date (auto generated) \ updated at date (auto updated) 2\) collection users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ password hash string \ created at date (auto generated) \ updated at date (auto updated) esse recurso economiza tempo e garante consistência na configuração do seu banco de dados passo 3 – gerenciando dados com a interface de administração visão geral da interface de administração o app de administração do back4app é uma ferramenta sem código que simplifica o gerenciamento de dados sua interface intuitiva de arrastar e soltar permite que você realize operações crud sem esforço ativando a interface de administração vá para o menu “mais” no seu painel do back4app selecione “admin app” e então escolha “habilitar admin app ” configurar credenciais crie seu usuário administrador inicial, que configura os papéis do sistema automaticamente habilitar admin app após a ativação, faça login no admin app para gerenciar suas coleções painel do admin app operações crud na interface de administração criar use a opção “adicionar registro” em qualquer coleção (por exemplo, itens) para adicionar novos dados ler/atualizar clique em um registro para ver detalhes e modificar campos excluir remova registros usando a função de exclusão quando não forem mais necessários esta interface melhora a usabilidade e simplifica as operações diárias de dados passo 4 – integrando swiftui com back4app com seu backend em funcionamento, é hora de conectar seu aplicativo swiftui ao back4app usando chamadas de api rest em swiftui em vez de depender do sdk, usaremos chamadas de api rest para interagir com o back4app a partir do nosso aplicativo swiftui exemplo buscando itens crie uma nova visualização swiftui (por exemplo, itemslistview\ swift ) e adicione o seguinte código import swiftui import combine struct item identifiable, codable { let id string let title string let description string } class itemsviewmodel observableobject { @published var items \[item] = \[] private var cancellables = set\<anycancellable>() func fetchitems() { guard let url = url(string "https //parseapi back4app com/classes/items") else { return } var request = urlrequest(url url) request addvalue("your application id", forhttpheaderfield "x parse application id") request addvalue("your rest api key", forhttpheaderfield "x parse rest api key") urlsession shared datataskpublisher(for request) map { $0 data } decode(type itemsresponse self, decoder jsondecoder()) receive(on dispatchqueue main) sink(receivecompletion { completion in if case let failure(error) = completion { print("error fetching items \\(error)") } }, receivevalue { response in self items = response results }) store(in \&cancellables) } } struct itemsresponse codable { let results \[item] } struct itemslistview view { @stateobject private var viewmodel = itemsviewmodel() var body some view { navigationview { list(viewmodel items) { item in vstack(alignment leading) { text(item title) font( headline) text(item description) font( subheadline) } } navigationtitle("items") onappear { viewmodel fetchitems() } } } } struct itemslistview previews previewprovider { static var previews some view { itemslistview() } } esta visão busca dados do back4app via rest e os exibe em uma lista mais operações de api criando novos itens use urlsession com uma solicitação post para adicionar novas entradas atualizando itens implemente solicitações put para modificar dados existentes excluindo itens utilize solicitações delete para remover dados integre essas operações de rede dentro de suas visualizações swiftui conforme necessário passo 5 – protegendo seu backend implementando controles de acesso proteja seus dados configurando listas de controle de acesso (acls) para seus objetos por exemplo, para criar um registro de item seguro func createsecureitem(title string, description string, ownerid string) { guard let url = url(string "https //parseapi back4app com/classes/items") else { return } var request = urlrequest(url url) request httpmethod = "post" request addvalue("your application id", forhttpheaderfield "x parse application id") request addvalue("your rest api key", forhttpheaderfield "x parse rest api key") request addvalue("application/json", forhttpheaderfield "content type") let itemdata \[string any] = \[ "title" title, "description" description, "acl" \[ ownerid \["read" true, "write" true], " " \["read" false, "write" false] ] ] request httpbody = try? jsonserialization data(withjsonobject itemdata) urlsession shared datatask(with request) { data, response, error in if let error = error { print("error creating item \\(error)") } } resume() } configurando permissões em nível de classe dentro do seu painel do back4app, ajuste as permissões em nível de classe (clps) para cada coleção para impor quem pode ler ou escrever dados por padrão passo 6 – implementando autenticação de usuário estabelecendo contas de usuário o back4app utiliza uma classe de usuário para gerenciar a autenticação no seu aplicativo swiftui, gerencie o registro e o login através de chamadas à api rest exemplo registro de usuário func signupuser(username string, password string, email string) { guard let url = url(string "https //parseapi back4app com/users") else { return } var request = urlrequest(url url) request httpmethod = "post" request addvalue("your application id", forhttpheaderfield "x parse application id") request addvalue("your rest api key", forhttpheaderfield "x parse rest api key") request addvalue("application/json", forhttpheaderfield "content type") let userdata \[string any] = \[ "username" username, "password" password, "email" email ] request httpbody = try? jsonserialization data(withjsonobject userdata) urlsession shared datatask(with request) { data, response, error in if let error = error { print("sign up error \\(error)") } else { print("user registered successfully") } } resume() } essa abordagem pode ser estendida para login de usuário e gerenciamento de sessão passo 7 – conclusão e melhorias futuras ótimo trabalho! você construiu com sucesso uma aplicação crud básica usando swiftui e back4app você criou um projeto intitulado basic crud app swiftui , projetou seu esquema de banco de dados para itens e usuários, e conectou seu frontend swiftui ao backend via chamadas de api rest além disso, você aprendeu como proteger seus dados com acls e implementar autenticação de usuário o que vem a seguir? expanda sua ui melhore sua interface swiftui com visualizações detalhadas, animações e elementos interativos recursos avançados incorpore lógica adicional de backend, como funções em nuvem ou atualizações de dados em tempo real explore mais visite a documentação do back4app https //www back4app com/docs para mais insights sobre como otimizar seu aplicativo e integrar funcionalidades mais avançadas seguindo este guia, você agora possui as habilidades essenciais para criar um backend crud robusto e escalável para suas aplicações swiftui usando o back4app aproveite para construir e inovar!