我参与了Android应用程序的开发,这是一个相当"厚"的Web服务移动客户端.它与服务器进行了大量的通信,但也有很多内部逻辑.所以,我决定使用Google Guava库的一些功能来简化开发过程.以下是我非常感兴趣的功能列表:不可变集合,基本工具,集合扩展,函数编程糖和习语(common.collect和common.base),原语实用程序(common.primitives),散列实用程序(common.hash),并发工具(期货和AsyncFunction).我不想在Android中使用的东西:( common.cache见下面的问题),common.eventbus(我们有更好的Android专用库,比如Otto),common.io(我们现在可以使用okio for Android).
我读到使用Guava for Android可以显着减慢编译过程并降低整个运行时性能: Android上的Guava Cache性能不佳 (在这种情况下它是合理的,不需要使用Guava的Android缓存)和 添加Google Guava到Android项目 - 显着减慢了构建速度
那么,在Android项目中使用Guava库是否有效,或者这个库只用于服务器端开发,我应该使用标准解决方案?任何解释都将非常感激.
我正在学习Kotlin,看起来我可能希望在明年使用它作为我的主要语言.然而,我不断得到相互矛盾的研究,Kotlin有或没有不可变的集合,我想弄清楚我是否需要使用Google Guava.
有人可以给我一些指导吗?它默认使用不可变集合吗?什么操作符返回可变或不可变的集合?如果没有,是否有计划实施它们?