To catalyze the Kenyan tech community’s growth.

EVENT

Kevin Gibbs TalkRSVP

  • Venue: iHub
  • Date: Tuesday 9th August 2011
  • Starts: 4:00pm
  • Ends: 6:00pm

Kevin Gibbs is the tech lead at Google behind of Google App Engine and the creator of the suggest search feature. He will be giving a talk at the iHub about an MFI application he has built on the android platform and matters technical regarding App Engine and Auto Complete. More detail on Manta below:

Technical:

Manta: Simple, open-source JSON synchronization system for putting local SQL databases on Android phones.

Manta is a simple synchronization protocol, server, and client for Android that is designed to make getting a local, up-to-date database on your Android phone easy. Manta is composed of 3 parts:

  1. Upload: an upload agent, written in Python, that handles getting data out of your SQL server and into an internet-accessible, syncable store.
  2. Store: a simple JSON REST-based database service, that supports bulk uploads, synchronization, revisions, and merging.
  3. Sync for Android: a native ContentProvider for Android, which handles automatically synchronizing the exported data into a local SQLite instance on users' phones.

Manta was built with the particular needs of Africa in mind. The Upload agent and synchronization protocol is fault tolerant, and handles computer crashes, internet outages, database errors, and other common problems. Uploads and downloads are idempotent, which make them safe to repeat if state is lost or interrupted. The code has been optimized to run well on the sub-$100 Ideos Android phone. And since connectivity for the phone may not be available, or may be too expensive, synchronization with the Android device attempts to use as little data as possible, and can run manually, on a schedule you configure, or automatically. 

Ultimately, Manta makes it very easy to get data locked in an on-site SQL database onto an Android phone, automatically, so you can focus on writing the app, and not accessing data. Configuration is simple: just write a SELECT statement in the config.py file for each view you'd like to export, and the data is automatically made available on the phone in the native Android fashion. No configuration the Store server or the Sync component on the phone is necessary. A public, shared instance of the Store server on Google App Engine means that no server setup is necessary.

Currently, Manta is used by Simple MFI, a tool for microfinance loan officers that allows them to view client balances, collection sheets, and loan schedules on an Ideos phone. By concentrating all the complex synchronization logic in the Manta framework, the Simple MFI app is very small and easy to maintain-- it simply uses native Android ListViews and other components already designed to work with SQL-based ContentProviders.

More information on Manta and Simple MFI, along with screen shots, can be found here:

https://github.com/kevgibbs/manta

https://github.com/kevgibbs/simple-mfi/wiki