I am involved in the development of Android application which is a rather "thick" mobile client for a Web service. It heavily communicates with the server but also has a lot of inner logic too. So, I decided to use some features of Google Guava
library to simplify development process. Here is a list of features I'm very interested in: immutable collections, base utils, collection extensions, functional programming sugar and idioms (common.collect
and common.base
), primitives utilities (common.primitives
), hashing utilities (common.hash
), concurrent utils (futures and AsyncFunction
). Things I don't want to use in Android: common.cache
(see question below), common.eventbus
(we have better Android specific libs for this, such as common.collect
0), common.io
(we can use common.collect
1 for Android now).
I read that using Guava for Android can significantly slow down compilation process and also decrease the whole runtime performance: Bad performance with Guava Cache on Android (in this case it is reasonable and there is no need to use Guava's cache for Android) and Adding Google Guava to Android project - significantly slows down the build
So, is it efficient to use Guava library in Android project or this library is designed to be used only for the server-side development, and I should go with standard solutions? Any explanations will be very appreciated.