RoboSpice Motivations

This applications has been developed for DroidCon 2012 at London.

The goal of RoboSpice Motivations is to expose the motivations behind RoboSpice : getting a robust, easy to use, Object Oriented mechanism to execute network requests.

Android offers 2 main possibilities to execute asynchronous tasks : AsyncTasks and Loaders. Nevertheless AsyncTask are flawed by design as they don't handle correctly Activities life cycle and can produce memory leaks quite easily; and Loaders have been designed to access SQLlite cursors and don't really fill networking requirements.

RoboSpice's history

RoboSpice's design is based on a conference, given by Virgil Dobjanshi at Google IO in 2010. He proposed 3 designs to enhance network request processing on Android and we followed the first one. We derived from its original design as we focused on the idea of executing requests on a service and didn't consider to add support for SyncAdapters or ContentProviders, yet.

We started to implement a solution around Virgil Dobjanshi's design during winter 2012, for one of our clients. Around June 2012, we had some time to refactor the code and put it in a separate library. It was originally named "ContentManager". After an important collective effort, the library became more stable and provided more features. Around Septembre 2012, we decided to release the library on Git Hub and it was renamed RoboSpice.

RoboSpice's credits

RoboSpice has been designed by a bunch of Mobile Programmers working for Octo Technology : It has been initiated in June 2012 for one of our client's app and got refactored during summer 2012 to become RoboSpice.

Octo Technology allows it employees to work part time on Research and Development topics. RoboSpice is one of those projects, thx Octo !

RoboSpice status

RoboSpice is actually a mature library. Much of its code is tested and the library is already in production in several applications. Its source code, tests and samples are available on a Git Hub repo.

RoboSpice Development team is currently actively working on improving the library, adding new features and support more serialization formats.