Dion Almaer (ajaxian.com)- Hot to take your app offline

Dion parla di Google Gears, la tecnologia che permette di portare offline dati e applicazioni web.

Parte dalla considerazione che in Palo alto si perde la connettività molto spesso. Portare l’applicazione offline può eliminare delle barriere, ma non solo. Portare le elaborazioni offline permette anche di aumentare la performance per l’online.

A Google si sono chiesti come portare le applicazioni offline senza risovere semplicemente i problemi di Google stessa; per questo Google Gears è stato rilasciato come open source (new bsd).

La filosofia su cui si basa può essere così sintetizzata:

  • usare lo stesso URL per applicazione online e offline
  • la transizione la versione online e offline dell’applicazione deve essere trasparente
  • dev’essere possibile usare dati locali anche se si è online
  • dev’essere disponibile a tutti su tutte le piattaforme

Google Gears è qualcosa di più rispetto a Ajax, ma i concessi sono tra loro simili: si tratta di fare per le applicazioni offline quello che XMLHttpRequest fa le per applicazioni web (per questo è simile, come concezione, a Ajax).

I componenti:

  1. LocalServer: che gira nel browser
  2. Database: un database relazionale “fully-searchable”, non file di testo
  3. WorkerPool: possibilità di gestire thread indipendenti dal browser

Database

Il database è creato usando SQLite. Su questa base sono stati aggiunti dei livelli di astrazione successivi.

GearsORM: gestire relazione tra oggetti del database come fosse Hibernate.

GearShift: gestire la migrazione di tanti database negli utenti quando si fanno cambiamenti: db migration come il rails.

Local Server

E’ semplicemente un mini server web che ascolta sulla porta 200 e 304.

Worker Pool

Risponde alla necessità di avere diversi thread di processo separati dal browser, e sicuri. In questo modo il Javascript gira in background, non nel contesto del browser.

Altro

E’ stata scritta un’estensione per criptare i dati salvati nel client. E’ stato aggiunta la ricerca full-text.

Questo intervento è stato scritto in live blogging dalla conferenza Future of Web Apps di Londra, il 3 e 4 Ottobre 2007. Leggi tutti gli interventi di Fucinaweb dal FOWA

Ancora su Ajax e usabilità

Anche le prime ore di vita di Google Calendar non sono state esaltanti. Ho perduto modifiche che ero convinto di aver salvato e soprattutto ero spaesato perché spesso non capivo se a una mia azione seguiva un riscontro del software.

L’ho già detto, e mi ripeto ancora una volta. La creazione di applicazioni basate su Ajax offre sicuramente delle nuove possibilità, ma pone anche delle nuove problematiche relative all’usabilità dei prodotti.

L’altro giorno nell’usare Google Calendar mi capitava di voler creare un nuovo evento, completarlo con alcuni dati, e solo dopo una trentina di secondi (quando oramai stavo facendo dell’altro) l’interfaccia mi informava che l’operazione non era andata a buon fine.

Mi chiedo poi se non stiamo utilizzando un po’ troppo pesantemente questo tipo di interfacce. Ci sono elementi in Google Calendar che effettivamente beneficiano di un’implementazione “ricca” (cioè usando Ajax), come ad esempio l’inserimento di un nuovo evento. Ma già quando si tratta di modificarlo successivamente, il fatto che il campo diventi editabile quando ci si muove sopra con il mouse è forse superfluo, oltre a trarre in inganno (ho passato 10 secondi a cercare un esplicito pulsante “edit”).

Speriamo sia solo l’esuberanza dei primi mesi, e che questo tipo di soluzioni maturi tanto da permettere di usarle solo dove hanno realmente senso.

Ajax in action

Il termine Ajax è stato coniato da un anno e non si sono fatti attendere i pesanti manuali che spiegano tutto, ma proprio tutto, su questa architettura.

Di Ajax in Action, pubblicato da Manning, ho fondamentalmente apprezzato il modo con cui sono affrontati, fin dalle prime pagine, gli argomenti.

Invece che cominciare a scrivere qualche banale Hello Word con Javascript gli autori hanno infatti preferito chiarire subito che sviluppare applicazioni Ajax è un compito che richiede competenze specifiche.

Per questo motivo si parla prima di tutto di refactoring, di come utilizzare il più possibile Javascript come linguaggio orientato agli oggetti, e di come utilizzare i pattern di sviluppo in soluzioni Ajax. Crane e soci insegnano cioè come partire con il piede giusto.

Imparare da subito questi concetti ripaga subito dopo, perché gli esempi presentati, anche se semplici, non sono mai banali, e consentono anzi di riflettere un bel po’ su come sviluppare nel modo corretto.

L’unico appunto che mi sento di fare (una nota più che un appunto), è che va bene capire come funziona l’architettura Ajax. Ma forse più che voler approfondire più di tanto quanto presentato nel testo, l’importante è capire che Ajax sarà presto integrato – come ho già detto – all’interno dei diversi framework di sviluppo.

Si spera che in questo modo da produttività nell’utilizzare questo tipo di soluzioni sia destinata ad aumentare sensibilmente.

Ajax in Action – di Dave Crane, Eric Pascarello, Darren James, pubblicato da Manning, 640 pagine