为何 Android 开发者都应该尝试一下 Anko?

简评: 这里介绍的仅仅是 Anko 中很小的一部分,Kotlin + Anko 真的让 Android 开发简化了很多,用了 Anko 基本就能够告别那些什么 Android 不得不知的代码收集贴了。java

Anko 是 JetBrains 针对 Kotlin 推出的 Android 开发库,其目的是经过 Kotlin 让 Android 开发更加简单。浏览器

Anko 主要有四个模块:多线程

  • Commons
  • Layouts
  • SQLite
  • Coroutines

在这篇文章中,咱们先主要介绍其 Commons 模块中的一些内容:app

首先,View.setOnClickListener 方法能够说是广大 Android 开发者写得最多的方法之一了,若是你是用 Kotlin,那么代码看起来应该是相似这样的:async

button.setOnClickListener(object : View.OnClickListener{
 override fun onClick(v: View) {
 }
})

经过使用 Anko 能够把代码缩减为:ide

button.onClick { }

Intent学习

当咱们但愿跳转到新的 Activity 时,代码相似这样:ui

val intent = Intent(this, MainActivity::class.java)
intent.putExtra("id", 5)
intent.putExtra("name", "John")
startActivity(intent)

而经过 Anko:this

startActivity<mainactivity>("id" to 5, "name" to "John")

Anko 还封装了一些经常使用的功能,让咱们无需定义 Intent:idea

browse("https://makery.co")
share("share", "subject")
email("hello@makery.co", "Great app idea", "potato")

尺寸的单位问题

经过 Anko,Android 中的尺寸单位换算也变得无比简单:

val dpAsPx = dip(10f)
sp(15f)

API level 的问题

碎片化是 Android 开发者必需要面对的问题,咱们不但愿无论那些还在用旧版本的用户,但也但愿能使用新 Android 版本中酷炫的功能。最多见的作法是像这样:

if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP){ }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ }

如今让咱们看看 Anko 是怎么作的:

doIfSdk(Build.VERSION_CODES.LOLLIPOP){ }
doFromSdk(Build.VERSION_CODES.LOLLIPOP){ }

真是简单又易懂。

处理线程

处理多线程一直都不太容易,但在 Android 开发中咱们常常须要面对。在 Anko 中的作法会至关的简洁:

doAsync {
 //IO task or other computation with high cpu load
 uiThread {
   toast("async computation finished")
 }
}

集成 Anko

若是你也心动了,想尝试一下,能够经过下面的方式来集成 Anko:

ankoVersion = "0.10.1"
dependencies {
 compile "org.jetbrains.anko:anko-appcompat-v7-listeners:$ankoVersion"
 compile "org.jetbrains.anko:anko-design-listeners:$ankoVersion"
 compile "org.jetbrains.anko:anko-design:$ankoVersion"
 compile "org.jetbrains.anko:anko-sdk15-listeners:$ankoVersion"
 compile "org.jetbrains.anko:anko-sdk15:$ankoVersion"
}

不夸张的说,Anko 能够算是我学习 Kotlin Android 开发的一个重要缘由了。


原文连接: Why every Android developer should use Anko - Kotlin Development
推荐阅读: 跨浏览器问题的五种解决方案

相关文章
相关标签/搜索