RoboSpice

RoboSpice is a modular android library that makes writing asynchronous network requests easy.
It supports REST requests out of the box using Spring Android (other implementations are possible as well).

https://github.com/octo-online/robospice

Sample demo app available on the market : http://goo.gl/pzqH4

RoboSpice uses a new approach : it executes network requests inside an Android Service.
To learn more about RoboSpice in 30 seconds, have a look at this infographics : http://goo.gl/jxNin

Activities (or other contexts) can bind very easily to the RoboSpice Service to add new requests, cancel requests, etc.
RoboSpice provides automatic caching of requests' results, various formats are supported.

Main features of RoboSpice:

  • executes asynchronously (in a background AndroidService) network requests (ex: REST requests using Spring Android)
  • is strongly typed ! You make your requests using POJOs and you get POJOs as request results.
  • enforce no constraints neither on POJOs used for requests nor on Activity classes you use in your projects
  • caches results (in Json with both Jackson and Gson, or Xml, or flat text files, or binary files, even using ORM Lite)
  • notifies your activities (or any other context) of the result of the network request if and only if they are still alive
  • no memory leak at all, like Android Loaders, unlike Android AsyncTasks
  • notifies your activities on their UI Thread
  • uses a simple but robust exception handling model
  • is open source ;)
  • and tested

RoboSpice's GitHub repo contains sources, javadoc, sample app, presentation slides, infographics, even a DIY T-shirt !

https://github.com/octo-online/robospice

RoboSpice is maven-ready : http://search.maven.org/#search%7Cga%7C1%7Crobospice