Tecnologie Incorporate

DeepSee, iKnow, Zen, Zen Mojo

Zen Mojo

Che cos’è Zen Mojo?

Zen Mojo – un’estensione di InterSystems Zen™ – è un set di classi di Caché che le consente di costruire rapidamente delle interfacce utente per le applicazioni mobili e Web desktop.

Perché utilizzare Zen Mojo?

Costruire applicazioni Web può essere piuttosto divertente, finché non ci si accorge che è necessario mantenere numerose funzionalità su diverse piattaforme, il che influisce sulla produttività. L’idea che sottende Zen Mojo è quella di permettere all’utente di concentrarsi sugli aspetti importanti della soluzione: il desgin dell’applicazione e l’esperienza dell’utente.

Introduzione a Zen Mojo

Come funziona

Le Applicazioni costrutite con Zen Mojo utilizzano un’Architettura a Pagina Singola (SPA). Invece di generare un codice HTML nel server, che viene poi inviato al client, il server trasmette pacchetti JSON che guidano il contenuto della pagina. Eseguire transazioni tra le pagine è tanto facile quanto cambiare i meta-data sottostanti e chiamare un metodo.

Il rendering delle pagine è gestito dai plugin di Zen Mojo. I plugin possono utilizzare le librerie di terze parti per fornire widget all’avanguardia o per invocare il codice di base della sua libreria.

Cosa differenzia un’architettura a pagina singola?

L’architettura a pagina singola è un approccio efficiente per ridurre la comunicazione client-server. La pagina comprende una quantità ridotta di codici per il template HTML e può aggiornare il suo contenuto con meta-data trasmessi da un server. Cambiando i meta-data sottostanti, la pagina può modificare i dati attualmente mostrati o addirittura spostarli in una nuova pagina di visualizzazione – senza effettivamente muoversi in una nuova pagina. Per la comunicazione Zen Mojo utilizza JSON (un formato efficiente di dati raw), in questo modo SPA minimizza il carico tra client e server, e assicura un controllo ottimizzato da parte dello sviluppatore.

Come funzionano i plugin?

Zen Mojo utilizza i plugin per un’integrazione semplice di librerie JavaScript all’avanguardia, come jQuery Mobile o Dojo Toolkit. Pertanto, gli sviluppatori possono selezionare nuovi modelli di Interfaccia Utente non appena vengono creati.

Esistono due tipi di plugin: PageManager e Helper.

PageManager crea il “guscio” di base in cui vive l’applicazione e definisce come gestire le transizioni della pagine all’interno dell’Architettura a Pagina Singola.

I plugin Helper aggiungono supporto per il posizionamento e il rendering degli oggetti che possono essere definiti nei meta-data. Alcuni di questi elementi possono essere molto semplici e mostrare semplicemente un contenitore <div>. Mentre altri possono essere molto potenti, offrendo complessi effetti visivi o integrando le librerie di terze parti.

Costruire applicazioni mobili Web

Supportiamo varie librerie mobili JavaScript. jQuery Mobile rende più semplice costruire un look e un’esperienza personalizzati per un’utenza multipiattaforma, mentre l’interfaccia utente ChocolateChip fornisce componenti e fogli di stile che emulano il look e l’esperienza dei dispositivi iOS, Android e Windows Phone.

jQuery Mobile

Interfaccia Utente ChocolateChip

Posso costruire applicazioni mobili con Zen Mojo?

Certamente. E’ possibile creare un’applicazione nativa scritta in Objective-C (per iOS) o in Java (per Android), e incorporare in essa la sua applicazione Web. Questo approccio viene chiamato applicazione ibrida, e si distingue da un’applicazione costruita in modo nativo. Un valido strumento a questo scopo è PhoneGap, basato su Apache Cordova.

Le applicazioni di Zen Mojo vengono implementate di default in un ambiente server. Tali applicazioni vengono chiamate applicazioni Web e richiedono una connettività al server, per lo meno nel momento dell’avvio.
Zen Mojo consente la compilazione e il confezionamento del bundle dell’applicazione, che può essere avviato localmente da qualunque postazione. Un bundle può continuare a comunicare col server senza alcun cambiamento nel codice, ma non richiede il server al momento dell’avvio. I bundle sono destinati all’utilizzo nelle applicazioni ibride.

PhoneGap

Costruire applicazioni Web desktop

L’approccio del plugin di Zen Mojo consente di integrare le librerie più utilizzate per costruire applicazioni desktop molto ricche. Attualmente supportiamo Dojo Toolkit con il suo vasto numero di widget Dijit e la sua capacità di rendere i grafici interattivi in 2D.

Il Dojo Toolkit

Come posso procurarmi Zen Mojo?

Zen Mojo può essere scaricato dal Portale di Distribuzione WRC. (L’accesso è limitato ai clienti in possesso di una licenza valida). A partire dalla versione 2014.2, Caché verrà fornito con la versione attuale di Zen Mojo.

Portale di Distribuzione WRC

Cosa c’è di nuovo?

Zen Mojo viene aggiornato regolarmente e ogni versione presenta nuove funzionalità. Ecco le nuove funzionalità chiave che vorremmo evidenziare:

Introduzione del Widget Reference (Riferimento al Widget)

Il nuovo Widget Reference è studiato per fornire campioni di codici “ready-to-steal” e per accorciare la curva d’apprendimento di Zen Mojo. Il widget reference mostra i widget e ne dimostra l’utilizzo in configurazioni comuni. Ogni campione include una descrizione, il/i widget rappresentato/i e un pulsante per accedere al codice source. Questo pulsante mostra un pop-up che descrive ogni parte del codice coinvolta per produrre il campione: l’oggetto del layout, i dati associati e qualsiasi CSS. Attualmente, il widget reference offre contenuti per jQueryMobile 1.3.2., Highcharts e Chart.js.

Supporto potenziato per la creazione di grafici

Mentre Zen Mojo 1.0.9 aggiungeva supporto per una libreria gratuita per la creazione di grafici – Chart.js – la versione più recente di Zen Mojo introduce supporto per una libreria di grafici professionali – Highcharts.js – che è gratuita soltanto per uso non commerciale. Entrambe le librerie per la creazione di grafici possiedono una propria sezione nel Widget Reference.

Bundle dei file per lo sviluppo di un’applicazione ibrida

Per semplificare l’inclusione di tutti i file necessari in un progetto PhoneGap, %Zen.Mojo.Utils offre ora un metodo utility che genera una pagina offline di Zen Mojo, identifica i file richiesti dalla pagine e li copia tutti in una directory di destinazione. Notare che questa utility non può identificare tutte le dipendenze come quelle implicate dai parametri CSSINCLUDES e JSINCLUDES, poiché alcune di queste possono essere determinate soltanto durante l’esecuzione.