Appo

Panoramica App Nativa

Come Appo trasforma la tua web app in un'app mobile nativa.

Come Funziona

Un'app può essere creata dalla CLI (appo new), dal server MCP, dalla dashboard Appo o da un plugin di piattaforma. Appo genera un'app mobile nativa che carica il sito web all'interno di una WebView. Il livello nativo collega le funzionalità del dispositivo (notifiche push, biometria, fotocamera, posizione e altre) al codice JavaScript dell'app attraverso un protocollo basato su messaggi.

L'applicazione si scrive come una web app standard, con l'SDK Appo dove servono funzionalità native. Il wrapper nativo gestisce gli aspetti specifici della piattaforma: permessi, accesso all'hardware, pacchettizzazione per gli store e integrazione dell'UI nativa.

Architettura

┌─────────────────────────────────────────┐
│            La tua Web App               │
│                                          │
│  appo.push.requestPermission()           │
│         │                                │
│         ▼                                │
│  ┌──────────────────────────────┐       │
│  │       @appolabs/sdk SDK     │       │
│  │  postMessage({ type, id })   │       │
│  └──────────────┬───────────────┘       │
└─────────────────┼────────────────────────┘
                  │  window.ReactNativeWebView.postMessage()

┌─────────────────────────────────────────┐
│    App Nativa (gestita da Appo)          │
│                                          │
│  WebView.onMessage(event)                │
│         │                                │
│         ▼                                │
│  ┌──────────────────────────────┐       │
│  │     Message Dispatcher        │       │
│  │  type → Feature Handler       │       │
│  └──────────────┬───────────────┘       │
│                 │                        │
│    ┌────────────┼────────────┐          │
│    ▼            ▼            ▼          │
│  expo-      expo-        expo-          │
│  notifications  location   haptics ...  │
│                                          │
│  Risposta inviata tramite injectJavaScript │
└─────────────────────────────────────────┘

Flusso dei Messaggi

  1. La tua web app invoca un metodo dell'SDK (es. appo.push.requestPermission()).
  2. L'SDK serializza la richiesta come messaggio JSON con un ID univoco e lo invia tramite postMessage.
  3. La WebView nativa riceve il messaggio attraverso il suo handler onMessage.
  4. Il message dispatcher instrada la richiesta al gestore di funzionalità appropriato in base al tipo del messaggio.
  5. Il gestore invoca l'API nativa corrispondente.
  6. Il risultato viene inviato alla WebView tramite injectJavaScript, associato all'ID della richiesta originale.
  7. L'SDK risolve la Promise in sospeso con i dati della risposta.

Per la specifica completa del protocollo dei messaggi, vedi Architettura.

Sezioni

In questa pagina