前言
目前來說主流的App開發(fā)方式有三種:Native App 、Web App、Hybird App,而3種方式下又分別有眾多的框架可供選擇,一句話,前端的技術(shù)層出不窮,五花八門,讓人應(yīng)接不暇。這里簡單介紹下這幾種方式的優(yōu)缺點(diǎn)以及分別挑幾種熱門的框架簡單介紹下。
概述
Native App(原生APP開發(fā)模式):
Native App開發(fā)即我們所稱的傳統(tǒng)APP開發(fā)模式,該開發(fā)針對IOS(OC
或者swift
)、Android(Java
或者kotlin
)等不同的手機(jī)操作系統(tǒng)要采用不同的語言和框架進(jìn)行開發(fā),是專門針對某一類移動(dòng)設(shè)備而生的,它們都是被直接安裝到設(shè)備里, APP應(yīng)用所有的UI元素、數(shù)據(jù)內(nèi)容、邏輯框架均安裝在手機(jī)終端上。
優(yōu)點(diǎn):
1.可輕易調(diào)用手機(jī)所有硬件實(shí)現(xiàn)功能
2.速度更快、性能高、整體用戶體驗(yàn)最好
3.質(zhì)量安全性很高缺點(diǎn):
1.開發(fā)周期長及維護(hù)成本高(比如ios和android需2端開發(fā)2個(gè)app)
2.學(xué)習(xí)成本高(ios必須會(huì)swift,android必須會(huì)Java)
Web App(HTML5 APP 框架開發(fā)模式):
Web App即我們通常所說的H5 app,主要通過HTML,CSS,JS構(gòu)建頁面,然后發(fā)布到服務(wù)器,用戶通過手機(jī)網(wǎng)絡(luò)訪問這些頁面。類似微信公眾號等
優(yōu)點(diǎn):
1.項(xiàng)目獨(dú)立,維護(hù)更容易,兼容多平臺
2.開發(fā)周期短,學(xué)習(xí)成本低
3.更新發(fā)版更容易缺點(diǎn):
1.體驗(yàn)不好,對設(shè)備和網(wǎng)絡(luò)要求高,經(jīng)常卡頓,性能差
2.無法調(diào)用系統(tǒng)硬件
Hybrid App(混合模式移動(dòng)應(yīng)用):
Hybrid App是指介于Web App、Native App這兩者之間的app, Hybrid App主要以JS+Native兩者相互調(diào)用為主,從開發(fā)層面現(xiàn)“一次開發(fā),多處運(yùn)行”的機(jī)制,成為真正適合跨平臺的開發(fā),是目前乃至未來發(fā)展的趨勢。
優(yōu)點(diǎn):
1.維護(hù)容易,能調(diào)用部分系統(tǒng)硬件,兼容多平臺
2.開發(fā)周期短,學(xué)習(xí)成本低缺點(diǎn):
1.可能需要會(huì)原生開發(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
看名字就知道,這個(gè)是使用html和jQuery構(gòu)建的手機(jī)應(yīng)用,它唯一的優(yōu)點(diǎn)估計(jì)也就是上手簡單了,以前jQuery畢竟是前端必備技能,這幾年連jQuery都很少開發(fā)者用了,甚至大公司都在重構(gòu)準(zhǔn)備去jQuery化,所以,這個(gè)框架,基本涼了,不過不得不承認(rèn)jQuery那些年的影響力,太大了。
AmazeUI
號稱中國首個(gè)開源 HTML5 跨屏前端框架,移動(dòng)端優(yōu)先,基于jQuery,現(xiàn)在用的人還是有不少,它提供了不少的web組件和js插件,而且調(diào)用極其簡單,樣式也還可以。
但是,amazeui項(xiàng)目github2年前就停更了,后面又搞了個(gè)基于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ā)展勢頭猛,個(gè)人覺得也是移動(dòng)開發(fā)的趨勢。
Flutter
要說最近最火的跨平臺移動(dòng)開發(fā)框架,非flutter莫屬。flutter是google的移動(dòng)UI框架,可以快速在iOS和Android上構(gòu)建高質(zhì)量的原生用戶界面。注意,是原生用戶界面,意味著,它的性能基本是和原生一樣的。
flutter與用于構(gòu)建移動(dòng)應(yīng)用程序的其它大多數(shù)框架不同,因?yàn)閒lutter既不使用WebView,也不使用操作系統(tǒng)的原生控件。 相反,F(xiàn)lutter使用自己的高性能渲染引擎來繪制widget,flutter使用C、C ++、Dart和Skia(2D渲染引擎)構(gòu)建;flutter 用Dart作為開發(fā)框架和widget的語言。
Ionic
Ionic提供了一個(gè)免費(fèi)且開源的移動(dòng)優(yōu)化HTML,CSS和JS組件庫,來構(gòu)建高交互性應(yīng)用。基于Sass構(gòu)建和Angular優(yōu)化。
即將發(fā)布的Ionic4是一次重大的升級,它第一次實(shí)現(xiàn)了與框架無關(guān),不再必須使用Angular,你可以使用Vue,React,JQuery或者干脆不使用任何框架來進(jìn)行Ionic開發(fā),這一切都是因?yàn)榭梢允褂肧tencil來構(gòu)建標(biāo)準(zhǔn)web components
React Native
React Native是Facebook 開源的跨平臺移動(dòng)應(yīng)用開發(fā)框架,使用JavaScript編寫原生移動(dòng)應(yīng)用,通過聲明式的組件機(jī)制來搭建豐富多彩的用戶界面。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ā)移動(dòng)應(yīng)用,使用同一套代碼來構(gòu)建 Android、iOS 和 Web 應(yīng)用。目前主要支持 Vue.js和 Rax這兩個(gè)前端框架。起步比較晚,社區(qū)沒有 React Native 活躍,資料和開源項(xiàng)目也相對較少
缺點(diǎn):文檔