The basic behaviour has been produced using the functional decomposition favoured by the Conclave framework and this has enabled me to start a more rational API for it than my original prototype.
As of now, I have written two of the primary database API calls - Create and Read which are working nicely. Along the way I added a compressed JSON view (implemented in the Asura support library - I had to keep that name going somewhere :) ) which should help for medium and large application databases. I will add the Update and Delete calls soon, then expand the scope to Collections and Instances.
Yeah, I hear what you're asking; you're wondering wtf Xizi actually is. Well, I'll tell ya.
Xizi is an application data storage framework. It's primary use is to allow app developers to use a common method for storage of structured, meaningful user data with some search and trigger/agent facilities. The flip-side of that is it allows a user to view all of their data within one interface (i.e. via the website or Xizi's own app). Each app maintains a separate social graph per user so that the user is in control of their own network and in charge of how that graph is accessed and cross-linked between their apps. The information that a user adds to their database can be set to public or private, allowing discovery of items that the user specifically chooses.
- Xizi: Your data. Your network.
(I took the rest of the day off after I came up with that.)
The current worked example is a Fitness/Exercise recorder app with social elements. I'm still playing about with Xamarin (which is ridiculously slow when using an emulator), but I aim to produce an Android version of the app in the next couple of months, all being well.