一溺森、概念
App混合開發(fā)癞己,顧名思義,是一個(gè)開發(fā)模式似将,指的是開發(fā)一個(gè)App一部分功能用native構(gòu)建一部分功能用html5構(gòu)建获黔,英文名叫:Hybrid App蚀苛。
在幾年前就已經(jīng)出現(xiàn)了App混合開發(fā)模式,但是真正開始流行始于2014年末玷氏,到了2016年已經(jīng)很流行了堵未,2017年將是鼎盛的一年,因?yàn)楝F(xiàn)在連銀行app都開始用混合開發(fā)了盏触,比如招行渗蟹、建行等。
二耻陕、優(yōu)缺點(diǎn)
混合開發(fā)最大的優(yōu)點(diǎn)是:節(jié)約成本和時(shí)間拙徽,縮短App開發(fā)周期。
最大的缺點(diǎn)我個(gè)人認(rèn)為有兩個(gè):一是性能不是很好诗宣,二是兼容性比較差膘怕。
但隨著Android 5.0+的普及以及iOS 9.0+的普及,性能缺陷和兼容性問題都在下降召庞,也就是說(shuō)如果哪一天Android最低支持版本從5.0開始岛心,iOS最低支持版本從9.0開始了,那么混合開發(fā)App的缺點(diǎn)就明顯會(huì)下降了篮灼,而這一天將在2017年末至2018年初到來(lái)忘古。
三、工具和框架
混合開發(fā)一些開發(fā)工具和框架其實(shí)很早就有了诅诱,比如AppCan髓堪、PhoneGap(Cordova)等,他們都主張一站式開發(fā)娘荡,簡(jiǎn)單的說(shuō)干旁,一個(gè)純html5的開發(fā)人員就可以開發(fā)和發(fā)布Android和iOS的App了,不需要專門的Android和iOS開發(fā)人員炮沐。雖然感覺這樣開發(fā)起來(lái)很快很簡(jiǎn)單争群,但是遇到問題和特殊需求的時(shí)候,就開始頭疼了大年,再加上框架本身也存在一定的性能消耗换薄,在Android 5.0和iOS 9.0以下,開發(fā)出來(lái)的App就顯得很雞肋翔试。所以依我的經(jīng)驗(yàn)來(lái)看轻要,并不推薦找?guī)讉€(gè)純html5的開發(fā)人員就開始“干大事”。
四遏餐、怎么去做好混合開發(fā)
上面說(shuō)了伦腐,找?guī)讉€(gè)純html5的開發(fā)人員就開始做混合開發(fā),這個(gè)是不實(shí)際的失都。主要是因?yàn)椋?柏蘑、不是所有的App就用html5來(lái)做就可以滿足需求,有些特殊場(chǎng)景和特殊的頁(yè)面以及高性能頁(yè)面需要用到原生的支持粹庞,2咳焚、一些復(fù)雜算法/重要信息用html5來(lái)實(shí)現(xiàn)和管理。
綜上庞溜,我認(rèn)為以后大部分混合App以后都會(huì)朝著以下方向去努力:
1革半、努力做到原生部分占20%,html5部分占80%流码。
2又官、原生將實(shí)現(xiàn):App主界面框架(可能含啟動(dòng)頁(yè)面)、要求高性能的頁(yè)面(如聊天/視頻通話頁(yè)面)漫试、復(fù)雜算法/重要信息的存儲(chǔ)或通信六敬。
而目前這兩年來(lái)說(shuō)(2017~2018年),大部分App只能做到35%左右的原生以及65%左右的html5驾荣。
一個(gè)混合App項(xiàng)目的前端開發(fā)人員的分布大概會(huì)是1:1:2.5外构,即:
小型項(xiàng)目:1個(gè)Android,1個(gè)iOS播掷,2~3個(gè)html5
中大型項(xiàng)目:2個(gè)Android审编,2個(gè)iOS,4~6個(gè)html5
五歧匈、混合開發(fā)產(chǎn)生影響
1垒酬、以后幾年Android和iOS開發(fā)人員需求量將逐漸減小,而html5開發(fā)人員需求量將越來(lái)越大件炉,而從Android或iOS轉(zhuǎn)html5的開發(fā)人員將慢慢越來(lái)越吃香勘究。
2、html發(fā)展進(jìn)程將加快妻率,將越來(lái)越多的html框架和工具出現(xiàn)乱顾。
推薦以下常用混合開發(fā)框架
WeX5遵循Apache開源協(xié)議,完全開源免費(fèi)宫静,上百個(gè)組件框架走净,全部開放,可視化的組件框架孤里,開發(fā)者可自定義組件伏伯,集成第三方組件,采用MVC設(shè)計(jì)模式捌袜,數(shù)據(jù)和視圖分離说搅,頁(yè)面描述和代碼邏輯分離,支持瀏覽器調(diào)試虏等、真機(jī)調(diào)試弄唧、原生調(diào)試适肠,等多種調(diào)試模式,開發(fā)者可掌握每一行代碼候引。
WeX5一直堅(jiān)持采用H5+CSS3+JS標(biāo)準(zhǔn)技術(shù)侯养,一次開發(fā),多端任意部署澄干,確保開發(fā)者成果始終通用逛揩、不受限制。WeX5的混合應(yīng)用開發(fā)模式能輕松調(diào)用手機(jī)設(shè)備麸俘,如相機(jī)辩稽、地圖、通訊錄等从媚,讓開發(fā)者輕松應(yīng)對(duì)各類復(fù)雜數(shù)據(jù)應(yīng)用逞泄,代碼量減少80%。同時(shí)開發(fā)出的應(yīng)用能夠媲美原生的運(yùn)行體驗(yàn)静檬。
WeX5的可視化開發(fā)炭懊,堅(jiān)持為開發(fā)者提供良好開發(fā)體驗(yàn),拖拽式頁(yè)面設(shè)計(jì)拂檩,易學(xué)易用侮腹,拖拽組件、設(shè)置屬性即可完成復(fù)雜技術(shù)能力稻励。
[2]APICloud
APICloud是中國(guó)領(lǐng)先的“云端一體”的移動(dòng)應(yīng)用云服務(wù)提供商父阻。 APICloud為開發(fā)者從“云”和“端”兩個(gè)方向提供API,簡(jiǎn)化移動(dòng)應(yīng)用開發(fā)技術(shù)望抽,讓移動(dòng)應(yīng)用的開發(fā)周期從一個(gè)月縮短到7天加矛。基于APICloud提供的“云API”和“端API”煤篙,開發(fā)者甚至可以忘記繁雜的服務(wù)端編碼斟览,也可以忘記復(fù)雜的Objective-C和Java,更可以忘記那數(shù)不清的屏幕適配辑奈。
APICloud推行“云端一體”的理念苛茂,重新定義了移動(dòng)應(yīng)用開發(fā),幫開發(fā)者搞定一切鸠窗。
[3]MUI ??
MUI是一套前端框架妓羊,由DCLOUD公司研發(fā)而成,提供大量H5和js語(yǔ)言組成的組件稍计,大大提高了開發(fā)效率躁绸,可以用于開發(fā)web端應(yīng)用、web app等應(yīng)用。
[4]微信小程序開發(fā) ??
微信小程序是一種全新的連接用戶與服務(wù)的方式净刮,它可以在微信內(nèi)被便捷地獲取和傳播剥哑,同時(shí)具有出色的使用體驗(yàn)。
[5]phonegap
Phonegap是一款開源的開發(fā)框架庭瑰,旨在讓開發(fā)者使用[HTML]星持、[Javascript]抢埋、CSS等Web APIs開發(fā)跨平臺(tái)的移動(dòng)應(yīng)用程序。原本由Nitobi公司開發(fā),現(xiàn)在由Adobe擁有蛮位。
它需要特定平臺(tái)提供的附加軟件严蓖,例如iPhone的IOS [SDK],Android的Android SDK等饥努,也可以和DW5.5及以上版本配套開發(fā)捡鱼。使用PhoneGap只比為每個(gè)平臺(tái)分別建立應(yīng)用程序好一點(diǎn)點(diǎn),因?yàn)殡m然基本代碼是一樣的酷愧,但是你仍然需要為每個(gè)平臺(tái)分別編譯應(yīng)用程序驾诈。
[6]AppCan
AppCan是國(guó)內(nèi)Hybrid App混合模式開發(fā)的倡導(dǎo)者,AppCan應(yīng)用引擎支持Hybrid App的開發(fā)和運(yùn)行溶浴。并且著重解決了基于HTML5的移動(dòng)應(yīng)用"不流暢"和"體驗(yàn)差"的問題乍迄。使用AppCan應(yīng)用引擎提供的Native交互能力,可以讓HTML5開發(fā)的移動(dòng)應(yīng)用基本接近Native App的體驗(yàn)士败。
與Phonegap支持單一webview使用div為單位開發(fā)移動(dòng)應(yīng)用不同闯两。AppCan支持多窗口機(jī)制,讓開發(fā)者可以像最傳統(tǒng)的網(wǎng)頁(yè)開發(fā)一樣谅将,通過頁(yè)面鏈接的方式靈活的開發(fā)移動(dòng)應(yīng)用漾狼。基于這種機(jī)制饥臂,開發(fā)者可以開發(fā)出大型的移動(dòng)應(yīng)用逊躁,而不是只能開發(fā)簡(jiǎn)易類型的移動(dòng)應(yīng)用。
AppCan提供強(qiáng)大的設(shè)備調(diào)用能力隅熙,電話稽煤、短信、相機(jī)猛们、LBS念脯、傳感器、數(shù)據(jù)庫(kù)等常用的手機(jī)功能弯淘,開發(fā)者可以通過JS接口調(diào)用绿店,輕松構(gòu)建移動(dòng)應(yīng)用。
[7]CrossApp
CrossApp是一款完全開源、免費(fèi)假勿、跨平臺(tái)的移動(dòng)應(yīng)用開發(fā)引擎借嗽,基于最寬松的MIT開源協(xié)議,開發(fā)者根據(jù)自身情況使用CrossApp開發(fā)任何商業(yè)項(xiàng)目转培,官方會(huì)提供每天8小時(shí)的在線頁(yè)面問答式服務(wù)恶导,每個(gè)問題的反饋速度大概在30分鐘左右,回復(fù)率90%浸须。
[8]Cordova
Cordova提供了一組設(shè)備相關(guān)的API惨寿,通過這組API,移動(dòng)應(yīng)用能夠以JavaScript訪問原生的設(shè)備功能删窒,如攝像頭裂垦、麥克風(fēng)等。
Cordova還提供了一組統(tǒng)一的JavaScript類庫(kù)肌索,以及為這些類庫(kù)所用的設(shè)備相關(guān)的原生后臺(tái)代碼蕉拢。
Cordova支持如下移動(dòng)操作系統(tǒng):iOS, Android,ubuntu phone os, Blackberry, Windows Phone, Palm WebOS, Bada 和 Symbian。
[9]React Native ??
React Native (簡(jiǎn)稱RN)是Facebook于2015年4月開源的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架诚亚,是Facebook早先開源的UI框架 React 在原生移動(dòng)應(yīng)用平臺(tái)的衍生產(chǎn)物晕换,目前支持iOS和安卓?jī)纱笃脚_(tái)。RN使用Javascript語(yǔ)言站宗,類似于HTML的JSX闸准,以及CSS來(lái)開發(fā)移動(dòng)應(yīng)用,因此熟悉Web前端開發(fā)的技術(shù)人員只需很少的學(xué)習(xí)就可以進(jìn)入移動(dòng)應(yīng)用開發(fā)領(lǐng)域份乒。
React Native使你能夠在Javascript和React的基礎(chǔ)上獲得完全一致的開發(fā)體驗(yàn)恕汇,構(gòu)建世界一流的原生APP。
(Learn once, write anywhere)
React Native著力于提高多平臺(tái)開發(fā)的開發(fā)效率 —— 僅需學(xué)習(xí)一次或辖,編寫任何平臺(tái)瘾英。
[10]ionic
ionic是一個(gè)用來(lái)開發(fā)混合手機(jī)應(yīng)用的,開源的颂暇,免費(fèi)的代碼庫(kù)缺谴。可以優(yōu)化html耳鸯、css和js的性能湿蛔,構(gòu)建高效的應(yīng)用程序,而且還可以用于構(gòu)建Sass和AngularJS的優(yōu)化县爬。ionic會(huì)是一個(gè)可以信賴的框架阳啥。
其它連接資料
微信小程序開發(fā)文檔
AppCan教程
React Native教程
CrossApp教程
Cordova教程
jQuery Mobile教程
注如有新的框架將持續(xù)更新