title: Is it a good idea to use Google Guava library for Android development?
body: <p>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 <code>Google Guava</code> 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 (<code>common.collect</code> and <code>common.base</code>), primitives utilities (<code>common.primitives</code>), hashing utilities (<code>common.hash</code>), concurrent utils (futures and <code>AsyncFunction</code>). Things I <strong>don't want</strong> to use in Android: <code>common.cache</code> (see question below), <code>common.eventbus</code> (we have better Android specific libs for this, such as <a href="https://github.com/square/otto" rel="noreferrer">Otto</a>), <code>common.io</code> (we can use <a href="https://github.com/square/okio" rel="noreferrer">okio</a> for Android now).
  <p> I read that using Guava for Android can significantly slow down compilation process and also decrease the whole runtime performance:
  <a href="https://stackoverflow.com/questions/9283070/bad-performance-with-guava-cache">Bad performance with Guava Cache on Android</a>  (in this case it is reasonable and there is no need to use Guava's cache for Android) and
  <a href="https://stackoverflow.com/questions/7548038/adding-google-guava-to-android-project-significantly-slows-down-the-build">Adding Google Guava to Android project - significantly slows down the build</a>
   <p>So, is it efficient to use Guava library in Android project or this library is designed to be used <b>only</b> for the server-side development, and I should go with standard solutions? Any explanations will be very appreciated.</p></p>