【尚武科技APP開(kāi)發(fā)原創(chuàng)內(nèi)容】這兩年多以來(lái)因?yàn)槭袌?chǎng)的不同和確實(shí)也出現(xiàn)了不一樣的需求。起hi各個(gè)技術(shù)都有了新的發(fā)展。對(duì)于Hybrid App來(lái)說(shuō),都有很大的進(jìn)步都有了一些新的解決方案。為了確實(shí)的解決問(wèn)題,其實(shí)最終思想都會(huì)被還原成以下幾個(gè)點(diǎn)上,首先:根據(jù)需求,選擇工具;
1、要做的第一個(gè)就是,用適當(dāng)?shù)墓ぞ咦鲞m當(dāng)?shù)氖虑椋嗅槍?duì)性地解決問(wèn)題;
2、對(duì)于開(kāi)發(fā)者來(lái)說(shuō),做的有用功越多,用戶(hù)體驗(yàn)就越好,反之越差;
3、跨平臺(tái)是一個(gè)"方法",最重要是合適的解決方式,什么都做得到不代表什么都做得好
Hybrid技術(shù)也基本在跟隨這幾個(gè)點(diǎn)來(lái)走。
接下來(lái)要做的工作就是,根據(jù)需求選擇工具
1、如果你使用過(guò)Jquery Mobile,你做過(guò)過(guò)場(chǎng)動(dòng)畫(huà)(就是從一個(gè)view去到另一個(gè)view),過(guò)場(chǎng)動(dòng)畫(huà)在iOS的navigationController中很常見(jiàn)而且很簡(jiǎn)單效果很好很流暢。在Jquery Mobile中使用ajax,css去實(shí)現(xiàn)了,核心代碼可能就幾十行。可能跟iOS里面的差不多(如果包含動(dòng)畫(huà)),但是實(shí)際出來(lái)的效果卻差強(qiáng)人意。我們經(jīng)常會(huì)發(fā)現(xiàn)出現(xiàn)類(lèi)似的問(wèn)題:頁(yè)面抖動(dòng),感覺(jué)不連貫,在部分的設(shè)備下運(yùn)行緩慢。
2、如果應(yīng)用要求的體驗(yàn)并不是很高,例如一些新聞?wù)故绢?lèi)應(yīng)用,更強(qiáng)調(diào)排版。這里小小的體驗(yàn)差距,就可以忽略了。但是如果你的應(yīng)用非常強(qiáng)調(diào)體驗(yàn)細(xì)節(jié),這里的解決方案可能就不適合了。所以也要看量級(jí)和應(yīng)用要求。你要做優(yōu)化,優(yōu)化的時(shí)間可能足以夠你去開(kāi)發(fā)更多的東西了。所以是,繼續(xù)選擇用一個(gè)不成熟的工具,還是選擇去學(xué)習(xí)一種新的語(yǔ)言呢?根據(jù)需求確定。
3、在使用HTML和CSS編寫(xiě)應(yīng)用界面時(shí)確實(shí)很爽,但是效率不填好。那為什么不嘗試把應(yīng)用內(nèi)容直接搬到Canvas里面,構(gòu)造一套足夠強(qiáng)大的工具,一套足夠彪悍的UI組件,把整個(gè)應(yīng)用運(yùn)行于Canvas中。想法是很好的,但是其實(shí)里面的短板頁(yè)也就出現(xiàn)了,Canvas的性能雖高,但是里面的元素組件多了你不足以一直保持高效的運(yùn)行。所有的東西都會(huì)依賴(lài)于JavaScript,這對(duì)于Javascript來(lái)說(shuō)要構(gòu)造足夠強(qiáng)悍的面向?qū)ο蟮慕M件,也非簡(jiǎn)單之事,拋棄了CSS和HTML,意味著內(nèi)部的設(shè)計(jì)組件能夠高度定制。完全是實(shí)現(xiàn)了一套新的xcode和ui庫(kù),就不是在解決一兩個(gè)問(wèn)題了。既然有這么一個(gè)工具,尚武科技的給您的建議選擇更好的工具,例如Xamarin。
最后就是用適當(dāng)?shù)墓ぞ咦鲞m當(dāng)?shù)氖虑椋螒虻牡墓究赡苡泻苌畹捏w會(huì)。為了解決Canvas性能的問(wèn)題,越來(lái)越多的人和應(yīng)用廠(chǎng)商提供一種解決方案就是希望將Canvas API和系統(tǒng)底層的API打通。但是意味著你只需要編寫(xiě)Canvas代碼,實(shí)際做渲染的時(shí)候使用的是系統(tǒng)底層的東西,整體上提高了性能。因此這就是問(wèn)題的關(guān)鍵了,是你是否真正的解決了這樣的問(wèn)題和進(jìn)行了高效的APP的開(kāi)發(fā)工作。