13 Dic

Applicazioni desktop multi-piattaforma

Programming Node.JS

Lo sviluppo di applicazioni mobile ci ha abituato ad utilizzare svariati framework (ad esempio Ionic, PhoneGap, Apache Cordova e Xamarin) che permettono di sviluppare applicazioni mobili e di rilasciarle su diverse piattaforme mobili (Android, Windows Phone, iOS). Ma e’  possibile sviluppare un’applicazione desktop con l’obbiettivo di rilasciarla su differenti sitemi operativi (Windows, Linux e Mac OS)? Subito pensiamo a Java e allo slogan che accompagna da sempre questo linguaggio di programmazione: “write once, run anywhere“.

Oltre a Java ci sono altre tecnologie, più o meno datate, che permettono lo sviluppo di applicazioni desktop multi-piattaforma. Tra queste vanno ricordate: Adobe Air, Haxe, Qt. Tuttavia tutte necessitano di competenze specifiche e richiedono team di sviluppo altamente specializzati.

Ci sono invece dei veri e propri framework per lo sviluppo desktop multi-piattaforma che si poggiano su standard e linguaggi tipici dello sviluppo web. Questi framework permettono di sviluppare applicazioni desktop a partire da conoscenze pregresse basate su HTML5, CSS3, Javascript e su tutte quelle librerie e moduli disponibili per il web. Tra i più utilizzati troviamo:

Caratteristica comune è quella di appoggiarsi a Node.js e ad un’istanza di Chromium  per il rendering della user interface.

Tra le tre soluzioni, Electron, pur essendo il framework più recente, annovera diversi progetti di rilievo tra i quali Atom (GitHub), Visual Studio Code (Microsoft), Nuclide (Facebook), Slack, Hive e MongoTron. Punto di forza, oltre allo sviluppo di applicazioni desktop utilizzando tecnologie web, è  quello di combinare Chromium e Node.js in un unico runtime permettendo di distribuire lo stesso pacchetto sui tre sistemi operativi desktop più diffusi: Windows, Linux e Mac OS.

Electron per funzionare non richiede quindi la presenza di virtual machine o interpreti sul sitema operativo di destinazione. L’applicazione puo’ essere distribuita rilasciando i binari di Electron insieme ai file sorgenti dell’applicazione o pacchetizzando il tutto in archivi asar.

Per maggiori dettagli e riferimenti riguardo all’architettura di Electron, nonche’ alcuni esempi interessanti, potete visitare: