Le applicazioni per dispositivi mobili possono utilizzare un'architettura serverless?

Le applicazioni mobili ibride, ovvero quelle che si comportano come applicazioni mobili native, possono essere create con un backend serverless per aumentarne la scalabilità, ridurre i costi ed eseguire codice da qualsiasi posizione di hosting.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Capire la differenza tra app ibride e app native
  • Capire come le app ibride possono essere create con un'architettura serverless
  • Capire i vantaggi dell'utilizzo di un backend serverless

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Le applicazioni per dispositivi mobili possono utilizzare un'architettura serverless?

L'architettura serverless può essere utilizzata per lo sviluppo di applicazioni per dispositivi mobili, oltre che per applicazioni web. Le app ibride con un backend serverless consentono agli sviluppatori di incorporare i vantaggi del serverless computing, rilasciando applicazioni che si comportano come native su quasi tutti gli smartphone o tablet. Le app per dispositivi mobili serverless sono in grado di scalare rapidamente e agevolmente di pari passo con la crescita dell'utenza.

Diagramma di un app mobile con backend serverless

Che cos'è un'app mobile ibrida?

Le app mobili ibride e le app mobili native sono come due auto che si assomigliano, hanno gli stessi interni e si guidano in modo simile, ma con motori molto diversi sotto il cofano. Un'app nativa è creata specificamente per un determinato tipo di dispositivo e sistema operativo, e la sua logica gira sul dispositivo stesso.

Un'app ibrida è un'applicazione web creata utilizzando HTML, CSS e JavaScript che viene eseguita all'interno di un cosiddetto “wrapper nativo” in modo che possa funzionare come un'app mobile nativa su una varietà di dispositivi. A differenza delle normali applicazioni web, le app ibride possono accedere a funzionalità specifiche di una piattaforma, tra cui l'hardware di un dato dispositivo e la funzionalità di notifica push propria di un certo tipo di dispositivo. Queste app ibride possono essere scaricate da App Store o Google Play e vengono installate come app native, sebbene spesso richiedano meno spazio per il download e l'installazione, dato che la maggior parte o tutta la logica è ospitata nel cloud.

Le app ibride sono diventate sempre più popolari negli ultimi anni, poiché le preoccupazioni relative alle prestazioni sono state superate grazie ai progressi tecnologici; ad esempio, Uber, Instagram e Twitter sono tutte app ibride. Gli sviluppatori a volte preferiscono utilizzare un'architettura ibrida, anziché creare applicazioni mobili native, per evitare che l'app debba essere riprogrammata in una miriade di linguaggi specifici per ciascuna piattaforma e dispositivo. Come prevedibile, la creazione di un'unica app che funzioni su più dispositivi in genere consente di risparmiare tempo sia per lo sviluppo che per l'assistenza del prodotto.

Come funziona un'applicazione mobile con un backend serverless?

Con le app per dispositivi mobili ibridi, l'elaborazione avviene nel cloud, non sul dispositivo. Tutti i processi di elaborazione dell'app ospitati nel cloud possono essere serverless, proprio come un'applicazione omologa; l'unica grande differenza tra un'app web serverless e un'app mobile ibrida serverless è il wrapper nativo* sul frontend.

Come accade per una applicazione web serverless, il codice è ospitato da un fornitore serverless che si occupa di gestire interamente il backend. L'applicazione è suddivisa in parti più piccole, chiamate funzioni, e queste funzioni non risiedono su server specifici. Ogni funzione viene eseguita in risposta a degli eventi di attivazione, e l'infrastruttura del fornitore avvia nuove istanze di funzioni in base alle necessità. Ad esempio, se un utente tocca il pulsante "Acquista" all'interno di un'applicazione dotata di backend serverless, questo può attivare una funzione backend o una serie di funzioni che si avviano, registrano la transazione e avviano il processo di consegna di ciò che l'utente ha acquistato.

Quali sono i vantaggi di sviluppare un'app mobile con un backend serverless?

Le app mobili serverless offrono gli stessi vantaggi offerti dalla creazione di una tipica applicazione web con un backend serverless:

  • Scalabilità: le app serverless sono scalabili automaticamente
  • Minori costi indiretti: il provider gestisce l'intero backend
  • Aggiornamenti rapidi: gli sviluppatori possono aggiornare le funzioni una alla volta invece di aggiornare un'intera applicazione in blocco, e non è necessario attendere che gli utenti installino gli aggiornamenti
  • Pagamento a consumo: gli sviluppatori pagano solo la potenza di calcolo utilizzata dall'applicazione, e questo riduce le spese correnti
  • Il codice può girare ovunque: per ridurre la latenza, il codice può essere eseguito su una rete perimetrale.

Per ulteriori informazioni sulle applicazioni serverless create con JavaScript, consulta Come funziona JavaScript serverless?

*Come funziona un wrapper nativo?

Le app ibride possono funzionare come app native sfruttando il WebView del dispositivo. Un WebView è un browser interno al dispositivo che visualizza l'applicazione come farebbe un browser, offrendo agli sviluppatori più flessibilità per personalizzare l'aspetto della propria app rispetto a un normale browser. Inoltre, la maggior parte dei WebView consente all'applicazione di accedere alle funzionalità hardware del dispositivo tramite un'API.

Ad esempio, quando un utente apre Instagram, l'app dà la sensazione di essere un'app nativa in esecuzione sul dispositivo. Ciò che avviene in realtà è che il WebView del dispositivo esegue il rendering delle pagine web generate da Instagram. Il feed di immagini mostrato agli utenti quando aprono l'app per la prima volta è una pagina web, così come lo sono le pagine successive, anche se l'impressione è che siano parte di un'app nativa. Nonostante non sia un'app nativa, Instagram è anche in grado di accedere alla fotocamera del dispositivo e alle foto in memoria, e può inviare notifiche push.