
我最近开始学习Kotlin进行Android开发,我非常喜欢。 Kotlin在语法上与Swift非常相似,而且非常方便。 我只是Android开发的初学者,所以很可能还有很多我还没有机会学习的有用的库,但是此列表是我已经成功使用或计划很快完成的一些库。
Kovenant是Kotlin的Promise库(用于简化的异步编程)。 在我的大多数iOS项目中,我都使用PromiseKit ,因此我想为Android找到类似的东西。 Kovenant涵盖了我需要的大多数功能(我注意到的唯一不足是PromiseKit中缺少等效的recover
功能),所以它很适合我。
如果您需要处理应用程序中图像的加载和显示,那么使用Picasso做到这一点非常简单。 除了异步加载和缓存图像,您还可以转换它们,例如:
Picasso.get().load(url).resize(50, 50).centerCrop().into(imageView)
我还使用了picasso-transformations库,该库向Picasso添加了其他转换,例如以圆形形状进行裁剪。
顺便说一句,我最近发现Google推荐使用Glide处理图像,而不是Picasso。 我还没有使用过Glide,但是考虑到Google还建议将Volley库用于几乎没有任何文档并且有一些非常奇怪的错误的网络,我不确定我会多么信任这个建议。
我还没有使用过这个Kotlin库,但是它提供了一种向应用程序添加主题选择功能的简便方法。 我现在将其推迟,并在以后需要此功能时使用。
在我意识到Anko是什么样子以及为什么每个人都爱她之前,我看到周围的每个人都在谈论Anko。 Anko基本上是一组便捷的方法,这些方法将有助于使Kotlin上的Android开发更加轻松和易于理解。
其中包含一些非常奇妙的东西,例如,用于创建和显示吐司消息的超简洁方法:
toast("Hi there!")
对于SnackBar:
longSnackbar(view, "Wow, such duration")
它还大大简化了意图的创建:
startActivity<SomeOtherActivity>("id" to 5)
也有内置的便捷方法可用于受欢迎的意图,例如
browse(url)
并share(text, [subject])
。
Anko还提供了用于创建layout
漂亮DSL,但我尚未使用此功能。 这是文档中的一个示例:
verticalLayout { val name = editText() button("Say Hello") { onClick { toast("Hello, ${name.text}!") } } }
这个库提供了更多的功能,因此绝对值得您关注。
在遇到不寻常的错误以及Volley缺少文档后,我遇到了Fuel,它现在是我在Android中最喜欢的网络库。
Fuel使用Lambda表达式而不是侦听器来处理响应。 作为iOS开发人员,这对我来说似乎更为熟悉。 如果您想用承诺来包装网络,该库也可以与Kovenant一起使用,这是我一直都会做的。
我还没有使用该库来解析JSON,但是当我需要它时,我将尝试使用Forge。 它是由编写Fuel的同一位开发人员编写的,它看起来不错,而且易于使用。
我可能不会发现带有Result类型的America,但是我刚刚开始在iOS中研究它们,因此很高兴能为Kotlin找到这样的库。 这个项目的自述文件很好地说明了如何使用Result类型来改进代码。
另请阅读: “每个Android开发人员都应了解的10个库”