Di recente nella community degli sviluppatori software si parla spesso della differenze tra applicazioni native e Progressive Web App. Le PWA si presentano come un ibrido tra le normali pagine Internet e le applicazioni mobili, cercando di combinare le features presenti nei moderni browser con i vantaggi dell’utilizzo in mobilità. Appena avviate, tali applicazioni si comportano come dei normali siti Web e, progressivamente, assumono le caratteristiche di un’applicazione nativa, integrandosi col sistema.
Le applicazioni native invece sono dei software realizzati per una determinata piattaforma, includono dunque codice che sfrutta librerie o API presenti in modo nativo su un sistema. Di base sia le progressive Web app che le applicazioni native hanno svantaggi e vantaggi. Le applicazioni native sfruttano infatti tutte le caratteristiche peculiari di un determinato device o di un sistema operativo, sono quindi potenzialmente più performanti delle progressive Web app e possono interagire con le varie applicazioni del sistema senza bisogno di accorgimenti particolari.
Tuttavia il loro codice sorgente può essere compilato facilmente solo su una determinata piattaforma, e gli sviluppatori devono essere specializzati, o comunque necessitano di una particolare esperienza per poter sfruttare il linguaggio di programmazione di riferimento per un sistema o un device. Questo rende lo sviluppo più lento e più costoso a lungo termine.
Le Progressive Web App, invece, sono di base dei siti Web ottimizzati per comportarsi come un'applicazione. Essendo sviluppati tramite tecnologie Web sono completamente multipiattaforma e sono dunque molto più semplici da gestire, distribuire, sviluppare e mantenere. Inoltre non necessitano d'installazione, ma si avviano direttamente senza bisogno che il sistema le configuri. Di riflesso offrono però prestazioni inferiori rispetto alle controparti native e, in certi casi, non possono accedere a determinate feature hardware di specifici device.
Secondo recenti sondaggi, tra gli sviluppatori non emergerebbe una preferenze netta per un determinato tipo di applicazioni, molti di essi usano e sviluppano quello che richiede l'azienda o il cliente, altri preferiscono sfruttare il meglio di entrambi i mondi e adottare l'alternativa migliore a seconda dei casi.
Molto probabilmente le applicazioni native non spariranno mai perché serviranno sempre software estremamente ottimizzati per una determinata piattaforma hardware/software. Senza contare che oggi, grazie ai sistemi di container (Docker e Kubernetes in primis), il problema delle applicazioni non-multipiattaforma è stato in parte bypassato.
Inoltre, grazie allo sviluppo degli standard Web e alla diffusione dei servizi Cloud, sempre più persone stanno migrando alle applicazioni Web in modo permanente. È dunque possibile che nel prossimo futuro avremo entrambi i tipi di applicazioni presenti sul mercato, anche se col passare degli anni le Progressive Web App avranno probabilmente una richiesta maggiore.