這篇文章先談?wù)勎易约旱囊苿?dòng)開(kāi)發(fā)體會(huì);然后具體談?wù)労螘r(shí)使用原生的移動(dòng)應(yīng)用開(kāi)發(fā),何時(shí)使用原生態(tài)的移動(dòng)web開(kāi)發(fā);最后提出一種軟件企業(yè)的移動(dòng)開(kāi)發(fā)策略,既滿(mǎn)足現(xiàn)在,又能把控未來(lái)。當(dāng)然自己是做企業(yè)級(jí)開(kāi)發(fā),這里所說(shuō)的軟件是指企業(yè)級(jí)軟件,并非互聯(lián)網(wǎng)軟件。
我與移動(dòng)應(yīng)用開(kāi)發(fā)
原生態(tài)的應(yīng)用我自己選擇了iOS學(xué)習(xí)了一段時(shí)間;隨后學(xué)習(xí)了jquery mobile開(kāi)發(fā)框架;服務(wù)端是使asp.net webservice。 這三者的結(jié)合就可以很完美的開(kāi)發(fā)一個(gè)移動(dòng)應(yīng)用程序。在使用iOS開(kāi)發(fā)應(yīng)用程序的時(shí)候,自己思考最多的是未來(lái)如何快速的移植到 Android ,Windows Phone上。后來(lái)發(fā)現(xiàn)jquery mobile這個(gè)web開(kāi)發(fā)框架,隱隱感覺(jué)到這個(gè)才是未來(lái),使用它開(kāi)發(fā)出來(lái)的界面與iOS的界面并無(wú)二致,而且只需將jquery mobile開(kāi)發(fā)的程序部署在服務(wù)器上,iOS 、Android 、Windows Phone上都可以使用。缺點(diǎn)是用戶(hù)體檢沒(méi)有原生應(yīng)用那么完美,前面說(shuō)到web應(yīng)用主要是運(yùn)行到服務(wù)端,解析之后發(fā)送到客戶(hù)端的瀏覽器上,加上手機(jī)的帶寬有限,響應(yīng)速度就沒(méi)那么快了。那么對(duì)于企業(yè)來(lái)說(shuō)原生應(yīng)用和web應(yīng)用如何抉擇呢?
如何抉擇
對(duì)于下面幾種場(chǎng)景,建議使用原生的開(kāi)發(fā)方式。
1、創(chuàng)建游戲:盡管你可以使用web的方式開(kāi)發(fā)移動(dòng)游戲,但是無(wú)論如何是不能跟原生態(tài)媲美的。
2、需要精確地定位:瀏覽器也可以定位,但是不精確。
3、使用攝像頭
4、使用加速計(jì)
5、需要訪(fǎng)問(wèn)移動(dòng)設(shè)備的本地文件系統(tǒng)
6、離線(xiàn)用戶(hù)
除了上面等幾種情況之外,建議都可以使用web 開(kāi)發(fā)應(yīng)用程序。
企業(yè)的開(kāi)發(fā)的策略
喬布斯說(shuō)Web是未來(lái),雖然現(xiàn)階段Native給了用戶(hù)更好的體驗(yàn)。如果現(xiàn)在的開(kāi)發(fā)者不有效的利用Web技術(shù),那他就落伍了。但如果過(guò)分依賴(lài)Web,完全不用Native那也未必就是好事。
那么企業(yè)現(xiàn)階段到底如何進(jìn)行移動(dòng)應(yīng)用的開(kāi)發(fā)呢?個(gè)人覺(jué)得解決方案是使用webview。開(kāi)發(fā)方式是原生+web。
webview是瀏覽器控件??梢允褂迷谠膽?yīng)用程序中內(nèi)嵌一個(gè)瀏覽器控件。
對(duì)于正在進(jìn)行移動(dòng)應(yīng)用原生態(tài)的開(kāi)發(fā)的企業(yè)來(lái)說(shuō),建議盡量多使用此控件。盡量讓頁(yè)面使用jquery mobile等web框架實(shí)現(xiàn),然后用此控件去展示。對(duì)于上面提到的使用攝像頭、加速計(jì)、訪(fǎng)問(wèn)本地文件可以使用原生態(tài)api去實(shí)現(xiàn)。這樣做的原因很簡(jiǎn)單:用Jquery mobile實(shí)現(xiàn)的是共用的代碼,未來(lái)可以運(yùn)行在多個(gè)平臺(tái)。
web app還是未來(lái)。但由這種方式的原生態(tài)app轉(zhuǎn)換到web app就不難了。