主要 前端框架?和打包平臺、工具
Web App(網頁應用)
????????????使用的主要前端框架 jQuery Mobile 、amazeui??ThinkPHP Mobile 、 mui框架
????????????打包工具:cordova? phonegap?
Hybrid App(混合應用)
????????????使用的主要前端框架:mui框架??Vue.js?React.js?Ionic 即Angularjs開發生態
????????????打包工具 Hbuilder、Appcan、Wex5、Apicloud
Native App(原生應用)
????????????框架:ios 安卓開發語言
????????????開發工具:Xcode、Eclipse-ADT/Android Studio
各自特點區別
Web app:
主要使用H5(html5、css3、js)語言規范來編寫,對JS語言掌握要求較高 。將 APP僅僅作為一個瀏覽器使用,里面跑在線或者離線的HTML代碼,H5代碼占比超過90%。
Web app的主要工作量在于寫一個兼容性好的H5頁面,包括分辨率、性能、瀏覽器支持等問題。如果對于分別多平臺(不光iOS、Android,可能還有移動網頁版和微信公眾平臺)做Native應用來說,肯定總成本是低的。
好處是如果能一套H5代碼搞定多平臺的話相當省時省力。如果H5代碼寫的好的話,其實在主流機型上的適配和體驗也都過得去。
這個方案的缺點也很明顯,在低配機上性能很差,如果H5代碼寫的不好,兼容性問題一堆,功能、安全性也受到很大的限制。
Hybridapp:
同Webapp使用H5作為主要編程語言,JS將作為主力連接原生SDK模塊,應用中包含了Native代碼(就是原生代碼),并且實現了部分H5體驗不好、或者難以實現的邏輯(比如定位、埋點、本地持久存儲、體感等)。有些情況下,程序的底層框架、核心邏輯、界面框架也會用Native來完成,H5只用來實現業務邏輯,H5代碼占比在40%~80%左右。
上手難度、開發周期、跨平臺屬性
上手難度:
Hybridapp/Webapp:寫一次,運行任何平臺。簡單
React-Native:學一次,寫任何平臺。中等
Nativeapp:學一次,只限運行特定平臺。較難
開發周期:
Webapp:2~3周
Hybridapp:由于第三方工具兼容性、bug處理問題、調用js-原生模塊(熟悉文檔),開發周期在2個月左右
React-Native:1個半月~2個月
Nativeapp:各1個半月~2個月
跨平臺屬性:
Webapp:支持多平臺
Hybridapp:跨iOS、Android、Wp(PhoneGap支持)多平臺
React-Native:跨iOS、Android雙平臺
Nativeapp:不跨平臺
Hybrid app與Native app(就是原生APP)相比
1)混合式app的用戶體驗
頁面與頁面之間的切換,也稱轉場動畫。隨著手機硬件系統的更新換代,webview已有很大程度的提升,但即使是在iphone 6/6s plus上仍然是假性生硬切換,即使無卡頓。那么要做到諸如微信般切換已然無可能。
iOS系統如此,安卓系統情況亦不明朗。而由于混合式app依賴模塊實現原生交互,在沒有大量模塊實現的情況下,需要使用html5-js來代替,體驗更是大打折扣。
2)UI開發受限
許多創業公司由于產品交互需求,需要將app ui做到配色一致或更個性化(如帶卡通下拉刷新),而混合式app的模塊UI已寫固定,自由化UI定制難。
3)集成第三方sdk
Hybrid app想要使用第三方sdk,首先要使用的工具平臺支持,如果平臺不支持,要么你請人寫iOS/android模塊,要么就是等。倘若新集成的sdk出現bug,你所能做的也是等,并沒有其他好的辦法。