Web App、Hybrid App、Native App 橫向對比
移動端的開發方式三分天下:純原生(Native App)、混合開發(Hybird App)、網頁應用(Web App)。
純原生(Native App):是在 Android、iOS 等移動平臺上利用提供的開發語言、開發類庫、開發工具進行 App 軟體開發。比如 Android 是利用 Java、Eclipse、Android studio;iOS 是利用 Objective-C 和 Xcode 進行開發。純原生開發就像蓋房子一樣,先打地基然後澆地梁、房屋結構、一磚一瓦、鋼筋水泥、電路走向等,都是經過精心的設計。原生透過程式碼把每個頁面、每個功能、每個效果、每個邏輯、每個步驟全部寫出來,每一層,每一段全用程式碼寫出來,難度係數和複雜程度都較高。
混合開發(Hybrid App):主要以 JS+Native 兩者相互呼叫為主,從開發層面實現“一次開發,多處執行”的機制,成為真正適合跨平臺的開發。Hybrid App兼具了 Native App良好使用者體驗的優勢,也兼具了 Web App 使用 HTML5 跨平臺開發低成本的優勢。在開發一款 App 產品的時候,為了提高效率、節省成本而利用原生與H5的開發技術的混合應用,更通俗的講由“HTML5雲網站+APP 應用客戶端”構成的 App 是混合開發。後來隨著微信、支付寶、百度等超級 App 大力發展小程式,我們也逐漸把“小程式+APP應用客戶端”納入到混合開發的範圍內。
網頁應用(Web App):是利用Web技術進行的App開發,Web技術本身需要瀏覽器的支援才能進行展示和使用者互動,因此主要用到的技術是HTML5、Javascript、CSS等,只需要在 Android 和 iOS 直接寫個殼就好了,大大減小了開發成本,而且 Web 是實時渲染的,即使有 Bug ,可以直接釋出就好了。
今天主要分析混合開發(Hybrid App)的優劣勢以及一些經驗的分享。
混合開發的優劣勢
按照國內的實際情況來看,Hybrid App 是最多的移動端開發方式,並且目前已經有眾多 Hybrid App 開發成功應用,例如我們日常使用的微信、支付寶、淘寶、抖音等一系列高活躍 App 都是混合開發的代表。
為什麼 Hybrid App 會如此收到開發者的歡迎呢?我們不妨先比較下三種開發模式的特點:
特點 |
混合開發(Hybrid App) |
純原生(Native App) |
網頁應用(Web App) |
---|---|---|---|
語言 |
JAVA、Objective-C、Javascript、CSS等 |
JAVA、Objective-C等 |
Javascript、CSS等 |
學習難度 |
中 |
高 |
低 |
跨平臺效能 |
高 |
低 |
高 |
訪問相容性 |
中 |
低 |
高 |
高階圖形支援 |
中 |
高 |
高 |
熱更新支援度 |
中 |
低 |
高 |
使用體驗 |
高 |
高 |
中 |
從上表就能看出來混合開發處於純原生和網頁應用之間,是一個折中的方案,兼顧了純原生和網頁應用的優勢,但是學習成本也不是太高,適合大多數公司的實際情況。
基於混合開發模式的特點單獨分析的話,其優劣勢主要如下:
一、優勢
1、開發效率高,節約時間。同一套程式碼 Android 和 iOS 基本上都可使用;
2、更新和部署較便捷,每次升級版本只需在伺服器端升級即可,無需上傳到 App Store 稽核;
3、兼顧了部分原生的優秀操作體驗;
4、程式碼維護方便、版本更新快,節省產品成本;
5、比 Web版實現功能多;
6、可離線執行。
二、劣勢
1、功能/介面無法自定:所有內容都是固定的,不能換介面或增加功能;
2、載入緩慢/網路要求高:混合APP資料需要全部從伺服器調取,每個頁面都需要重新下載,因此開啟速度慢,網路佔用高,緩衝時間長,容易讓使用者反感;
3、安全性比較低:程式碼都是以前的老程式碼,不能很好地相容新手機系統,且安全性較低,網路發展這麼快,病毒這麼多,如果不實時更新,定期檢查,容易產生漏洞,造成直接經濟損失;
4、既懂原生開發又懂 H5 開發的高階人才難找。
混合開發的應用場景
哪些條件和情況選擇混合開發是具有較高價效比呢?哪些行業或場景是適合於混合開發模式的呢?
一些需要經常性開展更新內容的 App 是非常適合混合開發模式,另外對於小型團隊來講開發混合應用也是值得優先考慮的,首先是技術難度要求較低,其次開發的時間週期更短利於後續的維護。
具體到哪些行業和場景的話,我會認為電商、金融、資訊等行業會經常性的更新內容、活動,就非常適合用H5或小程式的形式進行承載,因此選擇混合開發模式是最合適不過的。
而對於遊戲、企業管理、物聯網等行業業務趨於平穩較少進行頻繁的發版,且需要兼顧使用者使用體驗選擇原生應用是更為妥當的選項。
此外,如果單從技術角度分析的話,許多企業都已經擁有 Web 開發技能,選擇混合開發方法,在合適解決方案的支援下,Web 開發者只要僅僅運用 HTML、CSS 和 JavaScript 等 Web 技能就能構建 App,並且使用 Web 語言編寫的所有程式碼都可以在不同的移動平臺之間共享,使得開發和日常維護過程變得集中式、更簡短、更經濟高效。
許多分析師也預測,混合開發未來也可能會成為開發前端 App 的預設技術。
更優質的混合開發模式
當然在混合開發模式下也有一些較為明顯的問題,其中之一就是 H5 頁面會經常出現白屏卡頓等問題,這是 HTML 5 的通病,會對使用者體驗造成極大影響,需要有針對性的制定深度最佳化方案才能勉強滿足業務要求。
借鑑網際網路巨頭的經驗現在可以以小程式來替代混合開發中 H5 頁面承載的業務,相較於H5主要的優勢如下:
- 遠超過 H5 的體驗(支援本地快取,Webview,有豐富的元件與支援庫);
- 能獲取更多系統許可權,完成更加豐富的產品設計;
- 可以避免 DOM 洩露(不使用常用的 window 物件與 document 物件);
- 包尺寸有效減少,節省流量和儲存;
- 服務不再受發版所限制,支援熱更新。
也正是基於這個需求,逐步出現
,能夠實現「原生+小程式」的混合開發模式,其實技術原理就是以非入侵性的方式把FinClip SDK嵌入到現有的 App,讓App 具備小程式執行能力,從而轉變為「原生+小程式」的混合開發模式。這個模式也是符合使用者越來越重視各個產品使用體驗的趨勢,相信「原生+小程式」更優質的混合開發模式也會更多的受到開發者的關注和認可。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70017183/viewspace-2924823/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Native App及Hybrid App優缺點介紹!APP
- 常見Hybrid App框架優劣對比APP框架
- Hybrid 混合App開發APP
- Hybrid APP 開發(六):JSSDKAPPJS
- Cordova+Vue快速搭建Hybrid AppVueAPP
- Hybrid App從概念到實戰APP
- 探究Hybrid-APP技術原理APP
- Hybrid App技術解析 — 實戰篇APP
- Hybrid App技術解析 -- 原理篇APP
- Hybrid App技術解析 — 原理篇APP
- Hybrid App技術解析 -- 實戰篇APP
- 小程式會讓Hybrid App崛起嗎APP
- 影片直播app原始碼,純css實現橫向滾動APP原始碼CSS
- AIRVPS WEB APP ENGINEAIWebAPP
- Servlet與Netty橫向對比ServletNetty
- RN幾種腳手架工具的使用和對比(react-native-cli、create-react-native-app、exp)ReactAPP
- Web APP自動更新WebAPP
- Fully-developed Web AppdevWebAPP
- APP上架各大應用市場對比APP
- 《React Native高效開發》之create-react-native-appReact NativeAPP
- 開始測試React Native App(下篇)React NativeAPP
- 開始測試React Native App(上篇)React NativeAPP
- 使用duxapp開發 React Native App 事半功倍UXAPPReact Native
- 我的第一個React Native AppReact NativeAPP
- 讓你的Hybrid App聽懂你的話(Android篇)APPAndroid
- Android 從 Web 喚起 APPAndroidWebAPP
- React-Native從零搭建App(長文)ReactAPP
- Flutter + Native混合棧仿餓了麼APPFlutterAPP
- 應用於 Hybrid App 的 Vue 多頁面構建APPVue
- LPL選手卡登陸比心APP,比心app為大家奉上電競盛宴APP
- 直播app開發,滑動式的頂部導航欄(左右橫向滑動)APP
- 已有web網站變成appWeb網站APP
- 為 Python Web App 編寫 DockerfilesPythonWebAPPDocker
- PhoneGap Hybrid APP 開發實戰(1):第一個 Android APKAPPAndroidAPK
- 小程式出現是否能開啟Hybrid App崛起之路APP
- 開源一個天氣APP Build with React NativeAPPUIReact Native
- React Native釋出APP之打包iOS應用React NativeAPPiOS
- Flutter Cupertino Tutorial: How to Build an iOS App That Looks and Feels NativeFlutterUIiOSAPP