蘋果在iOS16.1系統對第三方開放了靈動島的API,並允許開發者基於靈動島開發相應軟體,越來越多的APP開始基於靈動島的交互進行設計和開發,本文將簡單介紹靈動島開發的流程和將其與業務場景相結合的思考。 ...
在移動開發領域,為了讓APP保持最新的版本,同時讓業務開發變得更加快捷,動態化技術極其重要。今天就來聊聊移動端動態和開發的由來和各流派的優缺點。
移動端動態化的由來
“動態化”並不是最近幾年才產生的名詞,而是從從互聯網誕生的初期,這個詞就已經出現了。大家所認知的早期互聯網,其實就是各種各類的“動態網站”,內容數據和頁面外觀都不是固定的,都是隨著伺服器端的更新而更新的,讓用戶可以很及時地看到最新的內容。因此,動態化可以說是互聯網的標誌,是互聯網最核心的特性之一。
而移動互聯網的普及,移動端被各類原生應用所占據,而這些應用更近似於 Software,依托於應用市場進行更新,只有其中的數據是實時的。這樣,每次產品的更新,必須依賴用戶的主動更新,從而造成了一定的用戶成本,不利於產品的快速迭代,降低應用的試錯能力。因此,移動端動態化方案逐漸走進大家的視野,並被大家所關註。
從一開始基於 WebView 的 Hybrid 方案 PhoneGap、Titanium,到現在與原生相結合的 React Native 、Weex,甚至 Flutter,都被或多或少地使用到不同的移動應用中。
原生開發能不能動態化?準確的說是能的,而且 Android 平臺各公司都有很完善的動態化方案,甚至 Google 還提供了 Android App Bundles 讓開發者們可以更好地支持動態化。而反觀 iOS,由於 Apple 官方擔憂動態化的風險,因此並不太支持動態化(去年還封殺了 JSPatch 等一類動態修複方案),因此比較通用的原生動態化方案幾乎沒有,只有各大廠自己實現的一些動態化框架。
動態能力建設方向流派眾多
如何選擇動態能力建設的流派,主要從研發成本、相容性、動態能力、穩定性、操作體驗等方面判斷,需要根據團隊的實際情況來進行選擇。
簡單敘述一下動態化能力建設的主要流派:
1、React-Native
- 優點:歷史悠久、資料豐富、學習楷模
- 缺點:相容性一直被詬病,坑太多玩不動
- 典型代表:Facebook、Linkedin
2、原生+H5
- 優點:平衡性佳、研發可控能力好
- 缺點:原生部分動態能力欠缺
- 典型代表:Hybrid方式依然占據大部分市場
3、原生+小程式(另一種Hybrid方式)
- 優點:同樣擁有平衡性和研發可控性的優點,體驗接近原生,小程式的性能是有目共睹的
- 缺點:與h5一樣原生部分動態能力欠缺
- 典型代表:依然是Hybrid方式,微信、支付寶、美團、FinClip
4、weex flutter
- 優點:性能動態能力兼顧
- 缺點:開發成本高、異構風險大、IDE體系弱
- 典型代表:阿裡系
5、純H5化
- 優點:節省開發資源,動態性最好
- 缺點:相容性問題多,體驗尚與原生有差距
- 典型代表:騰訊系
當然也有純原生的,所剩無幾就不討論了。
動態化流派眾多,各有利弊,沒有最好,各個團隊需要根據自己的項目選擇最合適的方式。以我們團隊為例,目前選擇了Native+小程式的結合,通過在APP中引入 FinClip小程式容器技術,讓App具備小程式運行的環境。從而實現這種基於小程式的Hybrid的方案。以下簡單介紹一下Native+小程式的模式有哪些優點:
首先基於小程式的Hybrid方案,是通過更加定製化的 JSBridge,並使用雙 WebView 雙線程的模式隔離了JS邏輯與UI渲染,形成了特殊的開發模式,加強了 H5 與 Native 混合程度,提高了頁面性能及開發體驗。
小程式運行時本質上是一個處理Web頁面渲染、數據邏輯交互的虛擬機,這個虛擬機提供了豐富的原生能力供小程式調用(API、組件、AI能力等),極大的拓展了Web應用的能力邊界,尤其是在諸如滾動視圖(scrool-view)、導航(navigator)、圖片預覽(cover-image)等組件的提供,使得前端開發人員在使用現有的web前端技術,就可以開發出接近原生體驗的應用。
除了體驗的大大提升,基於小程式的動態化方案相比其他方案,還有以下優勢:
跨平臺:小程式可以在微信、支付寶等平臺中運行,具有良好的跨平臺性,可以在不同的平臺上進行應用開發和發佈。
無需下載安裝:小程式不需要下載和安裝,用戶可以直接通過掃描二維碼或搜索即可進入應用,降低了用戶的使用成本和門檻。
快速迭代:小程式可以實現動態更新,開發人員可以隨時更新應用的業務邏輯和界面交互邏輯,快速迭代和優化應用,提高用戶體驗。
靈活性:小程式使用的是基於HTML、CSS和JavaScript的開發方式,支持動態化配置和定製,開發人員可以根據用戶需求進行個性化的應用定製。
低成本:小程式的開發成本相對較低,可以通過第三方小程式開發平臺或開發工具快速搭建應用,降低了應用開發的成本和門檻。
基於小程式的動態化方案具有跨平臺、快速迭代、靈活性、低成本等優勢,適用於中小型企業或個人開發者開發輕量級應用的場景。