8

In passato mi sono cimentato a più riprese nella realizzazione di applicazioni desktop di vario genere. Ho iniziato quasi 10 anni fa con VB.Net realizzando maschere di consultazione dati su database Oracle ed un semplice software per la consultazione dell’immenso database di immagini del mobilificio in cui lavoravo come responsabile IT.

Nel frattempo mi sono specializzato nella realizzazione di applicazioni Web ed è stato sempre più difficile tenere il passo con le varie tecnologie impiegate per lo sviluppo su Desktop. Senza considerare che l’altro grande cambiamento è stato l’inevitabile passaggio a Mac OS X. Nel momento in cui mi sono trovato a dover realizzare una seppure semplice applicazione per Mac mi sono scontrato con la dura curva di apprendimento di Objective-C (o più recentemente Swift).

Fortunatamente mi tengo molto aggiornato sugli ultimi trend tecnologici ed ho deciso di optare per una soluzione che all’epoca consideravo più semplice ma rischiosa ed eventualmente risultata essere vincente. Oggi infatti sempre più adottata per sviluppare applicazioni per PC e Mac, anche nelle grandi aziende. Sto parlando di NW.js! (Quando ho iniziato, il progetto open source realizzato da Roger Wang si chiamava ancora node-webkit).

NW.js è una libreria che permette di create applicazioni Desktop adottando gli stessi linguaggi impiegati nella programmazione Web come HTML, JavaScript e CSS. Più specificatamente NW.js dipende da due componenti:

  • Node.js – Che si occupa dell’interazione con le funzionalità del sistema operativo come scrittura di file, accesso alla rete etc…
  • WebKit – Motore di rendering alla base di Chrome, offre tutti gli strumenti per creare complesse interfacce grafiche adottando gli stessi linguaggi del web

La caratteristica che forse più mi ha entusiasmato di NW.js è stata l’incredibile portabilità del codice. In breve tempo mi è stato possibile creare applicazioni desktop, anche complesse, distribuibili senza sforzo su Mac OS, Microsoft Windows e Linux.

Una volta che ho ottenuto un certo grado di confidenza con la libreria ho deciso di creare Nuwk, una semplice soluzione open source per semplificare il packaging delle applicazioni NW.js. In questo modo sono stato scoperto da Packt Publishing che mi ha chiesto di scrivere un libro sull’argomento. Inizialmente ero contemporaneamente riluttante ed entusiasta all’idea di scrivere in inglese su un argomento così nuovo ma alla fine non ho saputo resistere. Dopo mesi di duro lavoro finalmente è stato pubblicato il mio primo libro, NW.js Essentials.

coverSi tratta di circa 150 pagine di cui sono davvero fiero. Si crea la prima semplice applicazione “Ciao Mondo” fin dal primo capitolo, si esplorano le innumerevoli Native UI API che permettono di interagire con il sistema operativo, vengono illustrati i principali metodi di distribuzione delle applicazioni sui diversi sistemi operativi e si realizza una più complessa applicazione di gestione delle attività (con tanto di sincronizzazione con server remoto) da zero.

Se siete interessati all’argomento potete acquistare il libro in formato elettronico o cartaceo a questi indirizzi:

 

  1. Molto interessante! Una domanda, volevo comprare la versione cartacea del libro ma ho visto che su amazon non è disponibile 🙁 come funziona dall’altro sito? Quali sono i tempi di consegna?

    1. Innanzitutto mi scuso per il ritardo tremendo nella risposta. Periodo molto intenso, inoltre il blog aveva smesso di inviarmi le email 🙂
      Al momento il cartaceo risulta disponibile su Amazon!

  2. Ciao Alessandro,
    questo tuo articolo mi ha illuminato! E’ qualche tempo che cerco un “linguaggio” per sviluppare della applicazioni desktop che abbia le caratteristiche che hai descritto. Sicuramente acquisterò il libro. Nel frattempo mi potresti dare qualche dritta per approcciarmi? Vengo anche io da ul lavoro di sviluppo applicazioni desktop in Visual Studio e ora faccio siti con WordPress. Grazie .

    1. Innanzitutto mi scuso per il ritardo tremendo nella risposta. Periodo molto intenso, inoltre il blog aveva smesso di inviarmi le email 🙂
      L’unica dritta che posso darti, a prescindere che tu decida di prendere il libro o meno, è di studiare dettagliatamente la documentazione online di nw.js all’indirizzo: http://docs.nwjs.io/en/latest/ dato che vengono introdotte continuamente nuove features e bug fixes.

  3. Grazie al tuo articolo mi sono avvicinato a nwjs, ma mi sono subito scontrato coin le difficoltà di settare alcune cose proprietarie del browser, come ad esempio il setting dei download.
    Per capire, vorrei fare il download automatico, come avviene adesso su chrome quando setti “chiedi dove salvare il file prima di scaricarlo” a false.
    Ho visto su internet che c’è il file master_preferences, ma non ho capito bene dove va, vista la tua esperienza nel settore, hai mai incontrato questi problemi?

    Grazie

    1. Buongiorno Alessandro,

      Ultimamente ho seguito altre tecnologie e non ho avuto tempo di aggiornarmi su nw.js. Ad ogni modo se fai il download del file utilizzando node.js (https://stackoverflow.com/questions/11944932/how-to-download-a-file-with-node-js-without-using-third-party-libraries) non compare nessun prompt. Ad ogni modo c’è un issue aperta su nw.js che mi sembra essere inerente alla tua richiesta. Prova a dare un’occhiata: https://github.com/nwjs/nw.js/issues/2236

  4. Alessandro,

    sono molto interessato al tuo ultimo commento di un anno fa.
    Scrivi che non sei più aggiornato su NW perché hai “seguito altre tecnologie”…
    Una tale frase, scritta da una persona che ha pubblicato un libro su NW, a me suona come qualcosa del tipo “NW is gone!”…
    Dunque mi permetto di chiederti se, alle porte del 2019, ritieni ancora NW una buona scelta per le applicazioni desktop, se preferisci Electron o se pensi ad altro.
    Grazie per avermi letto e spero di leggere a mia volta la tua risposta… 🙂

    1. Buongiorno Alessandro,

      Scusa innanzitutto per il ritardo “mostruoso” nella risposta. Problemi di varia natura mi hanno impedito di seguire il blog nell’ultimo anno. Voglio comunque risponderti per i posteri.

      1. La mia affermazione “seguito altre tecnologie” era riferita più ad un cambio di settore che di tecnologia vera e proprio, nello specifico ho lavorato esclusivamente su soluzioni web e mobile e non su applicazioni desktop.
      2. Recentemente ho dovuto comunque realizzare una piccola applicazione desktop ed ho testato il diretto concorrente, Electron. Partendo dai presupposti che l’applicazione era per Ubuntu 19 e che la mia aspettativa era piuttosto alta, sono rimasto un pò deluso. Una miriade di piccoli bug, documentazione a mio parere inadeguata… Stesse condizioni con cui mi sono scontrato quando ho approcciato NW.js.

      In definitiva, a chiunque inizi solo oggi ad approcciare il discorso applicazioni ibride per desktop, consiglio di testare entrambe le piattaforme e decidere in autonomia quale sia più adeguata al singolo caso.

Rispondi a Agostino Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *