Een online/offline WebODF applicatie op basis van CouchDB

Offline...Er lijkt een omslagpunt bereikt te zijn in de ontwikkeling van applicaties: web applicaties worden beter geaccepteerd door gebruikers dan traditionele desktop applicaties.

Was voorheen MS Office nog de standaard voor hoe een applicatie moet functioneren en er uit moet zien, de huidige generatie gebruikers kan vaak niet meer overweg met traditionele desktop applicaties. Als een applicatie zich niet als een webapplicatie gedraagt en in een browser draait dan kunnen steeds meer gebruikers er vaak niet snel en goed mee omgaan. Dit is natuurlijk schadelijk voor de acceptatie van nieuwe software binnen een organisatie.

Dit gaat ook grotendeels op voor mobiele "apps" die vaak functioneel en qua uiterlijk dicht tegen webapplicaties aanzitten.

Dit is natuurlijk goed nieuws want webapplicaties bieden veel voordelen op het gebied van beheer ("SaaS"), cross platform ondersteuning (desktop, mobile), storage ("in the cloud").

Er is echter één punt waarop webapplicaties vaak achterlopen: offline support. Want ondanks wat mobile providers ons graag willen laten geloven, er is niet altijd een goede (of betaalbare!) internet verbinding voorhanden en dat zal helaas voorlopig zo blijven. 

Browsers bieden wel mogeljkheden voor offline storage maar deze zijn erg low-level. Synchronisatie met de backend moet op maat geïmplementeerd worden en de ondersteuning van mogelijkheden varieert erg per browser.

Er is nu echter een "stack" die offline data storage kinderlijk eenvoudig maakt: PouchDB. PouchDB is een client voor de gedistribueerde CouchDB document store. Als er een verbinding is dan synchroniseert de client en als de gebruiker offline is dan wordt er op een lokale database gewerkt. Bovendien ondersteunt PouchDB de meest gangbare platforms!

Om te onderzoeken hoe dit in de praktijk werkt heb is door ons een prototype offline applicatie ontwikkeld: een online/offline document editor op basis van WebODF, een 100% javascript Open Document Format editor.

En alhoewel de code nog zeer beperkt is biedt de applicatie al een hoop van de gewenste functionaliteit:

  • Bij opstarten wordt de data (een tiental documenten) gesynchroniseerd.
  • Als de applicatie offline gaat, dan kunnen documenten nog steeds geopend/opgeslagen worden.
  • Als er weer verbinding is, worden documenten alsnog gesynchroniseerd.
  • Als meerdere instanties van de applicatie draaien (bijvoorbeeld één op desktop,  één mobiel) dan worden de documenten tussen deze twee instanties netjes gesynchroniseerd.

Het blijft uiteraard een prototype: de usability van de applicatie is beperkt en conflict resolutie is nog niet aanwezig, maar wat er nu is, is al zeer veelbelovend. 

 

 

Last updated 4 februari 2014 11:28 | angularjs pouchdb webapplicatie couchdb webodf

Geen reakties

Post a comment:

captcha