</br>
一窿春、基礎(chǔ)知識
- IONIC
目前最有潛力的一款 HTML5 手機(jī)應(yīng)用開發(fā)框架。通過 SASS 構(gòu)建應(yīng)用程序采盒,它提供了很多 UI 組件來幫助開發(fā)者開發(fā)強(qiáng)大的應(yīng)用旧乞。 它使用 JavaScript MVVM 框架和 AngularJS 來增強(qiáng)應(yīng)用。提供數(shù)據(jù)的雙向綁定磅氨,使用它成為 Web 和移動(dòng)開發(fā)者的共同選擇尺栖。Ionic是一個(gè)專注于用WEB開發(fā)技術(shù),基于HTML5創(chuàng)建類似于手機(jī)平臺原生應(yīng)用的一個(gè)開發(fā)框架烦租。Ionic框架的目的是從web的角度開發(fā)手機(jī)應(yīng)用延赌,基于PhoneGap的編譯平臺除盏,可以實(shí)現(xiàn)編譯成各個(gè)平臺的應(yīng)用程序。
- React Native
使你能夠使用基于 JavaScript 和 React 一致的開發(fā)體驗(yàn)在本地平臺上構(gòu)建世界一流的應(yīng)用程序體驗(yàn)挫以。React Native 把重點(diǎn)放在所有開發(fā)人員關(guān)心的平臺的開發(fā)效率上——開發(fā)者只需學(xué)習(xí)一種語言就能輕易為任何平臺高效地編寫代碼者蠕。Facebook 在多個(gè)應(yīng)用程序產(chǎn)品中使用了 React Native,并將繼續(xù)為 React Native 投資掐松。
- Native
就是使用使用原生java objective-c 開發(fā)踱侣, 各玩各的,無法跨平臺。
</br>
二大磺、優(yōu)劣對比
</br>
-
IONIC :
** 優(yōu)勢:**
1.ios 和 android 基本上可以共用代碼抡句,純web思維,開發(fā)速度快杠愧,簡單方便待榔,一次編碼,到處運(yùn)行流济,如果熟悉web開發(fā)究抓,則開發(fā)難度較低。文檔很全袭灯,系統(tǒng)級支持封裝較好刺下,所有UI組件都是有html模擬,可以統(tǒng)一使用稽荧。
2.可實(shí)現(xiàn)在線更新 允許加載動(dòng)態(tài)加載web js橘茉。
3.文檔多,開發(fā)者多姨丈,視頻教程多 容易學(xué)習(xí)畅卓。
4.遇到問題容易解決,技術(shù)成熟蟋恬。
** 劣勢:**
1.占用內(nèi)存高一些(不過手機(jī)內(nèi)存都大了不影響)翁潘。
2.不適合做游戲類型app,web技術(shù)無法解決一切問題歼争。
3.對于比較耗性能的地方無法利用native的思維實(shí)現(xiàn)優(yōu)勢互補(bǔ)拜马,如高體驗(yàn)的交互,動(dòng)畫等沐绒。
-
React-Native :
** 優(yōu)勢:**
1.雖然不能做到一處編碼到處運(yùn)行俩莽,但是基本上即使是兩套代碼,也是相同的jsx語法乔遮,使用js進(jìn)行開發(fā)扮超。用戶體驗(yàn),高于html,開發(fā)效率較高出刷。
2.flexbox 布局 據(jù)說比native的自適應(yīng)布局更加簡單高效璧疗。
3.可實(shí)現(xiàn)在線更新,在2015年7月馁龟,AppStore審核政策調(diào)整:允許運(yùn)行于JavascriptCore的動(dòng)態(tài)加載代碼崩侠。
4.更貼近原生開發(fā)。
** 劣勢:**
1.(引)對開發(fā)人員要求較高屁柏,不是懂點(diǎn)web技術(shù)就行的啦膜,當(dāng)官方封裝的控件有送、api無法滿足需求時(shí) 就必然需要懂一些native的東西去擴(kuò)展淌喻,擴(kuò)展性仍然遠(yuǎn)遠(yuǎn)不如web,也遠(yuǎn)遠(yuǎn)不如直接寫Native code雀摘。
2.(引)官方說得很隱晦:learn once, write anywhere裸删。人家可沒說run anywhere。事實(shí)上阵赠,從官方的api來看SliderIOS涯塔,SwitchIOS..等等這些控件,之后勢必會(huì)出現(xiàn)SliderAndroid清蚀,SwitchAndroid...匕荸,也就是很可能針對不同的平臺會(huì)需要寫多套代碼。
3.(引)從Native到Web枷邪,要做很多概念轉(zhuǎn)換榛搔,勢必造成雙方都要妥協(xié)。比如web要用一套CSS的閹割版东揣,Native通過css-layout拿到最終樣式再轉(zhuǎn)換成native原生的表達(dá)方式(比如iOS的Constraint\origin\Center等屬性)践惑,再比如動(dòng)畫。另外嘶卧,若Android和iOS都要做相同的封裝尔觉,概念轉(zhuǎn)換就更復(fù)雜。
4. 發(fā)展還不成熟芥吟,目前很多ui組件只有ios的實(shí)現(xiàn)侦铜,android的需要自己實(shí)現(xiàn)。
5. 文檔還不夠完整 學(xué)習(xí)曲線偏高钟鸵。
6. 文檔少泵额,學(xué)習(xí)起來困難。
-
Native :
** 優(yōu)勢:**
1.最好的體驗(yàn)以及功能實(shí)現(xiàn)携添。
2.完善成熟的開發(fā)文檔以及demo嫁盲。
** 劣勢:**
1.android開發(fā)學(xué)習(xí)曲線較高。
2.各個(gè)平臺分開開發(fā) 很難有iOS,android雙平臺高手。
3.開發(fā)成本高 開發(fā)周期長羞秤。