之前一直在做Java的項(xiàng)目,最近要開發(fā)移動(dòng)端,對App的開發(fā)剛開始的時(shí)候是沒有任何概念的,有接觸也就是玩手機(jī)用過的N多App,這算是真正意義山的第一次和App握手相識!
App,你知道多少?
目前主流的應(yīng)用程序有三大類:
一、 什么是Native App?
Native App即原生應(yīng)用,即我們一般所稱的客戶端,是針對不同手機(jī)系統(tǒng)單獨(dú)開發(fā)的本地應(yīng)用,如需使用需要先下載到手機(jī)并安裝,下載Native App的最常見方法是訪問應(yīng)用程序商店,如蘋果的App Store、安卓市場、Google Play等。在技術(shù)實(shí)現(xiàn)上一般采用針對操作系統(tǒng)的特定語言進(jìn)行編寫,如:使用Objective-C開發(fā)iOS應(yīng)用,使用Java+Android開發(fā)android應(yīng)用。
優(yōu)點(diǎn)
運(yùn)行效率高
可調(diào)用各種設(shè)備資源
缺點(diǎn)
人力成本高
發(fā)布速度慢(AppStore確認(rèn)的時(shí)間很長)
更新版本的問題(用戶就是不更新?。?/p>
實(shí)現(xiàn)圖文混排等功能擁有各種坑!
二、 什么是Web App?
Web App又叫Web應(yīng)用,簡單的說就是一個(gè)觸屏版的網(wǎng)站。Web應(yīng)用完全用HTML、JavaScript和CSS等Web技術(shù)開發(fā),通過移動(dòng)設(shè)備的瀏覽器來訪問,缺點(diǎn)是這些基于瀏覽器的應(yīng)用無法調(diào)用系統(tǒng)API來實(shí)現(xiàn)一些高級功能,也不適合高性能要求的場合。WebApp的核心思路:
常見Web App框架對比:
優(yōu)點(diǎn)
開發(fā)成本低,使用現(xiàn)有的Web開發(fā)技術(shù)即可
適用范圍廣,覆蓋所有智能手機(jī),跨平臺(tái)和終端
方便、快捷地部署,無需用戶安裝
用戶總能訪問到最新版本,迭代更新容易
可被搜索引擎收錄并帶來流量
缺點(diǎn)
瀏覽體驗(yàn)短期內(nèi)還無法超越原生應(yīng)用
不支持離線模式(HTML5將會(huì)解決這個(gè)問題)
消息推送不夠及時(shí)
調(diào)用本地文件系統(tǒng)的能力弱
較差的和較慢的性能體驗(yàn)(大部分需要鏈接互聯(lián)網(wǎng))
支持圖形和動(dòng)畫效果較差
不適用于應(yīng)用商店及沒有靠下載應(yīng)用盈利機(jī)會(huì)
限制用戶使用功能(比如,相機(jī)、GPS等)
Web APP 的開發(fā)基于HTML5語言。而html5語言本身又有著不可避免的局限性。正是這些局限性的存在,使得Web App在體驗(yàn)中要遜于Native App。具體的首先因素及設(shè)計(jì)要點(diǎn)大家可以去參考《聊聊Web App、Hybrid App與Native App的設(shè)計(jì)差異》
三、 什么是Hybrid App?
Hybrid App又叫混合應(yīng)用,是一種介于Native App、Web App之間的App,它雖然看上去是一個(gè)Native App,但只是一個(gè)UI WebView,里面訪問的是一個(gè)Web App。Hybrid App實(shí)質(zhì)是偽造一個(gè)瀏覽器的apk/ipa原生程序,并運(yùn)行了一個(gè)Web APP。Hybrid App兼具“Native App良好用戶交互體驗(yàn)的優(yōu)勢”和“Web App跨平臺(tái)開發(fā)的優(yōu)勢”。它可以使web開發(fā)人員可以幾乎零成本的轉(zhuǎn)型成移動(dòng)應(yīng)用開發(fā)者,并且相同的代碼只需針對不同平臺(tái)進(jìn)行編譯就能實(shí)現(xiàn)在多平臺(tái)的分發(fā),而相較于Web App,開發(fā)者可以通過包裝好的接口,調(diào)用大部分常用的系統(tǒng)API。
優(yōu)點(diǎn)
綜合了開發(fā)效率和運(yùn)行效率
發(fā)版本更方便
缺點(diǎn)
運(yùn)行效率中等(切換等交互效果)
需要寫一點(diǎn)原生代碼(至少2個(gè)平臺(tái))
四、 Web App、Hybrid App、Native App比較
|條件\應(yīng)用程序|Web App|Hybrid App|Native App|
| --:--|--:--|--:--|--:--|
|開發(fā)成本|低|中|高|
|維護(hù)更新|簡單|簡單|復(fù)雜|
|體驗(yàn)|差|優(yōu)|優(yōu)|
|Store或market認(rèn)可|不認(rèn)可|認(rèn)可認(rèn)可|
|安裝|不需要|需要|需要|
|跨平臺(tái)|優(yōu)|優(yōu)|差|
|開發(fā)語言|網(wǎng)頁語言HTML5+JS|網(wǎng)頁或原生語言|原生語言O(shè)bjectC、java、net等|
|跨平臺(tái)性|高|高|低|
|設(shè)備能力|低|高|高|
|向后兼容|好|好|差|
從上面的表格中可以看出,沒有哪一種開發(fā)方法總是提供所有的優(yōu)點(diǎn)。每一種開發(fā)方法有天生的局限性,沒有哪一種方法能夠滿足現(xiàn)代移動(dòng)企業(yè)的所有要求、應(yīng)對復(fù)雜情況。選擇一種合適的方法取決于企業(yè)的具體要求,可能取決于諸多因素,比如預(yù)算、時(shí)間表、內(nèi)部資源、目標(biāo)市場、所需的應(yīng)用程序功能、IT基礎(chǔ)設(shè)施及其他許多方面。但是有一點(diǎn)很清楚:如今的大多數(shù)公司顯然在兩個(gè)方面之間作取舍:一是用戶體驗(yàn)和應(yīng)用程序功能,另一是開發(fā)成本和產(chǎn)品上市時(shí)間。問題就變成了選擇一種合適的開發(fā)方法,能兼顧企業(yè)的要求和其在預(yù)算和產(chǎn)品上市時(shí)間方面的限制。