原生開發能不能動態化?如何選擇動態能力建設流派?
原生開發能不能動態化?準確的說是能的,而且 Android 平臺各公司都有很完善的動態化方案,甚至 Google 還提供了 Android App Bundles 讓開發者們可以更好地支援動態化。而反觀 iOS,由於 Apple 官方擔憂動態化的風險,因此並不太支援動態化(去年還封殺了 JSPatch 等一類動態修復方案),因此比較通用的原生動態化方案几乎沒有,只有各大廠自己實現的一些動態化框架。
“動態化”並不是最近幾年才產生的名詞,而是從從網際網路誕生的初期,這個詞就已經出現了。大家所認知的早期網際網路,其實就是各種各類的“動態網站”,內容資料和頁面外觀都不是固定的,都是隨著伺服器端的更新而更新的,讓使用者可以很及時地看到最新的內容。因此,動態化可以說是網際網路的標誌,是網際網路最核心的特性之一。
從一開始基於 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方式,微信、支付寶、美團、
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的開發方式,支援動態化配置和定製,開發人員可以根據使用者需求進行個性化的應用定製。
低成本:小程式的開發成本相對較低,可以透過第三方小程式開發平臺或開發工具快速搭建應用,降低了應用開發的成本和門檻。
基於小程式的動態化方案具有跨平臺、快速迭代、靈活性、低成本等優勢,適用於中小型企業或個人開發者開發輕量級應用的場景。
移動網際網路的普及,移動端被各類原生應用所佔據,而這些應用更近似於 Software,依託於應用市場進行更新,只有其中的資料是實時的。這樣,每次產品的更新,必須依賴使用者的主動更新,從而造成了一定的使用者成本,不利於產品的快速迭代,降低應用的試錯能力。因此,移動端動態化方案逐漸走進大家的視野,並被大家所關注。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026130/viewspace-2947129/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 原生開發能不能動態化?如何選擇動態能力建設的流派
- 靜態模型一鍵動態化,教你如何整合動作捕捉能力模型
- 高匿動態IP代理如何選擇?
- 動態選擇表示例
- 靜態照片一鍵動態化,教你如何整合人像復活能力
- 工廠模式進階用法,如何動態選擇物件?模式物件
- 創業,你選擇靜態還是動態語言?創業
- web?混合?原生?移動開發的三種模式選擇Web移動開發模式
- 關於自動化平臺的動態選單設計
- 動態隱藏/顯示選擇螢幕
- 教你如何構建Mojave動態桌布
- 動態篩選
- 關於自動化平臺的動態選單設計(二)
- ElementUI級聯選擇器動態載入DemoUI
- 動態表單是什麼?如何開發?
- React Router、And、Redux動態選單和動態路由ReactRedux路由
- Java動態程式設計---動態代理Java程式設計
- 如何開發視覺化大屏?報表自動化是最優選擇!視覺化
- 動態建立選單
- 小程式:動態資料實現三級聯動選擇器
- 報表怎麼動態選擇資料來源
- 使用Jquery和Ajax的動態依賴選擇框jQuery
- jQuery選擇器獲取元素並非是動態jQuery
- 如何動態刪除css的偽物件選擇器程式碼例項CSS物件
- Nuxt動態ip啟動開發服務UX
- 探索AI驅動Web開發動態UIAIWebUI
- 如何選擇網站建設?網站
- 動態選路協議協議
- 如何構建自動化的前端開發流程前端
- 如何在Linux使用者態開發驅動Linux
- Jsp動態網頁開發JS網頁
- 開發動態編輯的表格
- 端動態化方案詳細設計
- JavaScript動態設定select下拉選單預設選項JavaScript
- 移動端動態方案–VideoOS技術選擇及具體實施IDE
- 移動端動態方案--VideoOS技術選擇及具體實施IDE
- win10動態桌面如何設定_win10怎麼啟動動態桌面Win10
- 重點人員動態管控平臺建設,情指勤一體化管理系統開發