基于 CocoaUI 的 iOS 應用 UI 熱更新技術

jopen 9年前發布 | 12K 次閱讀 IOS
 

傳統的 iOS 應用由于蘋果自身的技術所限, 無法實現豐富的 UI 換皮膚(主題)功能, 更不用說 UI 熱更新. 如果要實現換皮膚功能, 只能在開發階段, 提前考慮和設計好幾套 UI(xib), 然后在 app 運行時進行切換. 對于想在節日或者某些特殊節點臨時給界面加一些點綴, 蘋果自身的技術就無法實現了, 只能由開發者自己開動腦筋. 但無論如何, 都需要開發者"提前"想好所有的可能性! 這基本不現實.

而基于 CocoaUI 框架的 iOS 應用, 由于使用 XML+CSS 語言來定義界面, 所以只要程序員在代碼中發起一個簡單的 HTTP 請求, 就能從服務器端獲取一套新的 UI, 從而實現 UI 熱更新. 當然, 這要求在業務邏輯功能不變的前提下, 因為 CocoaUI 框架只解決 UI 相關的問題, 而業務邏輯仍然使用 Objective-C/Swift 語言來編寫.

對于使用 CocoaUI 框架的應用來說, 要實現換皮膚(UI 熱更新), 思路是這樣的:

1. 開發階段, 將一套完整的 XML+CSS 以及圖片文件引入項目中, 打包時將包含這些 UI 資源文件, 所以應用在啟動和使用過程中, 性能不會有任何影響.

2. 程序中實現文件更新功能, 在運行階段從服務器端下載新的一套或者幾套 XML+CSS+圖片 UI 資源文件, 可以采用一些成熟的現有技術, 如斷點續傳, patch 更新等.

3. 一旦一套完整的 UI 資源文件下載完畢, 就可以根據服務器端的指令, 在某個時間, 或者根據某個條件觸發, 切換到新的界面上來.

當然, 你可以用你自己喜歡的加密技術, 用來保護你的 UI 資源, 對于 CocoaUI 來說, 它關心的只是 XML+CSS, 而不一定是文件.

CocoaUI 是一個開源的強大的 iOS 原生 UI 框架, 并不是一個使用 WebView 的混合型瀏覽器框架. 官方網站是: http://www.cocoaui.com/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!