RoboSpice is a modular android library that makes writing asynchronous long running tasks easy. It is specialized in network requests, supports caching and offers REST requests out-of-the box using extension modules.
- Executes network requests asynchronously (in a background AndroidService)
- Supports REST out of the box (using Spring Android or Google Http Client or Retrofit).
- Is strongly typed ! You query webservices using POJOs as parameters and you get POJOs as request results.
- Enforces no constraints neither on POJOs used for requests nor on Activity classes you use in your projects
- Caches results in Json with both Jackson or Jackson2 or Gson, or Xml, or flat text files, or binary files, even using ORM Lite (still in beta)
- Notifies your activities (or any other context) of the result of the network request with respect to their lifecycles.
- Notifies your activities (or any other context) on the UI Thread
- No memory leaks at all, like Android Loaders, unlike Android AsyncTasks
- Uses a simple but robust exception handling model
- Supports multi-threading of request executions
- Is stable, efficient and designed to respect Android philosophy
- Supports request cancelling, request priorization and requests aggregation
SDK for Android
Enhanced threading model for the SpiceManager and SpiceService. Decreased priority to increase UI Thread performance and enhance user experience.
Add isDataInCache and getDateOfDataInCache to spiceManager. Thx to Onyx Mueller and Mathieu Castets for suggesting this feature.
BitmapRequests, SimpleTextRequests have non final methods to allow developpers to extend them
SpiceList APIs have been changed to allow multiple images per cell view in a list. Thx to Andrea Altobelli for submitting the feature.