Come sarà il futuro dello sviluppo front end e mobile? Lo abbiamo chiesto a tre persone che in nesea lavorano in questo ambito e che da anni ne seguono le evoluzioni: Ernesto Napoli (IT Executive), Giorgio Napoli e Yuri Simeone (IT Specialist). Questo post raccoglie le loro prospettive.
Lo sviluppo front end e mobile sta attraversando un momento particolarmente interessante: se prima, infatti, la rigida separazione tra tecnologie imponeva ai developer di specializzarsi su una o più piattaforme di sviluppo, oggi l’affermazione di V8 NodeJS e in generale la diffusione di Javascript come linguaggio per web, mobile, backend, piattaforme hardware e IoT ci permette di ottimizzare il lavoro e scegliere più liberamente dove vogliamo sviluppare. Questo cambia anche il modo in cui lavoriamo in nesea: ecco alcune delle esperienze recenti più interessanti.
La possibilità di far “comunicare” ambienti diversi apre la strada a molte possibilità di ottimizzazione. È quello che abbiamo fatto nel recente progetto di redesign di un’importante piattaforma di gaming. Dovendo portare una grande varietà di funzioni sia su mobile che su tablet e desktop, abbiamo scelto una soluzione software cross application che permettesse di utilizzare la stessa architettura per i tre diversi supporti. Per il mobile, questo è stato possibile grazie all’evoluzione della tecnologia, che oggi ci permette di sviluppare applicazioni ibride con il 90% di programmazione web e appena il 10% di linguaggio nativo. Per le soluzioni web, invece, l’elemento decisivo è il numero crescente di funzionalità (un tempo possibili solo con Adobe Flash Player, Applet Java, Silverlight) che oggi vengono incorporate dai browser: quello che prima si poteva ottenere solo con una Rich Internet Application oggi si realizza con una Single Page Application.
La vera sfida, in questo progetto, è stata quindi quella di creare un’architettura ibrida modulare, con tecnologia web che fosse utilizzabile anche per mobile e tablet.
L’abbiamo progettata con un sistema a due layer: il primo (Layer Core) è suddiviso in moduli che contengono Servizi, Model e Controller. Questo layer è stato sviluppato senza dipendenze da nessun framework, così da poter essere facilmente mantenuto e implementato nel tempo.
Un bus gestisce la comunicazione tra il Layer Core e il secondo layer, che è invece personalizzato per device e controlla l’interfaccia utente, sia in termini di grafica che di verifica degli stati di interazione.
Questo secondo layer adotta VueJS, un framework flessibile e non invasivo, adatto a supportare le necessità di performance del mobile.
In questo modo abbiamo ottimizzato il lavoro non solo nell’immediato, ma per tutti gli interventi futuri.
Se le tecnologie ci permettono una maggiore flessibilità, è però anche vero che il numero crescente di device con cui ci confrontiamo impone un’attenzione particolare alle possibilità e limiti di ciascuno di essi. È il caso di un altro recente progetto nesea, anche questo in ambito gaming, che richiedeva invece di effettuare il porting dei servizi da un classico terminale POS su un tablet Android, esportandoli anche verso il web. Una grande opportunità – di fatto un upgrade della piattaforma – ma anche una grande responsabilità sul piano dell’esperienza utente. Se infatti un tablet è indubbiamente più usabile e visivamente ricco di un POS, è anche vero che per funzionare come un POS deve poter dialogare con diversi altri strumenti.
In questo caso abbiamo sviluppato l’applicazione tramite Android Studio, SDK Java, SDK Android, servizi REST, Javascript interface, webview e connessioni websocket.
In particolare, la connessione websocket ci ha permesso di collegare terminale e applicazione per ricevere e comunicare eventi in modo bidirezionale (ad esempio notificare l’apertura dello sportello della stampante o la lettura di un codice a barre).
Prova che oggi le applicazioni mobile possono interagire a tutti gli effetti non solo con il web ma con i tanti device connessi che popolano il nostro mondo.
Le nuove tecnologie nello sviluppo front end ci permettono anche di ideare soluzioni molto flessibili e poco invasive.
È il caso del recente progetto di evoluzione di un CMS, con l’obiettivo di portarlo da CQ5 ad AEM6.
Se qualche tempo fa si sarebbe pensato di “ripartire da zero”, in questo caso le soluzioni AEM ci hanno permesso di lavorare in modo graduale, facendo temporaneamente convivere sue diverse versioni del sito e aggiornando i componenti progressivamente.
Con così tante novità, per un developer front end / mobile è difficile scegliere tra le tecnologie a disposizione. Tra le più interessanti del momento c’è senza dubbio Kotlin, il nuovo linguaggio open source per ambiente Java che Google sta promuovendo per la programmazione su piattaforma mobile Android.
Altra novità interessante, che vedremo probabilmente sempre più utilizzata, è Web Assembly, un linguaggio che promette prestazioni migliori e un migliore livello di controllo per tutto quello che fino ad oggi abbiamo sviluppato in JavaScript.
Insomma: non smettiamo mai di imparare, di sperimentare, di innovare!
Chiamaci al: +39 06 840 25 061
Oppure scrivici qui: info@nesea.it
I nostri uffici si trovano a Roma, in Via Benozzo Gozzoli, 92A • Google maps
2 commenti. Nuovo commento
Complimenti per l’articolo, in particolare sono rimasto interessato dalla parte riguardante l’upgrade progressivo di un progetto esistente ad una nuova versione del software senza bisogno di realizzare un nuovo progetto da zero. Sarebbe possibile avere qualche informazione aggiuntiva su queste procedure?
Buon pomeriggio Francesco, grazie mille per il tuo commento: siamo felici di sapere che gli argomenti trattati ti abbiano incuriosito. Ti contatteremo via email per proseguire la conversazione. Buona giornata e a presto.