Vai al contenuto principale

Come funziona

Le app con sincronizzazione in tempo reale mantengono un database locale sul dispositivo. Le letture sono istantanee (locali), le scritture si accodano localmente e tutto si sincronizza al server in background.
Scrittura utente -> Database locale -> Coda upload -> Server -> Postgres
                                                                  |
Lettura utente  <- Database locale <- Replica sincronizzazione <-+
Il risultato: letture istantanee, niente spinner di caricamento e un’app che continua a funzionare con connessioni scadenti o offline.

Cosa configura l’AI

Chiedi all’AI di creare un’app in tempo reale. Riutilizza un database attivo adatto se esiste; altrimenti crea un database, attiva il servizio di sincronizzazione e costruisce un’app in due parti:
  • UI - app client con database locale, query live e connettore di sincronizzazione
  • Process - endpoint token, rotta upload sincronizzazione e migration runner
Le credenziali sono archiviate nel vault. L’AI collega le variabili d’ambiente del database al componente process con lo strumento db. Prima che l’app sia considerata pronta, il database deve mostrare sync: ready. Se la sincronizzazione non è pronta, l’app potrebbe renderizzarsi ma i dati in tempo reale tra dispositivi non funzioneranno.

Regole pratiche

  • Scrivi localmente per primo. Lascia che la sincronizzazione carichi in background.
  • Mostra stati vuoti, non spinner di caricamento, una volta che i dati locali esistono.
  • Mantieni lo stato visibile all’utente in tabelle sincronizzate in modo che sopravviva agli aggiornamenti e all’uso offline.
  • Raggruppa le scritture locali correlate insieme in modo che l’UI si aggiorni in un unico passaggio.
  • Verifica lo stato di sincronizzazione prima di considerare un’app in tempo reale completata.

Shell app offline

I template UI possono includere una shell app offline in modo che l’app possa riaprirsi dopo la prima visita senza una rete. La shell app è l’HTML statico, JS, CSS e icone.
  • Shell offline consente all’app di aprirsi senza una rete
  • Sincronizzazione mantiene i dati dell’app utilizzabili mentre offline
Insieme: l’app si apre senza una rete, mostra i dati sincronizzati più recenti, accoda le nuove scritture e si sincronizza quando la connessione ritorna.

Quando usare la sincronizzazione in tempo reale

AdattoEccessivo
App di gestione attività e notePagine di marketing statiche
Strumenti collaborativiInvii di moduli una tantum
App da campo con connettività deboleSiti brochure di sola lettura
Qualsiasi cosa che dovrebbe sembrare istantaneaApp senza valore offline

Variabili di piattaforma

Kazzle inietta automaticamente un piccolo set di variabili d’ambiente in ogni processo app. Queste sono separate dai tuoi segreti vault.
VariabileCos’è
PORTLa porta su cui il tuo processo deve ascoltare
HOSTL’hostname a cui associarsi (tipicamente 0.0.0.0)
KAZZLE_API_URLURL base utilizzato dagli helper runtime di Kazzle
KAZZLE_APP_COMPONENT_<NAME>_URLURL runtime di un componente sibling

URL sibling

Quando un’app ha più componenti (ad es. un’UI web e un processo server), Kazzle può iniettare URL per componenti sibling:
# Nella parte "web":
KAZZLE_APP_COMPONENT_SERVER_URL=http://localhost:3001

# Nella parte "server":
KAZZLE_APP_COMPONENT_WEB_URL=http://localhost:3000
Quando un sibling è già distribuito, il valore iniettato punta a quel componente distribuito. Altrimenti punta all’indirizzo di sviluppo corrente per quel sibling.