Angular: cos'è, com'è nato e quale rivoluzione ha portato nello sviluppo WEB
Angular è un framework opensource dedicato allo sviluppo di applicazioni WEB e sviluppato principalmente da Google.
Dire che rappresenta l’evoluzione della sua prima release come AngularJS sarebbe inesatto: l’Angular del 2019, o meglio le diverse versioni di Angular oggi disponibili, non sono tanto l’evoluzione di quanto originariamente sviluppato nell’ormai lontano 2009, quanto una sua completa riscrittura, tanto che non esiste retro-compatibilità con la versione iniziale. Pensiamo solo al fatto che sono state addirittura scritte con un linguaggio di programmazione diverso (JavaScript vs TypeScript)!
Ma com’è nato Angular? L’intenzione originaria era quella di creare uno strumento semplice e rapido per lo sviluppo di applicazioni capaci di girare su qualunque piattaforma e facilmente fruibili da desktop, tablet o smartphone.
Quando nasce in Google come progetto part-time, il suo mero scopo interno era solo quello di semplificare lo sviluppo web a vantaggi dei web designer con poca conoscenza di codice. Come vedremo, la sua creazione ha invece innescato una vera e propria rivoluzione nello sviluppo web e la combo Angular + Bootstrap consente oggi di creare applicazioni perfettamente responsive e capaci di ottimizzare il proprio layout in funzione del dispositivo utilizzato.
Tanto tempo fa, in un paese molto lontano, la costruzione delle interfacce web poteva risultare tutt’altro che semplice.
Perché? Perché ad ogni modifica era necessario ri-eseguire l’intera applicazione per poter verificare come veniva effettivamente visualizzata in front end. Un dispendio di tempo e consumo di dati notevole.
Cosa succedeva, invece, con le applicazioni sviluppate in Angular?
Succedeva una piccola rivoluzione: per la prima volta le applicazioni venivano eseguite interamente dal browser e questo implicava innanzitutto un risparmio di tempo netto ogni qualvolta si verificava un’azione da parte di un utente.
L’architettura Angular consentiva in questo modo di creare applicazioni complesse e sofisticate, ma al tempo leggere, veloci e facilmente fruibili.
A questo punto della narrazione è indispensabile fare il passaggio sulle SPA, le cosiddette Single Page Application.
Negli anni Angular è spesso diventato sinonimo o (inevitabile premessa) di SPA.
Le SPA o Single Page Application, sono letteralmente applicazioni web che si fruiscono tramite una sola pagina web, garantendo un’esperienza utente tanto fluida e dinamica da essere assimilabile a quella di un’applicazione desktop installata: nessun ricaricamento di pagina, contenuti e risorse immediatamente disponibili, fluidità nei passaggi e nell’uso delle funzionalità (es. filtri, selezioni, compilazioni, invii etc).
In sostanza, la pagina della SPA viene scaricata nel browser non appena invocata: da lì in poi procedere con l’interfacciarsi con servizi WEB e a funzionare in autonomia, sfruttando tutti i vantaggi del web ma con la fluidità di un’applicazione desktop.
“Oggi che il web tende a concentrarsi sul principio SPA (Single-PageApplication) viene facile immaginare web application che in cascata devono aggiornare decine, centinaia, migliaia di porzioni della pagina corrente. Chiamata ajax, preparazione, richiesta, pool sul server che inizia a lavorare, parsing, conversione, accesso al db, caricamento dati, conversione in html, rendering pagina, trasferimento dal server al browser, rendering client. […] Angular è la risposta a questo lavoro: l’asincronismo, il Javascript evoluto che è possibile utilizzare, utilizzo di funzioni reattive, i boundle compatti, tutto questo insieme proiettano le Web Application nella nuova era di gestione efficiente delle risorse di networking probabilmente per alcuni decenni a venire. “ [Fabio Guerrazzi – Guida ad Angular 5]
Quali tipi di applicazioni è stato possibile sviluppare sinora come SPA?
I casi in cui l’opzione di realizzare una Single Page Application è stata senz’altro la soluzione ideale sono spesso marcati da caratteristiche ricorrenti:
Le SPA sono oggi tra le strutture più diffuse nello sviluppo di web application: la loro realizzazione – benché porti a risultati così “semplici” da fruire – richiede invece architetture interne articolate, tipiche di applicazioni complete e sofisticate, non certo di semplici interfacce.
Se oggi non solo Angular, ma praticamente qualsiasi framework realizza e mette a disposizione degli utenti i vantaggi sopra descritti, è invece vero che Angular in particolare offre una qualità avanzata in termini di mantenibilità, flessibilità e strutturazione avanzate delle applicazioni.
Essendo Angular un vero e proprio framework e non una semplice libreria (come React, ad esempio), punta a dare moltissimi strumenti e pattern sia semplici che avanzati per costruire applicazioni di ogni tipo, mantenendo sempre, se usato con conoscenza, del codice pulito, ordinato e mantenibile.
Grazie agli strumenti di contorno e al forte supporto della comunità si riesce a integrare Angular in qualsiasi contesto.Oltre al classico contesto WEB Angular si dimostra oltremodo efficace sia come applicazione mobile (grazie a wrapper come Ionic e simili) , sia in app desktop (grazie a Electron ecc).
Si avvantaggia poi, e non poco, di moltissime librerie per integrarlo con ulteriori servizi terzi con estrema facilità (Google, AWS, strumenti per l'offline ecc...).
Angular sembra cioè rendere tutto più semplice, ma non è semplice affatto.
Esistono sviluppatori che si specializzano nella loro realizzazione e acquisiscono negli anni la capacità strategica di programmazione e strutturazione tipica delle app Angular.
Il mercato conferma che gli sviluppatori Angular sono oggi tra i più ricercati tra le aziende che lavorano in ambito IT, proprio perchè il linguaggio permette di usare delle metodologie di sviluppo complesse che danno maggior qualità al prodotto.
Per fare un esempio, grazie alla recente integrazione di ngrx si riesce (si poteva anche prima grazie a Redux e simili, ma ora è un flusso ben documentato da Google stesso) a trasformare il prodotto in un'app a stati che rende sia lo sviluppo che la mantenibilità di progetti articolati e complessi molto più semplice, oltre -naturalmente - a velocizzare significativamente l'applicazione in sé stessa.
Se stai cercando un’azienda che offra soluzioni innovative e su misura per le tue esigenze di business, siamo la software house di Milano giusta per te! Troverai un team di esperti pronti ad accompagnarti nello sviluppo di software personalizzati, garantendo qualità e assistenza continua.