前言

Google最近推出了Android Architecture Components框架,并在GitHub上传了sample。这个文集用来记录整理学习过程。

问题:

ViewDataBinding.executePendingBindings()的作用和使用场景?
了解Snackbar
了解TextInputLayout
DataBindingComponent是什么?作用?

实际上就是为任意ViewDataBinding实例指定单独的BindingAdapter。

timber,打印日志,可以暂时跳过不看
高效理顺一个开源项目的方法?
什么代码应该写在onActivityCreated里面?
@NonNull @Nullable注解的作用?

在Java中用于标记方法参数、返回值是否可空,在编译期检查。在Kotlin中,使用!、?等符号来区分是否可空。

room 与 kotlin同时使用报错:Error:Execution failed for task ':app:kaptDebugKotlin'.

Entity类中如果存在多个构造器,要使用@Ignore标记,只保留一个用于room创建实例。而在kotlin使用data类时,若指定了参数的默认值,kotlin会自动生成多个构造方法,因此报错。要解决这个错误,关键在于保留一个构造方法,其他用@Ignore标记

@Entity
data class User @Ignore constructor(
        @PrimaryKey
        @SerializedName("login")
        var login: String? = null,
        @SerializedName("avatar_url")
        var avatarUrl: String? = null,
        @SerializedName("name")
        var name: String? = null,
        @SerializedName("company")
        var company: String? = null,
        @SerializedName("repos_url")
        var reposUrl: String? = null,
        @SerializedName("blog")
        var blog: String? = null) {
    constructor() : this(null)
}

目标:
熟悉Architecture Components各组件的作用,掌握各组件的使用方法以及优势和劣势。
学习项目架构
学习单元测试相关工具以及写法
学习项目中Retrofit,glide,DataBinding,dagger的使用方法,进一步掌握这些库。
学习Architecture Components各组件的源码,掌握各组件的实现原理。

参考资料:
官方文档
官方sample地址

你可能感兴趣的:(前言)