Modelli Flutter

Costruisci un'app di e-commerce con Flutter, Back4App e integrazione di Stripe tramite Cloud Code

47min

Introduzione

Sviluppare un'app di e-commerce comporta molteplici componenti, tra cui elenchi di prodotti, funzionalità del carrello, elaborazione dei pagamenti sicura, tracciamento degli ordini e recensioni degli utenti. Combinare il potente toolkit UI di Flutter con i servizi backend scalabili di Back4App semplifica il processo di sviluppo. Inoltre, integrare Stripe per l'elaborazione dei pagamenti tramite Back4App Cloud Code consente una gestione delle transazioni sicura e professionale.

In questo tutorial, costruirai un'app di e-commerce con le seguenti funzionalità:

  • Elenchi di Prodotti: Visualizza prodotti con immagini, descrizioni e prezzi.
  • Carrello della Spesa: Aggiungi e rimuovi prodotti dal carrello.
  • Account Utente: Gestisci profili e indirizzi degli utenti.
  • Checkout Sicuro: Elabora i pagamenti in modo sicuro utilizzando Stripe tramite Back4App Cloud Code.
  • Tracciamento Ordini: Traccia lo stato e la cronologia degli ordini.
  • Recensioni e Valutazioni: Consenti agli utenti di inviare recensioni e valutazioni.

Prerequisiti

Per seguire questo tutorial, avrai bisogno di:

  • Flutter SDK installato sul tuo computer. Segui la guida all'installazione di Flutter.
  • Conoscenze di base di Flutter e Dart.
  • Un IDE o editor di testo come Visual Studio Code o Android Studio.
  • Un account Back4App. Registrati su Back4App.
  • Account Stripe. Registrati su Stripe per ottenere le chiavi API.
  • Node.js e npm installati per lo sviluppo del Cloud Code.



Passo 1 – Configurazione del Progetto Flutter

1.1. Crea un Nuovo Progetto Flutter

Apri il tuo terminale e esegui:

Bash


Naviga nella directory del progetto:

Bash


1.2. Aggiungi Dipendenze

Apri pubspec.yaml e aggiungi le seguenti dipendenze:

YAML


Esegui flutter pub get per installare i pacchetti.

Nota:

  • parse_server_sdk_flutter per l'integrazione con Back4App.
  • provider per la gestione dello stato.
  • cached_network_image per il caricamento efficiente delle immagini.
  • flutter_stripe per l'integrazione di Stripe lato client.
  • uuid per generare identificatori unici.

Passo 2 – Configurazione di Back4App

2.1. Crea una Nuova Applicazione Back4App

  1. Accedi al tuo dashboard di Back4App.
  2. Clicca su "Crea nuova App".
  3. Inserisci "EcommerceApp" come nome dell'applicazione e clicca su "Crea".

2.2. Configura i Modelli di Dati

Dobbiamo creare diverse classi in Back4App:

  • Prodotto
  • Utente (Classe integrata)
  • Ordine
  • OrdineArticolo
  • Recensione

2.2.1. Classe Prodotto

  1. Naviga alla "Database" sezione.
  2. Clicca su "Crea una classe".
  3. Seleziona "Personalizzato" e inserisci "Prodotto" come nome della classe.
  4. Aggiungi le seguenti colonne:
    • nome: Stringa
    • descrizione: Stringa
    • prezzo: Numero
    • immagine: File
    • categoria: Stringa
    • inventario: Numero

Crea un "OrderItem" classe con le seguenti colonne:

  • ordine: Puntatore
  • prodotto: Puntatore
  • quantità: Numero
  • prezzo: Numero

2.2.4. Classe Recensione

Crea una "Review" classe con le seguenti colonne:

  • prodotto: Puntatore
  • utente: Puntatore<_Utente>
  • valutazione: Numero
  • commento: Stringa

2.3. Ottenere le credenziali dell'applicazione

  1. Naviga a Impostazioni App > Sicurezza e Chiavi.
  2. Annota il tuo ID Applicazione e Chiave Client.

Passo 3 – Implementazione della gestione dei prodotti

3.1. Inizializzazione di Parse in Flutter

Apri lib/main.dart e modificalo:

Dart


Sostituisci 'YOUR_APPLICATION_ID' e 'YOUR_CLIENT_KEY' con le tue credenziali di Back4App.

3.2. Creazione del modello di prodotto

Crea una directory models sotto lib e aggiungi product.dart:

Dart


3.3. Implementazione del Servizio Prodotto

Crea una directory services sotto lib e aggiungi product_service.dart:

Dart


3.4. Creare la Schermata Home

Crea screens directory sotto lib e aggiungi home_screen.dart:

Dart


3.5. Schermata Dettagli Prodotto

Crea product_detail_screen.dart sotto lib/screens/:

Dart


Passo 4 – Implementazione degli Account Utente

4.1. Servizio di Autenticazione

Aggiungi auth_service.dart sotto lib/services/:

Dart


4.2. Schermate di Autenticazione

Crea login_screen.dart e signup_screen.dart sotto lib/screens/.

