christoffer/readtracker — pull request #1 by peter-tackage (2014-05-03 13:42:26+00:00)
Title: Google Books API rework

This is a speculative reworking of the Google Books API Search functionality. At this stage it doesn't try to address any significant user facing behaviour, but just the API communication.

- Move relevant code to googlebooks package
- Add Retrofit based API definition
- Rework model structure and use Gson based JSON deserialization
- Remove AsyncTask and replace with RxJava observable/subscription
- Use default test package name to support better unit testing of package level methods
- Introduce FEST based JUnit assertions for improved test readability

I'm a little concerned that the efficiency of the JSON deserialization has regressed slightly due to the use of Gson and the subsequent multiple class response structure involved. Also the checking of "invalid" books is now deferred to the Activity, rather than being left out of the returned collection. Perhaps the RxJava Observable could provide each Volume individually and then use a filter() call to remove those that are invalid?

Let me know what you think and if you have any suggestions.