使用Kotlin 重写毕设项目

Kotlin目前已经转正,成为 Android 开发一级语言,前段时间不忙,将毕业设计用Kotlin 进行重写。

毕业设计 Java 版:https://blog.csdn.net/qq_29375837/article/details/82657976

毕业设计Kotlin 版:https://github.com/stevenwsg/XSYBBS/tree/kotlin

下面罗列一下项目中的重点:

1、使用RxJava 和 扩展函数 代替 Handler 实现消息转发 :

//BaseActivity

open class BaseActivity : AppCompatActivity(){


    ........................

    //处理异步消息
    open fun msgManagement(message: Int){

    }
}
//扩展函数

//使用rxjava 代替Handler 立刻发送消息
fun BaseActivity.sendMessage(m : Int){
    Observable
        .empty<Any>()
        .observeOn(AndroidSchedulers.mainThread())
        .doOnComplete({ msgManagement(m) })
        .subscribe()
}
//使用rxjava 代替Handler 延迟发送消息
fun BaseActivity.sendMessageDelayed(m :Int ,d : Long){
    Observable
        .timer(d, TimeUnit.MILLISECONDS)
        .observeOn(AndroidSchedulers.mainThread())
        .doOnComplete { msgManagement(m) }
        .subscribe()
}

2、使用Kotlin Anko 实现后台线程和主线程之前的转换:

        doAsync {
                    ...................
                    // 这部分执行在后台线程
                    uiThread {
                    ...................
                    //这部分执行在UI线程
                    }
                }
            })
        }

3、使用kotlin android extensions省略findViewById()模板代码:

import kotlinx.android.synthetic.main.activity_feedback.*

class FeedBackActivity : BaseActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_feedback)
        bt_back.setOnClickListener { saveFeed() }
    }


    ......
}

4、Toast 扩展函数,后来发现Anko库里面提供Toast 扩展

fun BaseActivity.toast(s : String){
    Toast.makeText(applicationContext,s,Toast.LENGTH_SHORT).show()
}

fun BaseFragment.toast(s : String){
    Toast.makeText(activity!!.applicationContext,s,Toast.LENGTH_SHORT).show()
}

总的来说:
1、kotlin 刚开始熟悉的时候还是有一些别扭的地方,比如,延迟初始化的属性判空前必须先判断是否进行初始化,这对 Java 程序员来说还是需要适应的。
2、Kotlin 能大大减少模板代码,不管是实体类还是各种监听事件,写起来非常舒服。
3、JetBrains 开源的 Kotlin Anko 封装了一系列 日常操作,写起来非常j简约。

源码:https://github.com/stevenwsg/XSYBBS/tree/kotlin

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值