title: REST API Client Library for Android
body: <p>We are building a location based messaging app which uses Parse.com as back-end
  (Parse.com is similar to Urban Airship/PubNub, etc) and we now want to switch to our own back-end for better control. For this, we have built a node.js based back-end with functionality exposed over REST API</p>
  
  <p>To consume this API, we want to build an Android library (similar to <a href="https://parseplatform.github.io/docs/android/guide/" rel="noreferrer">Parse.com's Android SDK</a>) which abstracts all the HTTP Requests/Response or REST API calls and provides direct functions for various operations like getUsers(), sendMessage(), etc </p>
  
  <p><strong>Ways to implement REST API Client in Android :</strong></p>
  
  <ul>
  <li>Using <a href="http://neilgoodman.net/2012/01/01/modern-techniques-for-implementing-rest-clients-on-android-4-0-and-below-part-2/" rel="noreferrer">IntentService + ResultReceiver</a></li>
  <li>Service</li>
  <li>AsyncTask</li>
  <li>Using <a href="http://neilgoodman.net/2011/12/26/modern-techniques-for-implementing-rest-clients-on-android-4-0-and-below-part-1/" rel="noreferrer">Loaders</a></li>
  </ul>
  
  <p>Now, considering that we want to build an android library and there could be simultaneous REST API calls while the user is interacting with the app, which approach would be the best to go ahead with ? I am open to other suggestions / recommendations as well.</p>
  
  <p><strong>UPDATE</strong>: We first built our own library using IntentService + ResultReceiver which worked fine. But we later stumbled across <a href="http://loopj.com/android-async-http/" rel="noreferrer">Android Async Http</a>. Use it. It's awesome!</p>