網(wǎng)約車是以sdk的形式集成到中移動香港MyLink app下的子模塊,根據(jù)用戶身份實(shí)現(xiàn)了乘客下單和司機(jī)接單的約車流程。
項(xiàng)目采用了MVVM架構(gòu),Activity、Fragment、Dialog以及XML文件共同稱為View,用于UI顯示。ViewModel用作View和Model交互的橋梁。Model作為數(shù)據(jù)的具象化載體,封裝了網(wǎng)絡(luò)請求和訪問本地?cái)?shù)據(jù)的方法。
大致來說,每個(gè)View對應(yīng)一個(gè)ViewModel,ViewModel持有零個(gè)至多個(gè)LiveData,View通過監(jiān)聽LiveData中的數(shù)據(jù)而做出相應(yīng)的UI上的改變。其中DataRepository類中提供了共享的LiveData,用于ViewModel與ViewModel之間共享數(shù)據(jù)。DataBinding用于綁定數(shù)據(jù)和設(shè)置監(jiān)聽事件。
網(wǎng)絡(luò)請求采用Retrofit+OkHttp實(shí)現(xiàn),異步請求使用的是協(xié)程。
項(xiàng)目采用kotlin作為開發(fā)語言,使用google map API實(shí)現(xiàn)地圖及路線的展示,通過FireBase實(shí)現(xiàn)消息推送,集成高德導(dǎo)航,并實(shí)現(xiàn)多語言切換以及多語言語音播報(bào)。