Hello.
I'm starting the development of a new Xamarin.Forms app that should build dynamic forms with multiple custom input types, configured in a web application and consumed by the app using a REST service (A Google Forms-like app). Considering this requirement the data produced by the user inputs will be very dynamic, depending on the form configuration. The app should be full functional when offline too. For example, a form can have the following configuration structure:
Form 1:
Age : Integer input
Name : Text input
Active : Boolean input
Address : Group {
Street : Text input
Number : Integer input
}
An input produced by a given user considering the above "Form 1" configuration can be something like:
{
Age : 28,
Name : "Jon",
Active : true,
Address : {
Street : "Main street",
Number : 100
}
}
As you can see the result of an user input is a JSON object. Currently I'm looking for an storage solution with the following requirements:
- Should allow the storage of dynamic data structures (like the above data structure)
- Should allow query by user inputs. The query engine should support queries like "Return records where Anddress.Street starts with 'Main'". Remember that the data structure is not know. The inputs are schema-less.
- Compatible with Xamarin.Forms applications (using a .NET Standard 2.0 project for code sharing)
I have took a look in a lot of alternatives, like CouchDB, Siaqodb, Realm, etc. but none of the alternatives has fit my requirements. I think that I'm looking for a kind of "MongoDB lite" to work with Xamarin.Forms. Does anyone know something like this?
Can anyone suggest me an alternative that fits these requirements or provide any guidance about how to achieve my goal?