Approfittiamo del periodo estivo per inaugurare DevZ: una rubrica che si occuperà dei dettagli più prettamente tecnologici dei nostri prodotti in lavorazioni con anche interventi dei nostri sviluppatori.
Matteo e Andrea, due dei nostri Full Stack Developer, hanno recentemente approfondito la loro conoscenza dei tre più noti framework per lo sviluppo di applicazioni Web: Angular, React e Vue.
L’obiettivo dichiarato era quello di arrivare a selezionare uno dei tre da utilizzare per la realizzazione di un nuovo progetto al fine di standardizzare e rendere più efficiente l’implementazione del codice ed al tempo stesso cercare di ridurre i tempi di sviluppo.
Tutti e tre i framework/librerie hanno peculiarità che li rendono unici e la scelta non è stata facile.
La scelta è infine ricaduta su Angular per i seguenti motivi:
- È possibile attingere a della componentistica pre-confezionata (component collection) consolidata, affidabile e pronta all’uso quale Angular Material e Angular Google Charts.
- L’utilizzo dei componenti è facilitato dalla presenza del selettore.
- Si possono creare componenti custom riutilizzabili in altri progetti.
- Il two-way binding semplice perché diretto e dichiarativo.
- Il routing è facile da configurare e integrabile con i Navigation Guard che permettono di accedere alle risorse solo se si è in possesso di adeguati requisiti di autorizzazione.
- È possibile utilizzare anche TypeScript (tipizzato!) per la scrittura del codice sorgente.
- Separare il codice è semplice e aiuta l’ordine anche nella struttura dei file.
- Tanta documentazione e supporto sono disponibili sul web.
Per il nostro nuovo progetto abbiamo adottato un approccio leggermente diverso dal solito spostando inizialmente il focus sull’esperienza utente e sull’usabilità, lasciando ad una seconda fase la progettazione del database.
La realizzazione di un mockup low-fidelity ci ha permesso di presentare internamente il progetto e apportare alcuni aggiustamenti funzionali prima di passare alla fase di implementazione.
Attraverso l’adozione dell’approccio per componenti, abbiamo poi iniziato a realizzare passo-passo alcune funzionalità chiave del progetto quali ad esempio un timer (vestito in forme diverse è utilizzato in diversi punti dell’applicativo) ed il Monotonic Clock per impedire di spostare data e ora del device nel tentativo di imbrogliare il sistema.
La disponibilità in rete di una grande varietà di documentazione, unita alle capacità di Andrea e Matteo, ci ha permesso di affrontare argomenti complessi come la dependency injection con una curva di apprendimento più corta di quanto ci saremmo aspettati.
Abbiamo anche sperimentato la configurazione di una Progressive WebApp: con questa modalità l’applicazione Web diventa installabile su PC (Windows, macOS e Linux) e Smartphone senza necessità di alcuna modifica al codice sorgente.
Il lavoro procede spedito e presto sveleremo alcune caratteristiche di questo interessante nuovo progetto che Zelando renderà disponibile sul mercato a partire dal 2020.
Nel frattempo, guarda la nostra pagina prodotti per scoprire tutto quello che offriamo già oggi.