App mobile o web app: come scegliere la soluzione giusta per la tua azienda
Tre opzioni tecniche, una sola scelta da fare. Ecco come valutare app nativa, web app e PWA senza perdere tempo e denaro.
Come funzionano gli OTA update con Expo EAS Update: aggiorna la tua app React Native in produzione in minuti, senza review Apple o Google Play. Guida pratica.
La review di Apple dura in media 1-3 giorni, ma può arrivare a una settimana se l'app viene selezionata per revisione manuale o se viene rifiutata alla prima submission. Per un bug critico in produzione, aspettare 3-7 giorni non è un'opzione. Gli OTA update risolvono esattamente questo problema.
OTA sta per Over-The-Air. In un'app React Native, il codice applicativo è diviso in due parti: il codice nativo (compilato in binario, incluso nel file IPA o APK distribuito agli store) e il bundle JavaScript (il codice che scrivi ogni giorno con React Native, che viene interpretato a runtime dal motore JavaScript).
Gli OTA update funzionano aggiornando solo il bundle JavaScript, senza toccare il codice nativo. Questo significa che puoi deployare una nuova versione del bundle sui server di Expo, e la prossima volta che l'app viene aperta, scarica e applica automaticamente l'aggiornamento.
Il risultato: da una push su Git a un fix in produzione in meno di 10 minuti, senza passare da nessuno store.
Expo Application Services (EAS) è la piattaforma cloud di Expo che include build, distribuzione e aggiornamenti. EAS Update è il servizio specifico per gli OTA.
Flusso tecnico:
eas update --branch production --message "Fix crash home screen" nel tuo terminaleIl comportamento di quando applicare l'update è configurabile: puoi scegliere di applicarlo alla prossima apertura, forzarlo immediatamente (con un reload dell'app), o mostrare un avviso all'utente.
Puoi aggiornare via OTA:
Non puoi aggiornare via OTA:
react-native-camera, react-native-maps, ecc.)app.json o Info.plist/AndroidManifest.xmlIl modo per verificare se un aggiornamento può essere distribuito via OTA: se hai cambiato solo file .ts, .tsx, .js, .json di configurazione applicativa e asset statici, probabilmente è OTA-compatibile. Se hai modificato package.json aggiungendo dipendenze native, serve un nuovo build degli store.
# Installa EAS CLI
npm install -g eas-cli
# Login al tuo account Expo
eas login
# Configura EAS nel progetto
eas update:configure
Nel file eas.json, configura i profili di update:
{
"cli": {
"version": ">= 7.0.0"
},
"build": {
"production": {
"channel": "production"
},
"preview": {
"channel": "preview"
}
}
}
In app.json, abilita gli update:
{
"expo": {
"updates": {
"url": "https://u.expo.dev/[your-project-id]",
"checkAutomatically": "ON_LOAD",
"fallbackToCacheTimeout": 0
},
"runtimeVersion": {
"policy": "appVersion"
}
}
}
Il runtimeVersion è cruciale: definisce la compatibilità tra bundle OTA e versione dell'app. Un bundle compilato per runtime version 1.0.0 viene applicato solo alle app con lo stesso runtime, evitando crash da incompatibilità.
Hotfix urgenti: un crash che colpisce il 5% degli utenti su un flusso specifico. Identificato dal crash reporting (Sentry, Bugsnag), fix commesso, OTA deployato in 10 minuti.
Aggiornamento contenuti: il marketing ha bisogno di cambiare il testo di una promozione, aggiornare le immagini di un banner o modificare i valori di un form. Nessuna review necessaria.
Feature flag rollout: la nuova funzionalità è già nel codice ma nascosta da un flag. Attivare il flag via OTA consente un rollout graduale (prima al 5% degli utenti, poi al 100%) senza build separati.
A/B testing rapido: varianti UI testate via OTA su branch separati, con analytics per misurare la conversione prima di decidere quale tenere.
Gli OTA update non eliminano la necessità di rilasci sugli store: ogni nuova dipendenza nativa, ogni cambio di permessi, ogni aggiornamento significativo delle funzionalità richiede comunque un ciclo di review. Ma per tutto il resto, EAS Update è uno dei vantaggi competitivi più concreti dello stack React Native + Expo rispetto allo sviluppo nativo tradizionale.
Tag
Domande frequenti
Apple permette gli OTA update?
Sì, con limitazioni precise. Apple consente aggiornamenti OTA del codice JavaScript (bundle) purché non cambino le funzionalità principali dell'app o aggiungano feature significative che avrebbero richiesto una review. In pratica: fix di bug, aggiornamento testi, piccole modifiche UI e correzioni di logica sono permessi. Aggiungere un intero flusso nuovo o cambiare la natura dell'app viola le linee guida. Expo EAS Update è costruito per rispettare questi limiti.
Gli OTA update funzionano anche offline?
No: per ricevere un aggiornamento OTA l'app deve essere connessa a internet all'avvio. Se l'utente è offline, l'app continua a usare l'ultima versione del bundle disponibile localmente. Il download avviene in background: tipicamente l'utente vede l'aggiornamento alla seconda apertura dell'app dopo il deploy, non alla prima.
EAS Update è gratuito?
Expo EAS ha un piano gratuito con 1.000 update al mese e 1 GB di banda. Per app con più utenti o aggiornamenti frequenti, i piani a pagamento partono da 29$/mese (Production) con 10.000 update/mese. Per la maggior parte delle app B2B con basi utenti limitate, il piano gratuito è sufficiente per mesi o anni.
Continua a leggere
Tre opzioni tecniche, una sola scelta da fare. Ecco come valutare app nativa, web app e PWA senza perdere tempo e denaro.
React Native o Flutter? Un confronto onesto su performance, developer experience, ecosystem e disponibilità di talenti in Italia per aiutarti a scegliere.
Nessuna risposta vaga: ecco le fasce di prezzo reali, i fattori che fanno lievitare i costi e le voci che quasi nessuno considera nel budget iniziale.