iOS 客戶端組件化演變歷程實(shí)例分析
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
架構(gòu)的演進(jìn)是為業(yè)務(wù)不斷發(fā)展服務(wù)的,架構(gòu)不能脫離業(yè)務(wù),這是最基本的出發(fā)點(diǎn)。58 同城 iOS 客戶端隨著業(yè)務(wù)量和用戶量的持續(xù)增長(zhǎng),架構(gòu)也是不斷受到挑戰(zhàn),采用什么樣的架構(gòu)去適應(yīng)這些變化,對(duì)技術(shù)人員來(lái)說(shuō)也是一大考驗(yàn)。58 App 的架構(gòu)先后經(jīng)歷了純 Native、引入 Hybrid 框架、底層服務(wù)組件化、業(yè)務(wù)線組件化,即整個(gè) App 組件化的四個(gè)階段?!?/p>
第一版 App 架構(gòu)
早在 2010 年 58 同城誕生第一版 iOS 客戶端,按照傳統(tǒng)的 MVC 模式去設(shè)計(jì),純 Native 頁(yè)面,這時(shí)的功能較為簡(jiǎn)單,架構(gòu)也是如此,從上至下分為 UI 展現(xiàn)、業(yè)務(wù)邏輯、數(shù)據(jù)訪問(wèn)三層,如圖 1 所示。和同期其他公司一樣,App 的出發(fā)點(diǎn)是為了快速搶占市場(chǎng),采取“短平快”的方式開(kāi)發(fā)。純 Native 的 App 在早期業(yè)務(wù)量不是太大的情況下,能滿足業(yè)務(wù)的需求。
圖 1 App 早期架構(gòu)
第二版架構(gòu)
Hybrid 框架需求
由于蘋果審核周期較長(zhǎng),業(yè)務(wù)需求不斷增大,有些業(yè)務(wù)如果用 Native 進(jìn)行開(kāi)發(fā),工作量大投入人員較多,也不能動(dòng)態(tài)更新,如 58 App 的大類、列表、詳情頁(yè)面。這種情況下,用 HTML5 是比較流行的解決方式,由此產(chǎn)生了第二版架構(gòu),如圖 2 所示,在 UI 層添加了 HTML5 頁(yè)面及 Hybrid 交互框架。
圖 2 帶 Hybrid 的架構(gòu)
當(dāng)時(shí) 58 App 設(shè)計(jì)時(shí)用于加載 HTML5 的組件是 UIWebView,也只能使用這個(gè)(彼時(shí)還沒(méi)有 WKWebView),但實(shí)現(xiàn)起來(lái)有幾個(gè)問(wèn)題是需要解決的:
怎么解決 Hybrid 中 Web 和 Native 交互問(wèn)題,如用戶點(diǎn)擊一個(gè)類別,能調(diào)起 Native 的一些方法去執(zhí)行相關(guān)頁(yè)面跳轉(zhuǎn)或?qū)懭罩尽?/p>
如何提高 HTML5 頁(yè)面的加載速度,HTML5 頁(yè)面加載時(shí)要下載一些 Java、CSS 及圖片資源,是比較耗時(shí)的。
設(shè)置緩存
為了方便描述,本文先介紹如何提高 HTML5 頁(yè)面加載速度的問(wèn)題。
對(duì)于一些訪問(wèn)比較頻繁的頁(yè)面,如大類列表詳情,我們?cè)缙诓捎玫亩际?HTML5 頁(yè)面。要加速這些頁(yè)面的渲染,就要想辦法提升資源的加載。那么如何實(shí)現(xiàn)呢?首先想到的是使用緩存,我們可以把這些頁(yè)面的資源內(nèi)置到 App 中隨版本發(fā)布。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
iOS 客戶端組件化演變歷程實(shí)例分析下載
相關(guān)電子資料下載
- iOS17.1可能明天發(fā)布,iOS17.1主要修復(fù)哪些問(wèn)題? 380
- 華為全新鴻蒙蓄勢(shì)待發(fā) 僅支持鴻蒙內(nèi)核和鴻蒙系統(tǒng)應(yīng)用 719
- 蘋果手機(jī)系統(tǒng)iOS 17遭用戶質(zhì)疑 731
- iPhone12輻射超標(biāo)?蘋果推送iOS 17.1解決此事 750
- 傳華為囤積零部件 目標(biāo)明年智能手機(jī)出貨7000萬(wàn)部;消息稱 MiOS 僅限國(guó)內(nèi),小米 28208
- 蘋果推送iOS17.0.3,解決iPhone15Pro系列存在機(jī)身過(guò)熱 216
- Testin云測(cè)兼容和真機(jī)服務(wù)平臺(tái)中上線iPhone 15系列手機(jī) 208
- 利爾達(dá)推出搭載HooRiiOS的Matter模組 145
- 運(yùn)放參數(shù)解析:輸入偏置電流(Ibias)和失調(diào)電流(Ios) 128
- 昆侖太科發(fā)布支持國(guó)產(chǎn)飛騰騰銳D2000芯片的開(kāi)源BIOS固件版本 448