前言
目前來說主流的App開發(fā)方式有三種:Native App 吃既、Web App姻僧、Hybird App,而3種方式下又分別有眾多的框架可供選擇赦肋,一句話纯赎,前端的技術(shù)層出不窮谦疾,五花八門,讓人應(yīng)接不暇址否。這里簡單介紹下這幾種方式的優(yōu)缺點以及分別挑幾種熱門的框架簡單介紹下餐蔬。
概述
Native App(原生APP開發(fā)模式):
Native App開發(fā)即我們所稱的傳統(tǒng)APP開發(fā)模式,該開發(fā)針對IOS(OC
或者swift
)佑附、Android(Java
或者kotlin
)等不同的手機操作系統(tǒng)要采用不同的語言和框架進(jìn)行開發(fā)樊诺,是專門針對某一類移動設(shè)備而生的,它們都是被直接安裝到設(shè)備里音同, APP應(yīng)用所有的UI元素词爬、數(shù)據(jù)內(nèi)容、邏輯框架均安裝在手機終端上权均。
優(yōu)點:
1.可輕易調(diào)用手機所有硬件實現(xiàn)功能
2.速度更快顿膨、性能高、整體用戶體驗最好
3.質(zhì)量安全性很高缺點:
1.開發(fā)周期長及維護(hù)成本高(比如ios和android需2端開發(fā)2個app)
2.學(xué)習(xí)成本高(ios必須會swift叽赊,android必須會Java)
Web App(HTML5 APP 框架開發(fā)模式):
Web App即我們通常所說的H5 app恋沃,主要通過HTML,CSS必指,JS構(gòu)建頁面囊咏,然后發(fā)布到服務(wù)器,用戶通過手機網(wǎng)絡(luò)訪問這些頁面塔橡。類似微信公眾號等
優(yōu)點:
1.項目獨立梅割,維護(hù)更容易,兼容多平臺
2.開發(fā)周期短葛家,學(xué)習(xí)成本低
3.更新發(fā)版更容易缺點:
1.體驗不好户辞,對設(shè)備和網(wǎng)絡(luò)要求高,經(jīng)绸耍卡頓底燎,性能差
2.無法調(diào)用系統(tǒng)硬件
Hybrid App(混合模式移動應(yīng)用):
Hybrid App是指介于Web App刃榨、Native App這兩者之間的app, Hybrid App主要以JS+Native兩者相互調(diào)用為主书蚪,從開發(fā)層面現(xiàn)“一次開發(fā)喇澡,多處運行”的機制,成為真正適合跨平臺的開發(fā)殊校,是目前乃至未來發(fā)展的趨勢晴玖。
優(yōu)點:
1.維護(hù)容易,能調(diào)用部分系統(tǒng)硬件为流,兼容多平臺
2.開發(fā)周期短呕屎,學(xué)習(xí)成本低缺點:
1.可能需要會原生開發(fā)以支持更多的硬件調(diào)用
2.性能跟原生還是有差距,對設(shè)備有一定要求
NativeApp
以前ios開發(fā)用的OC語言敬察,現(xiàn)在基本都是用swift了秀睛。而android,以前用的都是Java莲祸,去年google官宣kotlin成為android開發(fā)的官方語言蹂安,不過,現(xiàn)在用的開發(fā)者還是比較少锐帜,android studio已支持kotlin田盈。
Web App
JQuery Mobile
看名字就知道,這個是使用html和jQuery構(gòu)建的手機應(yīng)用缴阎,它唯一的優(yōu)點估計也就是上手簡單了允瞧,以前jQuery畢竟是前端必備技能,這幾年連jQuery都很少開發(fā)者用了蛮拔,甚至大公司都在重構(gòu)準(zhǔn)備去jQuery化述暂,所以,這個框架建炫,基本涼了畦韭,不過不得不承認(rèn)jQuery那些年的影響力,太大了肛跌。
AmazeUI
號稱中國首個開源 HTML5 跨屏前端框架廊驼,移動端優(yōu)先,基于jQuery惋砂,現(xiàn)在用的人還是有不少,它提供了不少的web組件和js插件绳锅,而且調(diào)用極其簡單西饵,樣式也還可以。
但是鳞芙,amazeui項目github2年前就停更了眷柔,后面又搞了個基于react的amazeui-touch框架期虾,不過在出了1.0release后,也停更了驯嘱,最后一次更新是在2017年10月镶苞。
其他H5 UI框架
其他還有蠻多的,甚至純js鞠评,html也可以開發(fā)web app茂蚓,普遍存在性能差,對設(shè)備和網(wǎng)絡(luò)要求高等問題剃幌。這些年聋涨,興起的公眾號和小程序甚至快應(yīng)用,基本可以取代它們了负乡。
Hybird App
Hybird App近年來發(fā)展勢頭猛牍白,個人覺得也是移動開發(fā)的趨勢。
Flutter
要說最近最火的跨平臺移動開發(fā)框架抖棘,非flutter莫屬茂腥。flutter是google的移動UI框架,可以快速在iOS和Android上構(gòu)建高質(zhì)量的原生用戶界面切省。注意最岗,是原生用戶界面,意味著数尿,它的性能基本是和原生一樣的仑性。
flutter與用于構(gòu)建移動應(yīng)用程序的其它大多數(shù)框架不同,因為flutter既不使用WebView右蹦,也不使用操作系統(tǒng)的原生控件诊杆。 相反,F(xiàn)lutter使用自己的高性能渲染引擎來繪制widget,flutter使用C何陆、C ++晨汹、Dart和Skia(2D渲染引擎)構(gòu)建;flutter 用Dart作為開發(fā)框架和widget的語言。
Ionic
Ionic提供了一個免費且開源的移動優(yōu)化HTML贷盲,CSS和JS組件庫淘这,來構(gòu)建高交互性應(yīng)用」剩基于Sass構(gòu)建和Angular優(yōu)化铝穷。
即將發(fā)布的Ionic4是一次重大的升級,它第一次實現(xiàn)了與框架無關(guān)佳魔,不再必須使用Angular曙聂,你可以使用Vue,React鞠鲜,JQuery或者干脆不使用任何框架來進(jìn)行Ionic開發(fā)宁脊,這一切都是因為可以使用Stencil來構(gòu)建標(biāo)準(zhǔn)web components
React Native
React Native是Facebook 開源的跨平臺移動應(yīng)用開發(fā)框架断国,使用JavaScript編寫原生移動應(yīng)用,通過聲明式的組件機制來搭建豐富多彩的用戶界面榆苞。React Native 經(jīng)過 3 年多的發(fā)展稳衬,已經(jīng)比較成熟,雖然至今沒有發(fā)布 1.0 版本坐漏,但其社區(qū)很活躍
React Native所使用的基礎(chǔ)UI組件和原生應(yīng)用完全一致薄疚。 基礎(chǔ)組件使用JavaScript和React的方式組合起來。
Weex
Weex 集成了 WeexSDK 之后仙畦,可以使用 JavaScript 和現(xiàn)代流行的前端框架來開發(fā)移動應(yīng)用输涕,使用同一套代碼來構(gòu)建 Android、iOS 和 Web 應(yīng)用慨畸。目前主要支持 Vue.js和 Rax這兩個前端框架莱坎。起步比較晚,社區(qū)沒有 React Native 活躍寸士,資料和開源項目也相對較少
缺點:文檔