Hyperview è una libreria open source creata da Instawork che permette di sviluppare applicazioni mobile utilizzando un approccio dichiarativo basato su XML. È progettata per semplificare il processo di sviluppo, migliorare l'efficienza e ridurre la complessità, eliminando la necessità di scrivere codice nativo per ciascuna piattaforma.
Caratteristiche di Hyperview
Grazie all'architettura XML gli sviluppatori possono definire un'interfaccia utente utilizzando il linguaggio stesso, il layout diventa quindi facilmente leggibile e modificabile. L'approccio scelto ricorda quello di tecnologie come React Native ma Hyperview enfatizza la separazione tra la logica dell'app e la presentazione visiva.
Le applicazioni realizzate con Hyperview possono caricare contenuti dinamici direttamente da un server, senza bisogno di aggiornare o ricompilare nulla. Questo rende Hyperview ideale per applicazioni destinate a modifiche frequenti.
La libreria utilizza un approccio basato sugli stati, sincronizzando automaticamente le modifiche tra il server e l'interfaccia utente e semplificando lo sviluppo rispetto ai tradizionali framework mobile. Le applicazioni sviluppate con Hyperview sono inoltre compatibili sia con iOS che Android. Fattore determinante per ridurre i costi di sviluppo e manutenzione.
Vantaggi e svantaggi per gli sviluppatori
L'uso di Hyperview si associa ad una riduzione della complessità in quanto gli sviluppatori non devono preoccuparsi di scrivere codice specifico per ogni piattaforma di destinazione di un progetto.
La separazione tra front-end e back-end consente inoltre a team differenti di lavorare in parallelo sulla medesima applicazione.
È poi possibile modificare il contenuto di un'app in tempo reale, sincronizzando il delivery con la raccolta dei feedback inviati dagli utenti.
Esistono però delle limitazioni. Hyperview, infatti, richiede un'infrastruttura server di buon livello che possa supportare il caricamento dinamico dei contenuti. Quindi potrebbe non essere adatta per applicazioni che richiedono funzionalità native avanzate o performance estremamente elevate. In linea generale si tratta di una soluzione più indicata per lo sviluppo di progetti che privilegiano i contenuti dinamici rispetto alla disponibilità di funzionalità molto complesse.