Kotlin的16个Android开发技巧。 第一部分



在阅读这些技巧之前,您应该阅读Kotlin文档并在try.kotlinlang.org自己学习语言。 由于这些技巧专门针对在Android开发环境中使用Kotlin,因此您也应该具有Android SDK的使用经验。 还建议您熟悉Kotlin插件以及JetBrains的Android Studio中Kotlin的使用(Kotlin的创建者)

Kotlin基本Android提示


延迟加载


延迟加载有几个优点。 例如:

  • 您可以节省启动时间,因为延迟加载某些数据直到需要它为止。 对于Android尤其如此,因为用户将更快地看到应用程序的内容,而不必花很长时间等待启动和观看下载水龙头。
  • 您可以节省内存,因为仅在请求时才将资源加载到设备的内存中。 这对于移动平台尤其重要,因为移动电话的资源非常有限。

例如,如果您正在创建一个购物应用程序,其中主要由您的选择来指导用户,那么可以在实际的购物API上配置延迟加载,例如,如下所示:

 val purchasingApi: PurchasingApi by lazy { val retrofit: Retrofit = Retrofit.Builder() .baseUrl(API_URL) .addConverterFactory(MoshiConverterFactory.create()) .build() retrofit.create(PurchasingApi::class.java) } 

使用这种延迟下载的结果是,如果用户不尝试在应用程序中进行购买,则您将不会下载该文件并使用无人认领的资源。

延迟加载也是封装初始化逻辑的好方法,例如:

 val bounds: RectF by lazy { RectF(0f, 0f, width.toFloat(), height.toFloat()) } 

第一次调用后,将根据当前视图的宽度和高度创建RectF实例,从而无需单独创建并设置该对象。

自定义获取器和设置器


要读取Kotlin语言的自定义设置,将使用具有指定用户行为的结构模型来获取和设置字段。 当将模型用于特定框架(例如Parse SDK)时,您选择的值不是局部类变量,而是使用自定义方法(例如,从JSON)检索和存储的值。

使用用户定义的获取和安装方法,我们可以简化访问,例如:

 @ParseClassName("Book") class Book : ParseObject() { // getString() and put() -  ParseObject var name: String get() = getString("name") set(value) = put("name", value) var author: String get() = getString("author") set(value) = put("author", value) } 

检索这些值将类似于在其他模型中使用属性访问语法,例如:

 val book = api.getBook() textAuthor.text = book.author 

现在,如果您需要将模型从Parse转移到其他数据源,则实际上不需要更改代码。

拉姆达


Lambda减少了源文件中代码行的重复,并允许使用功能编程。 尽管lambda目前已在Android上使用,但Kotlin将其提升到一个新的水平,从而确保您不必处理Retrolambda或更改构建方式。

例如,听一个文件看起来像这样:

 button.setOnClickListener { view -> startDetailActivity() } 

这就是返回值的工作方式:

 toolbar.setOnLongClickListener { showContextMenu() true } 

在Android SDK中,通常需要实现其中一种方法。 lambda应对这一切。

资料类别


数据类通过自动添加equals()hashCode()copy()toString()方法来简化类。 它们阐明了应在模型中使用哪些数据,从而将数据与逻辑分离。

例如,这是一个数据类:

 data class User(val name: String, val age: Int) 

仅此而已。 他的工作不再需要。 如果您使用的数据类与Gson或其他JSON类型库类似,则可以创建具有默认值的默认构造函数,例如:

 data class User( @SerializedName("name") val name: String = "", @SerializedName("age") val age: Int = 0 ) 

数据集过滤


在使用API​​时,不断地需要处理集合。 大多数情况下,它们需要过滤或修改内容。

使用筛选集合Kotlin,您可以使代码更简单,更易懂。 您可以通过过滤集合来指定结果列表的内容,例如,

 val users = api.getUsers() val activeUsersNames = items.filter { it.active } adapter.setUsers(activeUsers) 

Kotlin的内置集合过滤方法与Java 8等其他编程语言中使用的方法或使用Swift集合类型的方法非常相似。 与员工交流有关执行特定操作以获取和显示必要项目清单的需求时,统一的集合过滤方法可简化相互了解。

总结了本文的第一部分,并邀请您参加有关“ Android的单元测试”主题的免费网络研讨会

Source: https://habr.com/ru/post/zh-CN479406/


All Articles