Schermata di accesso:

Dart


Schermata di registrazione:

Dart


4.3. Aggiorna Main per includere AuthService

In main.dart, avvolgi il MaterialApp con MultiProvider:

Dart


4.4. Reindirizzamento Basato sullo Stato di Autenticazione

Modifica main.dart per controllare lo stato di autenticazione:

Dart


Passo 5 – Funzionalità del Carrello

5.1. Crea Servizio Carrello

Aggiungi cart_service.dart sotto lib/services/:

Dart


5.2. Crea Schermata Carrello

Aggiungi cart_screen.dart sotto lib/screens/:

Dart


Passaggio 6 – Checkout Sicuro con Integrazione Stripe tramite Cloud Code

6.1. Configura l'Account Stripe

  1. Iscriviti per un account Stripe.
  2. Ottieni la tua Chiave Pubblicabile e Chiave Segreta dal Dashboard di Stripe sotto Sviluppatori > Chiavi API.

6.2. Installa il SDK di Stripe nel Cloud Code

Back4App supporta le funzioni di Cloud Code scritte in JavaScript. Scriveremo funzioni di Cloud Code per gestire l'elaborazione dei pagamenti.

6.2.1. Crea un Progetto di Cloud Code

  1. Nel dashboard della tua app Back4App, vai a Impostazioni App > Funzioni Cloud.
  2. Clicca "Modifica codice" per aprire l'editor di Cloud Code.

6.2.2. Inizializza npm e Installa il Pacchetto Stripe

Nel terminale di Cloud Code (fornito nell'editor), esegui:

Bash


Nota: Il Cloud Code di Back4App utilizza la versione 14.x di Node.js, quindi assicurati della compatibilità.

6.3. Crea Funzione Cloud per l'Intento di Pagamento

Crea o modifica main.js nell'editor del Cloud Code:

JS


Sostituisci 'YOUR_STRIPE_SECRET_KEY' con la tua chiave segreta Stripe effettiva.

Nota di Sicurezza: Non esporre mai la tua chiave segreta sul lato client. Tienila al sicuro nel Cloud Code.

6.4. Distribuisci il Cloud Code

Clicca "Distribuisci" nell'editor del Cloud Code per distribuire le tue funzioni.

6.5. Implementare il pagamento in Flutter

6.5.1. Inizializzare Stripe in Flutter

In main.dart, dopo Parse().initialize, aggiungi:

Dart


Sostituisci 'YOUR_STRIPE_PUBLISHABLE_KEY' con la tua chiave pubblicabile Stripe.

6.5.2. Creare la schermata di checkout

Aggiungi checkout_screen.dart sotto lib/screens/:

Dart


6.5.3. Gestire la conferma del pagamento

Crea order_confirmation_screen.dart sotto lib/screens/:

Dart


6.6. Salvataggio dell'Ordine su Back4App

Modifica il _processPayment metodo per salvare i dettagli dell'ordine:

Dart


Passo 7 – Tracciamento dell'Ordine

7.1. Crea Servizio Ordine

Aggiungi order_service.dart sotto lib/services/:

Dart


Passo 7 – Tracciamento dell'Ordine

7.2. Crea Modello Ordine

Aggiungi order.dart sotto lib/models/:

Dart


7.3. Crea Schermata Ordini

Aggiungi orders_screen.dart sotto lib/screens/:

Dart


Passo 8 – Recensioni e Valutazioni

8.1. Crea Servizio Recensioni

Aggiungi review_service.dart sotto lib/services/:

Dart


8.2. Crea il modello di recensione

Aggiungi review.dart sotto lib/models/:

Dart


8.3. Aggiorna la schermata dei dettagli del prodotto

In product_detail_screen.dart, aggiungi una sezione per visualizzare e inviare recensioni.

Dart


Conclusione

In questo tutorial completo, hai costruito un'app di e-commerce utilizzando Flutter e Back4App, integrata con Stripe per l'elaborazione sicura dei pagamenti tramite Cloud Code. Hai implementato funzionalità chiave come elenchi di prodotti, funzionalità del carrello, autenticazione degli utenti, tracciamento degli ordini e recensioni.

Punti Chiave

  • Integrazione con Back4App: Semplifica la gestione del backend per la tua app Flutter.
  • Integrazione di Stripe tramite Cloud Code: Elabora i pagamenti in modo sicuro senza esporre chiavi sensibili.
  • Architettura Modulare: Separare servizi e modelli migliora la manutenibilità.

Prossimi Passi

  • Migliora la Sicurezza: Implementa una corretta gestione degli errori e validazione degli input.
  • Miglioramenti UI/UX: Affina l'interfaccia utente per una migliore esperienza utente.
  • Gestione dell'Inventario: Aggiorna l'inventario dei prodotti al momento dell'acquisto.
  • Notifiche Email: Invia email di conferma dell'ordine agli utenti.
  • Pannello di Amministrazione: Crea un'interfaccia di amministrazione per gestire prodotti e ordini.

Risorse Aggiuntive

Buon Codice!