Google Drive Realtime API, ora con Undo e Redo anche in collaboration

Di - 3 May 2013 - in
Post image for Google Drive Realtime API, ora con Undo e Redo anche in collaboration

Poche settimane fa avevamo parlato di come Google avesse investito molto sulle API di Drive, creando un ambiente favorevole alla realizzazione di applicazioni complesse direttamente in ambiente cloud.

A Mountain View sanno bene che per attirare le attenzioni delle software house è importante fornire loro significativi vantaggi tecnologici per invogliare sia il porting di programmi di successo quanto il deployment di nuovi.

In questo contesto si inseriscono le Realtime API cioè un set di funzioni che consentono a codice di terze parti di avvantaggiarsi delle possibilità e delle funzioni di collaborazione in tempo reale offerte da Drive stesso: svilupparein proprio” una tale tecnologia sarebbe per tutti, (ad eccezione di pochissimi), troppo oneroso.

Oggi queste interfacce di programmazione si arricchiscono di una funzione forse banale in ambiente desktop, ma molto difficile da gestire in un sistema distribuito e con accessi multipli: le funzioni annulla e ripristina.

Tornare indietro per un insieme limitato di operazioni è sicuramente una comodità a cui non si può più rinunciare, neanche in un sistema cloud; anzi, sono state spesso queste limitazioni minori ad aver penalizzato per lungo tempo le web application, spesso più affidabili ed accessibili delle loro controparti tradizionali ma per questi motivi non strutturali, meno utilizzabili.

Google consente, con pochissime righe di codice, l’implementazione di questi meccanismo, gestendo in autonomia possibili conflitti causati da possibili accessi simultanei e concorrenziali, eccone un esempio:

if (model.canUndo) {
  model.undo();
}

Interessante anche la possibilità di utilizzare questi elementi direttamente nell’UI del software e, poichè Undo e Redo sono collegati ad eventi predisposti dall’apposita classe model, tutto quello che è necessario fare è assicurare la presenza degli adeguati listener gestendo le icone della propria interfaccia utente, ecco una porzione di html e Javascript:

<button id="undoButton" disabled>Undo</button>
<button id="redoButton" disabled>Redo</button>
var model = doc.getModel();
var undoButton = document.getElementById('undoButton');
var redoButton = document.getElementById('redoButton');

undoButton.onclick = function(e) {
  model.undo();
};
redoButton.onclick = function(e) {
  model.redo();
};
var onUndoRedoStateChanged = function(e) {
  undoButton.disabled = !e.canUndo;
  redoButton.disabled = !e.canRedo;
};
model.addEventListener(
  gapi.drive.realtime.EventType.UNDO_REDO_STATE_CHANGED, 
  onUndoRedoStateChanged);

Se volete approfondire il codice appena proposto potete accedere all’esempio Realtime Quickstart. Se invece siete maggiormente interessati ad apprendere come utilizzare le Realtime API nei vostri progetti potete leggerne la documentazione completa.

Grazie a queste migliorie Google Drive rappresenta sempre di più un ambiente completo e funzionale per la realizzazioni di web application complete, cloud e molto innovative.

Via | Google Apps Developer Blog

Leave a Reply

Andrea Testa Articolo scritto da

Laureato in Comunicazione Digitale, curioso ed affascinato dall'informatica, specialista Google Apps. Sviluppatore software, ama tutto ciò che si manifesta sotto forma di intelligenza, tecnica ed innovazione, come il web e l'open source.

Contatta l'autore

Previous post:

Next post: