隨著移動互聯(lián)網(wǎng)的不斷發(fā)展,移動應(yīng)用開發(fā)成為每一個互聯(lián)網(wǎng)開發(fā)人員都不可能回避的問題。但當(dāng)今零散的移動格局,給移動應(yīng)用開發(fā)帶來了巨大的挑戰(zhàn)。越來越多的操作系統(tǒng)以及各種設(shè)備、形狀系數(shù)和標(biāo)準(zhǔn),使移動應(yīng)用程序開發(fā)成本過高。
不僅如此,移動開發(fā)技術(shù)也日新月異,開發(fā)者在面對這些不同的技術(shù)時經(jīng)常會不知所措,比如對HTML5的濫用、對原生的恐懼以及數(shù)據(jù)整合的紊亂等等。甚至有的開發(fā)者寄希望于某種自己擅長的技術(shù)以圖快速完成一個移動應(yīng)用的開發(fā),而實(shí)際效果卻差強(qiáng)人意。如何真正的實(shí)現(xiàn)跨平臺開發(fā)?
51CTO MDSA線下公開課第二期,特別邀請南京烽火星空技術(shù)運(yùn)營總監(jiān)黃楠老師給大家?guī)怼都夹g(shù)融合在移動應(yīng)用跨平臺開發(fā)中的最佳實(shí)踐》的主題分享。為大家解決移動跨平臺開發(fā)中遇到的難題。
黃楠老師此次分享主要圍繞三個話題:淺談移動應(yīng)用開發(fā)技術(shù)之爭、技術(shù)融合在跨平臺中的實(shí)踐、助力企業(yè)級移動應(yīng)用開發(fā)。
首先黃楠老師以Facebook放棄HTML5轉(zhuǎn)用Native開發(fā)為例,為大家分析Native APP和WEB APP在實(shí)際應(yīng)用中的對比。
當(dāng)業(yè)界還在討論Native APP和WEB APP誰更優(yōu)秀時,Hybrid App趁勢崛起。黃楠老師認(rèn)為:雖然Hybrid App本地調(diào)用能力有所增強(qiáng)但是性能效率、開發(fā)難度依然是不能回避的問題。因?yàn)樵谝粋應(yīng)用中,本地能力調(diào)用頻率不是很高甚至可以沒有,而界面的UI和交互性能和效率是優(yōu)先要保證的,所以僅使用單一的UI(HTML5或者Native等)是無法適應(yīng)目前不斷變化的移動應(yīng)用需求。
黃楠老師為大家介紹了目前主流的開發(fā)方式——互聯(lián)網(wǎng)巨頭在移動應(yīng)用開發(fā)中的選擇與做法。移動互聯(lián)網(wǎng)巨頭以其豐富的行業(yè)經(jīng)驗(yàn)和技術(shù)積累,可以將很多業(yè)務(wù)場景封裝為原生的組件模型提高代碼的重用率,而使用HTML5來應(yīng)對業(yè)務(wù)變化頻繁的問題。
這種UI混搭的方式是目前移動互聯(lián)網(wǎng)公司普遍采用的模式,但是他仍然以編寫原生代碼為主,所以使用門檻較高。對于沒有如此規(guī)模的中小型企業(yè),甚至是游離在移動互聯(lián)網(wǎng)領(lǐng)域之外的開發(fā)者如何能夠駕馭這種開發(fā)模式?黃楠老師也為在現(xiàn)場進(jìn)行了細(xì)致的講解,消除大家的疑慮。
黃楠老師以烽火星空的移動應(yīng)用平臺ExMobi為例,把實(shí)現(xiàn)低門檻的跨平臺解決方案通俗易懂的介紹給開發(fā)者,將原生開發(fā)涉及到的原生UI、基礎(chǔ)能力、本地能力、HTML5能力以及第三方的SDK等找到一種合適的、通用的表現(xiàn)形式。
由于Web開發(fā)具有眾多的開發(fā)者群,而標(biāo)記語言的易讀性和使用門檻較低,以及JS可以作為貫穿原生與HTML5的橋梁工具,所以,如果采用類似于Web一樣的進(jìn)行拼圖式的開發(fā)就能達(dá)到跨平臺,對于開發(fā)者來說是最能接納的一種方式。
黃老師也介紹了ExMobi采用這種思路設(shè)計后的開發(fā)平臺,在UI層上就可以達(dá)到原生UI和HTML5 UI的一個融合,通過標(biāo)簽化的方式調(diào)用,而且調(diào)用方式統(tǒng)一,邏輯處理就更簡單,JS不僅可以處理各個引擎之間的數(shù)據(jù)交互,對于本地能力的調(diào)用也是通過JS來實(shí)現(xiàn)。
所以,對于一些優(yōu)秀的HTML5框架,比如開源的移動前端框架Agile、流行的移動開發(fā)框架Sencha Touch以及Jquery Mobile等都是可以直接使用的,而第三方的SDK資源,比如百度推送、支付寶等是可以無縫集成進(jìn)來。
對于能力的擴(kuò)展,黃楠老師提出了原生接口管理類的解決方案。對于原生的能力如何轉(zhuǎn)換成通用的WEB能力調(diào)用,黃楠老師提出對原生能力進(jìn)行細(xì)致的劃分,針對不同的分類提供相應(yīng)的接口管理類,通過繼承和轉(zhuǎn)換兩個核心步驟將原生能力轉(zhuǎn)化為WEB標(biāo)簽化語言調(diào)用,而不需要直接編寫原生代碼調(diào)用。這種設(shè)計不僅可以讓原生能力的調(diào)用達(dá)到跨平臺的效果,而且對于原生能力的擴(kuò)展和優(yōu)化都提供了強(qiáng)大的技術(shù)保證,讓開發(fā)者不受限于現(xiàn)有能力,定制自己需要的功能。
對于開發(fā)者來說,由于個人移動應(yīng)用收入的減少,許多開發(fā)者想試水企業(yè)級應(yīng)用開發(fā),黃楠老師也從企業(yè)級應(yīng)用開發(fā)方向?yàn)樵趫鐾瑢W(xué)進(jìn)行了講解。
做過企業(yè)級應(yīng)用的開發(fā)的開發(fā)者都知道,企業(yè)級移動開發(fā)有四個痛點(diǎn):集成、安全、運(yùn)維、管理。黃楠老師分別從這四個方面給大家做出了解答。
首當(dāng)其沖的就是集成能力,企業(yè)除了內(nèi)部系統(tǒng)多而雜,更重要的是接口數(shù)據(jù)格式不統(tǒng)一,甚至需要多數(shù)據(jù)糅合展示,這對集成能力提出了很高的要求。所以集成的關(guān)鍵不僅僅是能夠?qū)Σ煌瑪?shù)據(jù)源進(jìn)行對接,更重要的是集成后的格式化輸出。
黃老師也特別提出了對于多端開發(fā)的需求,很多開發(fā)者認(rèn)為多端開發(fā)是前端展現(xiàn)的事情,其實(shí),如果沒有強(qiáng)大的集成能力做支撐,前端再靈活也很難輕松的實(shí)現(xiàn)跨平臺的多端開發(fā)。
所以開發(fā)者對于WEB、APP以及現(xiàn)在比較流行的微信應(yīng)用都要能夠輕松應(yīng)用,這就需要將技術(shù)融合的思想運(yùn)用到集成能力上。
在安全方面,黃楠老師對移動應(yīng)用數(shù)據(jù)運(yùn)行的整個生命周期中可能遇到的問題做了解答,并結(jié)合ExMobi產(chǎn)品進(jìn)行實(shí)例講解,讓希望進(jìn)入企業(yè)移動應(yīng)用開發(fā)市場的開發(fā)者獲得了全面而有效的處理安全隱患的各種實(shí)用技巧和解決方案。
對于企業(yè)在維護(hù)和管理方面的問題,黃楠老師建議使用SOA松耦合的云部署模式,將不同的能力發(fā)布成不同的服務(wù)節(jié)點(diǎn),通過一個管理端來進(jìn)行統(tǒng)一管理和鑒權(quán),這樣不僅可以更有效的利用資源,更能使集群部署、負(fù)載均衡、雙機(jī)熱備和線性擴(kuò)容可以方便的實(shí)施。
最后黃楠老師對前面提到的重要問題做了總結(jié),并建議大部分開發(fā)者,將代碼的重用提升到做一套標(biāo)準(zhǔn)規(guī)范在各平臺進(jìn)行實(shí)現(xiàn),在同一發(fā)布稱js進(jìn)行調(diào)用從而達(dá)到跨平臺的效果。
之后的Q&A環(huán)節(jié)大家提問非常踴躍,可是由于時間關(guān)系,很多開發(fā)者沒有能夠進(jìn)行當(dāng)面的交流。開發(fā)者們可以登陸ExMobi官方網(wǎng)站(www.exmobi.cn)下載視頻教程,也可以加入ExMobi開發(fā)者交流群321316202,與大家一起交流互動。