Airbnb对外开源了内部几乎所有应用程式开发,都会用上的Android应用程式框架MvRx(发音为Mavericks)。MvRx提供了一个框架,无论是简单或是复杂的Android应用程式,工程师都能以比从前更轻易的方式进行开发工作,虽然MvRx新框架是完全原生的,但是却能减少50%到75%的产品代码。
随着业务量暴增,Airbnb的应用程式需要提供更多的功能,来支持这些工作,在过去一年,Airbnb总共在应用程式中,增加了286个屏幕画面,而且这个成长趋势并没有减缓的迹象,Airbnb软件工程师Gabriel Peal提到,他们需要简化重复的工作模式,才能专注于发布产品。
Gabriel Peal表示,在撰写Android应用程式时,工程师有非常多应该注意或是考虑的事情,以打造高品质的应用程式。这些工作包括一遍又一遍的创建工具栏布局、RecyclerView以及Footer,还要在Android生命周期和开发流程中纠结,在onSaveInstanceState中适当保存视图状态和业务逻辑,并且为了网络或资料库呼叫等非同步请求,执行onSuccess和onFailure处理程序等。
开发工作的琐事远远不只这些,于是Airbnb开发了MvRx来让这些事情变得更加简单。MvRx建立在Google的基础架构元件RxJava和Epoxy上,而且MvRx还是Kotlin优先且Kotlin唯一的框架。Gabriel Peal表示,仅限使用Kotlin,可以让框架利用该语言特有强大的功能提供更干净的API。Gabriel Peal建议,对于Kotlin不熟的开发者,可以在使用MvRx前,浏览Kotlin Koans或是其他教程。
下图是Gabriel Peal提供的范例程序片段,虽然只有18行代码,在该片段可视范围中存在一个ViewModel,但保留跨配置变更、屏幕预设布局和可测试状态。当状态改变时,屏幕便会自动更新,但也只有真正实际更改的部分,才会被分派到RecyclerView进行更新,另外,这些代码都在后台执行绪执行,MvRx可以良好无缝地处理执行绪。
短短数个月,MvRx已经成为Airbnb内部接近百分之一百开发Android应用程式的新方法,俨然已经成为标准,经内部调查,93%接受调查的工程师,在满分10分的评比下给出了平均8分的好评价。Gabriel Peal表示,他们甚至没有主动推荐内部工程师使用,但在测试阶段过后,采用率就直线上升,在团队开始采用MvRx的几个月来,他们已经开发了超过110个屏幕画面,这开发效率让MvRx成为静态或是动态复杂的开发首选,而现在于GitHub中,开放给社群使用。
留言与评论(共有 0 条评论) |