iOS應(yīng)用組件化

iOS應(yīng)用組件化:

為什么需要組件化

  1. 在業(yè)務(wù)極速增大的情況下凹髓,各個(gè)團(tuán)隊(duì)并不知道其它團(tuán)隊(duì)具體的業(yè)務(wù)實(shí)現(xiàn)和跳轉(zhuǎn)孵坚,而且并不需要知道付枫,如何進(jìn)行各個(gè)業(yè)務(wù)的通信
  2. 當(dāng)業(yè)務(wù)增大的情況下掐隐,某個(gè)業(yè)務(wù)或許會(huì)被多個(gè)項(xiàng)目引用狗热,有可能還還被交叉使用,如何解決引用問題

我口中的組件化到底是神馬意思

解放大量的重復(fù)工作虑省,減少在各個(gè)項(xiàng)目集成時(shí)的困擾匿刮。比如我在做業(yè)務(wù)的時(shí)候,需要到支付系統(tǒng)手機(jī)收銀臺(tái)探颈,并行開發(fā)熟丸,這時(shí)候我不需要知道他那邊的進(jìn)度如何,他把一個(gè)url模式的東西給我伪节,我直接進(jìn)行url跳轉(zhuǎn)即可虑啤。

組件化的流程

  1. 啟動(dòng)時(shí)首先各個(gè)業(yè)務(wù)去組件中心進(jìn)行注冊(cè)
  2. 對(duì)各個(gè)業(yè)務(wù)組件進(jìn)行初始化
  3. 調(diào)用業(yè)務(wù)組件的url

用協(xié)議模式打開對(duì)應(yīng)Controller

在開發(fā)iOS的時(shí)候,經(jīng)常會(huì)遇到根據(jù)一個(gè)值為string的key去打開一個(gè)controller架馋,然后陪著一些參數(shù)耕肩。例如遠(yuǎn)程通知纳账,webview打開本地頁(yè)面等等蔼水∥坛眩或者兩個(gè)子模塊應(yīng)用并行開發(fā),需要在特定地方打開對(duì)方某個(gè)controller屏鳍。

打開某個(gè)controller勘纯,需要考慮的幾點(diǎn)東西:

  1. 如何得到指定的vc
  2. 參數(shù)傳遞
  3. 上級(jí)頁(yè)面的操作,如:訂單詳情钓瞭,返回上級(jí)頁(yè)面為訂單列表

這里我給一個(gè)指定的url:

xxxdemo://push/second/third?second[a]=1&second[b]=2&third[a]=3&third[b]=4&e=5&f[a][]=6&f[a][]=7&second[c][]=1&second[c][]=2

這里是標(biāo)準(zhǔn)的url格式驳遵,當(dāng)我們?cè)趨?shù)中需要添加一個(gè)url的時(shí)候,我們需要對(duì)url進(jìn)行urlencode再放入(例:xxxdemo://open/third?url=www.baidu.com%3Ftoken%3D123%26a%3D3&b=1)

1.如何得到指定的vc

方法 優(yōu)點(diǎn) 缺點(diǎn)
使用對(duì)應(yīng)表 簡(jiǎn)單易懂山涡,而且性能比較好 擴(kuò)展性差堤结,難維護(hù)
使用類名對(duì)應(yīng) 簡(jiǎn)單,性能好鸭丛,擴(kuò)展好 比較蠢竞穷,android和iOS不通用
使用協(xié)議查詢 擴(kuò)展性好,便于維護(hù) 在查詢過程會(huì)比其它方法消耗更多資源

這里我們使用第三種鳞溉,因?yàn)樽鳛橐粋€(gè)通用庫(kù)瘾带,考慮的更多是其它項(xiàng)目通用性,可擴(kuò)展性以及維護(hù)熟菲。

在庫(kù)中看政,我們會(huì)給出一個(gè)協(xié)議朴恳,當(dāng)業(yè)務(wù)方在業(yè)務(wù)中實(shí)現(xiàn)這個(gè)協(xié)議,那么就相當(dāng)于在我們的注冊(cè)表中注冊(cè)了允蚣,我們把對(duì)應(yīng)的內(nèi)容拿出來為映射的key值菜皂,然后存儲(chǔ)在我們的沙盒里面。下一次厉萝,只需要根據(jù)版本號(hào)是否增加,去判斷是否需要更新這個(gè)文件(當(dāng)然在debug環(huán)境下榨崩,是都更新的)谴垫。

在調(diào)用的時(shí)候,我們只需要去尋找這個(gè)key母蛛,然后根據(jù)value去找到這個(gè)class翩剪,最后把參數(shù)根據(jù)實(shí)現(xiàn)協(xié)議的另外一個(gè)方法傳入,如此便可彩郊。

使用url則是得到url里面的paths前弯、pathComponents,如果用pathComponents秫逝,需要移除:"/"恕出,然后根據(jù)paths去獲取不同的value,可以對(duì)應(yīng)多個(gè)viewcontroller违帆。

2.如何傳遞參數(shù)

如果打開單個(gè)viewcontroller浙巫,那么在viewcontroller里面實(shí)現(xiàn)協(xié)議,然后把url的query傳入即可刷后,但是有些時(shí)候的畴,我們會(huì)遇到一次打開多個(gè)頁(yè)面的情況。

首先尝胆,在對(duì)url進(jìn)行解析的時(shí)候丧裁,判斷是否為多個(gè)paths,單個(gè)則直接把所有query傳入含衔,多個(gè)煎娇,則先根據(jù)query里面的key值找出對(duì)應(yīng)那一個(gè)path的所有參數(shù),然后傳入

3.上級(jí)頁(yè)面的操作贪染,如:訂單詳情逊桦,返回上級(jí)頁(yè)面為訂單列表

這個(gè)問題在1中已經(jīng)解決。

這里的demo我不放出來抑进,如果需要思路可以直接找我

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末强经,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子寺渗,更是在濱河造成了極大的恐慌匿情,老刑警劉巖兰迫,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異炬称,居然都是意外死亡汁果,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門玲躯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來据德,“玉大人,你說我怎么就攤上這事跷车〖” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵朽缴,是天一觀的道長(zhǎng)善玫。 經(jīng)常有香客問我,道長(zhǎng)密强,這世上最難降的妖魔是什么茅郎? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮或渤,結(jié)果婚禮上系冗,老公的妹妹穿的比我還像新娘。我一直安慰自己薪鹦,他們只是感情好毕谴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著距芬,像睡著了一般涝开。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上框仔,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天舀武,我揣著相機(jī)與錄音,去河邊找鬼离斩。 笑死银舱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的跛梗。 我是一名探鬼主播寻馏,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼核偿!你這毒婦竟也來了诚欠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轰绵,沒想到半個(gè)月后粉寞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡左腔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年唧垦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片液样。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡振亮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鞭莽,到底是詐尸還是另有隱情坊秸,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布撮抓,位于F島的核電站,受9級(jí)特大地震影響摇锋,放射性物質(zhì)發(fā)生泄漏丹拯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一荸恕、第九天 我趴在偏房一處隱蔽的房頂上張望乖酬。 院中可真熱鬧,春花似錦融求、人聲如沸咬像。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)县昂。三九已至,卻和暖如春陷舅,著一層夾襖步出監(jiān)牢的瞬間倒彰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工莱睁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留待讳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓仰剿,卻偏偏與公主長(zhǎng)得像创淡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子南吮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容