- 《iOS 組件化-路由設計思路分析》
- 軟件人員從軟件工程的角度出發,從原來簡單的MVC演化到MVP,MVVM,VIPER等復雜結構。更換適合業務的架構,是為后期更好的維護。
- 要求快速迭代,最好一天出一個新功能,而且要不更新就要體驗到新功能。于是用h5,ReactNative,Weex等技術對已有的項目進行改造。項目架構也變得更加復雜??v向的會進行分層,網絡層,數據層持久層,UI層。每一層會根據業務進行組件化。盡管以后更好維護,增加開發效率,但是如何解耦各層,解耦各界面和組件,保持高內聚,低耦合,是很大挑戰。
- React和VUE一直處于風口浪尖。SPA單頁面應用中,路由起到了關鍵作用。路由的作用是保證URL和頁面同步。在前端看來,視圖是資源的一種表現。當用戶在頁面中進行操作時,應用會在若干個交互狀態中切換,路由則可記錄下某些重要的狀態。而這些變化同樣會在瀏覽器的歷史中。通過前進后退按鈕進行切換??梢酝ㄟ^手動輸入或者與頁面交互來改變URL。然后同步或者異步的方式來發送獲取資源,重繪UI。
- react-router
- URL和UI同步的問題。
- 3Dtouch或通知來了,跳轉到APP內部比較深的層次
- 自家一系列APP之間如何跳轉
- 如何解除APP組件之間和APP界面之間的耦合
- 如何能統一iOS和Android的頁面跳轉邏輯。甚至如何能統一三端的請求資源的方式。
- 如果使用了動態下發配置文件來配置APP的跳轉邏輯,如何做到兩端共用配置?
- 如果APP出現bug,如何不使用JSPatch,就能簡單修復bug?如簡單降級,或者給個錯誤頁面提示。
- 如何每個組件和頁面之間跳轉都進行埋點統計。手寫代碼埋點?利用runtime AOP?
- 如何在每個組件調用過程中,加入調用的邏輯檢查,令牌機制,配合灰度進行風控邏輯。
- 如何在APP任何界面都可以調用同一個界面或者同一個組件。只能在AppDelegate里面注冊單例來實現?
- 都可以在APP端設計一個路由來解決。
- APP之間的跳轉 URL Scheme
- 對一個資源的訪問,蘋果也是用URI的方式來訪問。
- APP內組件間的路由設計。APP內部路由設計,主要解決2個問題:各個頁面組件間的跳轉問題。各個組件之間相互調用問題。
- MVVM,原來View對應的與數據相關的代碼,移到viewModel中,相應的C也變瘦了,演變成M-VM-C-V的結構。這里面的C的代碼可以只剩下頁面跳轉相關的邏輯。
- MVVM框架的一個重要目的,除了解耦外,還有2個很重要的目的:代碼高復用率,方便進行單元測試。如果需要測試一個業務是否正確,我們只需要對viewModel進行單元測試即可。前提是我們假定用rac進行UI綁定的過程是準確無誤的。我們只需要單元測試到viewModel即可完成業務邏輯的測試。
- 頁面跳轉也屬于業務邏輯,所以應該放在viewmodel中一起單元測試。保證業務邏輯測試的覆蓋率。把頁面跳轉放到VM中,一種是路由,一種是ipd-mvvm-kit。
- 頁面跳轉相互的耦合性就體現出來了:
由于push,present后要帶VC,需要引入VC。
由于寫死了跳轉,一旦上線,不受控制
直接跳轉到內部界面,需要寫一個跳轉入口到指定界面 - 組件之間的調用不可避免,相互調用對方組件暴露的接口。
iOS 組件化01
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
推薦閱讀更多精彩內容
- 前言 隨著用戶的需求越來越多,對App的用戶體驗也變的要求越來越高。為了更好的應對各種需求,開發人員從軟件工程的角...
- Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...