Quickstarters
CRUD Samples
Come sviluppare un'applicazione CRUD di base con SwiftUI?
29 min
panoramica in questa guida, imparerai come sviluppare un'applicazione crud (crea, leggi, aggiorna e cancella) completamente funzionale utilizzando swiftui swiftui è un framework per costruire interfacce utente per ios, ipados, watchos, tvos, visionos e macos utilizzeremo back4app come servizio backend per gestire i nostri dati questo tutorial ti guiderà nella configurazione del tuo progetto back4app, nella progettazione dello schema del database, nell'integrazione con swiftui utilizzando chiamate api e nella sicurezza del tuo backend cosa imparerai come costruire un'app crud che gestisce le operazioni sui dati senza problemi tecniche per progettare un backend robusto e scalabile metodi per collegare un'interfaccia swiftui con back4app utilizzando api rest come gestire i dati in modo sicuro con controlli di accesso avanzati requisiti preliminari account back4app assicurati di esserti registrato e di aver impostato un nuovo progetto su back4app fai riferimento a back4app quickstart https //www back4app com/docs/get started/new parse app per assistenza ambiente swiftui conferma di avere xcode installato e un progetto swiftui di base creato familiarità una conoscenza di base di swift, swiftui e api restful sarà utile prima di iniziare passo 1 – creazione del tuo progetto back4app iniziare un nuovo progetto su back4app accedi al tuo dashboard di back4app effettuando il login nel tuo account seleziona “nuova app” per iniziare un nuovo progetto dai un nome al tuo progetto ad esempio, basic crud app swiftui , e segui le istruzioni sullo schermo per completare la configurazione crea nuovo progetto una volta creato il tuo progetto, apparirà nel tuo dashboard, pronto per essere configurato per le operazioni di backend passo 2 – creazione del tuo schema di database definire il tuo modello di dati per questa applicazione crud, è necessario definire diverse collezioni (classi) di seguito sono riportati esempi che delineano le collezioni chiave insieme ai loro campi e tipi 1\ collezione articoli questa collezione memorizza i dettagli su ogni voce campo tipo scopo id objectid chiave primaria generata automaticamente titolo stringa nome o titolo dell'elemento descrizione stringa breve spiegazione sull'oggetto creato il data timestamp che segna la creazione aggiornato a data timestamp dell'ultimo aggiornamento 2\ raccolta utenti questa raccolta contiene le credenziali degli utenti e i dettagli del profilo campo tipo scopo id objectid identificatore unico generato automaticamente nome utente stringa nome utente unico per il login email stringa indirizzo email unico dell'utente hash password stringa password crittografata per l'autenticazione creato il data timestamp di creazione dell'account aggiornato a data timestamp dell'ultima modifica dell'account puoi configurare queste classi manualmente tramite il dashboard di back4app creando nuove classi e aggiungendo colonne per ciascun campo crea nuova classe utilizza gli strumenti del dashboard per definire il nome del campo, il tipo, il valore predefinito e lo stato richiesto crea colonna sfruttare l'agente ai di back4app l'agente ai di back4app semplifica il processo di generazione dello schema può produrre automaticamente il tuo schema di database basato su un prompt testuale come utilizzare l'agente ai trova l'agente ai accedi e naviga nella sezione dell'agente ai nelle impostazioni del tuo progetto invia la descrizione del tuo schema inserisci un prompt dettagliato che delinei le collezioni e i campi desiderati rivedi e implementa dopo la generazione, verifica lo schema e applica le modifiche esempio di prompt 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) questa funzione fa risparmiare tempo e garantisce coerenza nella configurazione del tuo database passo 3 – gestire i dati con l'interfaccia di amministrazione panoramica dell'interfaccia di amministrazione l'app admin di back4app è uno strumento no code che semplifica la gestione dei dati la sua interfaccia intuitiva drag and drop ti consente di eseguire operazioni crud senza sforzo attivazione dell'interfaccia di amministrazione vai al menu “altro” nel tuo dashboard di back4app seleziona “admin app” e poi scegli “abilita admin app ” imposta le credenziali crea il tuo utente amministratore iniziale, che configura automaticamente i ruoli di sistema abilita admin app dopo l'attivazione, accedi all'admin app per gestire le tue collezioni dashboard admin app operazioni crud nell'interfaccia di amministrazione crea usa l'opzione “aggiungi record” in qualsiasi collezione (ad es , articoli) per aggiungere nuovi dati leggi/aggiorna clicca su un record per visualizzare i dettagli e modificare i campi elimina rimuovi i record utilizzando la funzione di eliminazione quando non sono più necessari questa interfaccia migliora l'usabilità e semplifica le operazioni quotidiane sui dati passo 4 – integrazione di swiftui con back4app con il tuo backend in atto, è tempo di collegare la tua applicazione swiftui a back4app utilizzare le chiamate api rest in swiftui invece di fare affidamento sul sdk, utilizzeremo le chiamate api rest per interagire con back4app dalla nostra app swiftui esempio recupero degli elementi crea una nuova vista swiftui (ad esempio, itemslistview\ swift ) e aggiungi il seguente codice 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() } } questa vista recupera dati da back4app tramite rest e li visualizza in un elenco ulteriori operazioni api creazione di nuovi elementi usa urlsession con una richiesta post per aggiungere nuove voci aggiornamento degli elementi implementa richieste put per modificare i dati esistenti cancellazione degli elementi utilizza richieste delete per rimuovere i dati integra queste operazioni di rete all'interno delle tue viste swiftui secondo necessità passo 5 – sicurezza del tuo backend implementazione dei controlli di accesso proteggi i tuoi dati impostando le liste di controllo degli accessi (acl) per i tuoi oggetti ad esempio, per creare un record di un elemento sicuro 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() } configurazione dei permessi a livello di classe all'interno del tuo dashboard di back4app, regola i permessi a livello di classe (clp) per ogni collezione per imporre chi può leggere o scrivere dati per impostazione predefinita passo 6 – implementazione dell'autenticazione utente creazione degli account utente back4app sfrutta una classe utente per gestire l'autenticazione nella tua app swiftui, gestisci la registrazione e il login tramite chiamate api rest esempio registrazione utente 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() } questo approccio può essere esteso per il login degli utenti e la gestione delle sessioni passo 7 – conclusione e miglioramenti futuri ottimo lavoro! hai costruito con successo una base di applicazione crud utilizzando swiftui e back4app hai creato un progetto intitolato basic crud app swiftui , progettato il tuo schema di database per articoli e utenti, e collegato il tuo frontend swiftui al backend tramite chiamate api rest inoltre, hai imparato come proteggere i tuoi dati con acl e implementare l'autenticazione degli utenti cosa c'è dopo? espandi la tua ui migliora la tua interfaccia swiftui con viste dettagliate, animazioni ed elementi interattivi funzionalità avanzate incorpora logica backend aggiuntiva come funzioni cloud o aggiornamenti di dati in tempo reale esplora di più visita la documentazione di back4app https //www back4app com/docs per ulteriori approfondimenti su come ottimizzare la tua app e integrare funzionalità più avanzate seguendo questa guida, ora hai le competenze essenziali per creare un backend crud robusto e scalabile per le tue applicazioni swiftui utilizzando back4app buon divertimento a costruire e innovare!