APP的開(kāi)發模式可分(fēn)爲四種:原生(shēng)應用Native App、網頁應用 Web App、混合開(kāi)發 Hybrid App、React Native。
使用相應移動平台特有的開(kāi)發工(gōng)具和語言進行開(kāi)發。
當今最流行的兩大(dà)移動端平台Android和i0S各有自己的一(yī)套獨立的開(kāi)發模式。
基于Android平台的Java語言開(kāi)發
基于iOS平台的Obective-C語言/Swift語言開(kāi)發
優點
1. 執行速度快,界面流暢,動态效果出色
2. 性能穩定,對網絡的依賴性小(xiǎo)
3. 用戶體(tǐ)驗趨于完美,用戶留存率高
4. 可以非常方便地調用操作系統提供的各種功能及終端硬件設備,如讀取本地通訊錄、推送通知(zhī)提醒、調用攝像頭等
缺點
1、Android和iOS上的應用需要單獨開(kāi)發、維護,開(kāi)發成本很高。周期長,價格高。
2、升級更新繁瑣,每個系統要單獨更新,程序猿完成工(gōng)作後,開(kāi)發者要重新上傳,然後審核,用戶才能更新。IOS的審核至少需要一(yī)周,所以對于産品運營,無疑會加大(dà)時間投入。
3、分(fēn)發成本高。
應用
原生(shēng)開(kāi)發适用于無需經常更新程序框架的APP。
除此之外(wài),遊戲類的APP由于要大(dà)量加載顯卡及動畫效果,也通常采用原生(shēng)模式進行開(kāi)發。
Web App是移動網頁開(kāi)發模式,借鑒了傳統Web開(kāi)發方式,利用 HTML , CSS , JavaScript 等技術模仿Native App的界面結構,開(kāi)發适合于移動端顯示的 網頁 ,并通過手機上的 浏覽器 解釋執行。
這裏要特别提一(yī)下(xià)HTML5,即H5。嚴格意義上來說它是第五代HTML标準,并不是一(yī)項技術。而我(wǒ)們平時習慣從廣義上讨論H5,将它打包成一(yī)個解決方案,即看起來很酷炫的移動onepage網站的解決方案,包括HTML5新增的audio标簽,canvas,拖拽特性,本地存儲,websocket通信,同時也包括了CSS等。
1. 可跨平台,跨設備,開(kāi)發成本小(xiǎo)。周期短,價格低。
3. 安裝包小(xiǎo)巧,隻包含框架文件,而大(dà)量的UI元素、數據内容存放(fàng)在雲端。
2. 完全自控,可在網頁上直接調試、修改,可實現實時數據交互,升級更新。用戶不用重新安裝,無須官方審核及應用商(shāng)店(diàn)。
1. 受限于網絡環境,沒有網絡的Web App幾乎沒有任何功能。頁面跳轉需要發送網絡請求,再通過浏覽器解釋執行,交互時間長。若遇到網絡不穩定情況,用戶使用中(zhōng)會有斷斷續續不流暢的感受。
2. 受限于渲染性能。對複雜(zá)圖形、動态效果、自定義字體(tǐ)等支持性不強。
3. 無法很好地調用操作系統提供的硬件設備(如攝像頭)。
4. 用戶體(tǐ)驗很差
适用于商(shāng)城類APP、資(zī)訊、企業集團等需經常更新内容的APP應用。
小(xiǎo)結
Hybrid App是混合開(kāi)發模式,這種模式将 Native App與Web App進行混合開(kāi)發 ,一(yī)部分(fēn) 基本界面 用手機系統的 原生(shēng) 語言開(kāi)發。另一(yī)部分(fēn) 功能界面 用 Web 技術開(kāi)發移動端網頁,利用原生(shēng)語言中(zhōng)的WebView進行顯示網頁,這部分(fēn)功能能在不升級APP的情況下(xià)動态更新,且在iOS或Android的App上同時運行。
混合開(kāi)發根據側重點分(fēn)爲三種方案:Web架構爲重、編譯轉換、Native架構爲重。
這裏有種極端情況是隻包了原生(shēng)的殼,裏面其實是H5網頁,大(dà)家要有所了解。
Hybrid App結合了Native App和Web App兩種開(kāi)發模式,把這兩種開(kāi)發模式的優點和缺點折中(zhōng)互補。總體(tǐ)費(fèi)用在原生(shēng)開(kāi)發和HTML5開(kāi)發模式之間。開(kāi)發周期也在兩者之間。簡而言之,中(zhōng)庸之選,在Native APP和Web APP兩者之間。
React Native起源于Facehook的内部項目。它不提供“write once, run anywhere”的解決方案,并不能真正意義上解決同一(yī)份代碼,不同平台運行。而是創新的提出了“Learn once, write anywhere”,即學習一(yī)次,可以在N個平台使用。
React Native App是采用 React Native框架 開(kāi)發的跨平台移動應用。這個框架的原理是 基于網頁開(kāi)發技術并利用JavaScript語言與兩大(dà)平台上的原生(shēng)語言Java和objective-C進行交互,互相調用,從而達到使用JavaScript來寫原生(shēng)應用的目的 。
1. 跨平台,代碼可複用于兩個平台,組件化思想可以幫助開(kāi)發者增加效率。
2. 動态更新。程序的JavaScript代碼放(fàng)在服務器上,用戶在本地備份執行,在程序升級更新時客戶端自動從服務器下(xià)載代碼到本地解釋執行,實現了 熱更新 。JavaScript代碼占用的空間很小(xiǎo),相當于一(yī)份文檔,如今的網絡速度下(xià)載這份代碼用戶幾乎察覺不到。
3. React Native App的性能隻比Native App差一(yī)點,比Web App和Hybrid App強很多,用戶體(tǐ)驗較好。
4. 有個好爹哈哈
1、擴展性不如Web,更遠遠不如Native。
2、發展時間短,不夠成熟,不夠穩定,不夠完善,生(shēng)态系統還在搭建中(zhōng)。