• 为什么 Android 开发者都应该尝试一下 Anko?


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

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

    Anko 主要有四个模块:

    • Commons
    • Layouts
    • SQLite
    • Coroutines

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

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

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

    通过使用 Anko 可以把代码缩减为:

    button.onClick { }
    

    Intent

    当我们希望跳转到新的 Activity 时,代码类似这样:

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

    而通过 Anko:

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

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

    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
    推荐阅读: 跨浏览器问题的五种解决方案

  • 相关阅读:
    单例模式的奇幻漂流
    webmin安装简介
    Linux下添加磁盘创建lvm分区
    教训 Mac下装windows系统 失败后 磁盘空间丢失
    Mac下安装 php+nginx+mysql 开发环境
    记一次 nginx 504 Gateway Time-out
    twemproxy 安装
    centos6.7下 编译安装MySQL5.7
    vagrant 配置文件简析
    VNC配置连接远程服务器桌面-linuxwindows
  • 原文地址:https://www.cnblogs.com/jpush88/p/10999173.html
Copyright © 2020-2023  润新知