2013-04-14 11:00:00
Announcing Zumero SQLite for Xamarin
I am pleased to announce that Zumero SQLite is now available in the Xamarin Component Store. It's free, and it supports Android and iOS.
Zumero SQLite for Xamarin starts with the core "replicate and sync" functionality from the Zumero Client SDK and adds:
ADO.NET -- Familiar C# API for SQL developers. (provided by System.Data.SQLite, which is maintained by the same folks who develop SQLite itself)
Full-database encryption -- Critical piece of the "replicate and sync" story. Mobile devices get lost. (provided by the excellent SQLCipher library)
Painless setup -- Install the component and you've got everything you need. (provided by the neato component store feature of Xamarin Studio)
Comfy
In some ways, the core of the Zumero Client SDK is not very easy to use. That is intentional. It is designed to be the sort of SDK that leaves many things as the responsibility of the app (or the next layer up).
It doesn't actually include SQLite itself, since the app might care about which version of SQLite it wants, or how it needs to be compiled.
It doesn't include any page-level encryption support, since it doesn't know whether the app wants to use SQLCipher or the SQLite Encryption Extension or something else.
It plugs into SQLite using C, because that's the native language that SQLite uses for its API.
Power users and control freaks need this kind of SDK. And it comes first, since everything else is built on top of it. But most users want an experience that is more "comfy".
They don't want to think about versions of SQLite or compile options for same.
They don't want to choose an encryption library and figure out how to integrate it with their app.
They don't want to write their mobile app in C.
The Zumero Client SDK actually does include some carpeting and furniture on top of that cold, hard C floor. For Android developers using Java, it presents the android.database.sqlite API. And for iOS developers using Objective-C, it offers a wrapper that lets you work with things that have NS prefixes.
(Which reminds me, check out our iOS wiki app sample on GitHub.)
Anyway, these efforts are just the beginning. Our direction is toward "comfy", and we are moving fast.
This component for Xamarin is a step forward, and I think it is an important one.
Samples
This new component includes three sample apps, all of which are modified versions of samples provided by Xamarin.
Data (iOS, based on https://github.com/xamarin/monotouch-samples/tree/master/Data)
Notepad (Android, based on https://github.com/xamarin/monodroid-samples/tree/master/NotePad-Mono.Data.Sqlite)
Tasky (cross-platform, based on https://github.com/xamarin/mobile-samples/tree/master/Tasky)
The Data and Notepad samples have simply been ported to System.Data.SQLite (which involved very few changes).
The Tasky sample goes a bit further and adds a very simple ability to sync the task list.
Evolve
I am in Austin for Xamarin's Evolve conference, which starts today. Xamarin is doing some of the coolest stuff in mobile development today. We are thrilled to be a part of it.