Google於2017 I/O發表了Architecture Components library,旨在協助開發者解決常見的lifecycle問題,並更容易實踐關注點分離及data-driven的設計模式,寫出「robust, testable, and maintainable」的app。
Architecture Components是一系列library的總稱,包含ViewModel、LiveData和Room資料庫等,各司其職解決開發過程中常見的問題,可以整套一起使用也可以依需求個別選用。
系列文章將以實作Architecture Components為主並用Google的GithubBrowserSample為藍圖,對各個library從基礎寫法開始,搭配Dagger 2和RxJava 2陸續發展至進階的用法及test case,完成一個如下圖官方建議架構的縮水版GithubBrowser。
由於官方文件和大部分的sample都是用java寫的,所以實作的過程我們也用java方便大家參考其他資源,最後時間夠的話再來轉成Kotlin看看兩者差異。
會使用的library: