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中,開放給社群使用


Advertisement

更多 iThome相關內容