手機(jī)版WPS 手機(jī)版wps免費(fèi)下載
2022-11-29
更新時(shí)間:2022-04-17 15:22:50作者:佚名
移動(dòng)APP是移動(dòng)互聯(lián)網(wǎng)時(shí)代的重要支柱,隨著智能終端設(shè)備在全世界的普及,大大小小的公司都在設(shè)法把自身的業(yè)務(wù)往移動(dòng)終端設(shè)備上轉(zhuǎn)變,從而對(duì)于移動(dòng)APP的開(kāi)發(fā)與運(yùn)營(yíng)也有了極大的需求。本文將結(jié)合近年流行的技術(shù),對(duì)四種移動(dòng)APP開(kāi)發(fā)模式進(jìn)行探討。
伴隨著4G網(wǎng)絡(luò)的發(fā)展與移動(dòng)終端設(shè)備的普及,移動(dòng)APP成為了企業(yè)在用戶身邊的重要表現(xiàn)形式,移動(dòng)APP主要安裝在用戶的手機(jī)中,是公司宣傳以及公司與用戶開(kāi)展業(yè)務(wù)的重要媒介。
經(jīng)統(tǒng)計(jì),中國(guó)的網(wǎng)民約有7.31億,與全歐洲的人口總和相當(dāng),其中使用手機(jī)上網(wǎng)人群已高達(dá)95.1%。目前移動(dòng)端APP開(kāi)發(fā)擁有巨大的市場(chǎng),并且未來(lái)隨著智能穿戴設(shè)備、智能家居和人工智能的迅猛發(fā)展,移動(dòng)APP還具有十分大的發(fā)展空間。
如今開(kāi)發(fā)出一款成功的APP已經(jīng)成為公司運(yùn)營(yíng)的重要一環(huán),但APP的開(kāi)發(fā)模式很多,不同模式的實(shí)現(xiàn)機(jī)理不同,因而會(huì)在APP的開(kāi)發(fā)成本、運(yùn)行性能、升級(jí)維護(hù)和用戶體驗(yàn)等方面造成不同的影響。
1主要開(kāi)發(fā)模式
APP的主要開(kāi)發(fā)模式主要分為四類,第一類是原生應(yīng)用開(kāi)發(fā),即Native App。原生應(yīng)用開(kāi)發(fā)由于手機(jī)操作系統(tǒng)的不同又分為成了?剎糠鄭?基于Android平臺(tái)的Java語(yǔ)言開(kāi)發(fā)和基于iOS平臺(tái)的Objective-C語(yǔ)言/Swift語(yǔ)言開(kāi)發(fā)。第二類是移動(dòng)網(wǎng)頁(yè)應(yīng)用開(kāi)發(fā),即Web App。網(wǎng)頁(yè)應(yīng)用開(kāi)發(fā)是利用Web技術(shù),使用HTML、CSS和JavaScript開(kāi)發(fā)用于移動(dòng)端顯示的網(wǎng)頁(yè)。第三類是把Native App和Web App結(jié)合的混合開(kāi)發(fā)模式,即Hybrid App。第四類是基于React Native框架的JavaScript語(yǔ)言開(kāi)發(fā)的類原生應(yīng)用,即React Native App。
1.1 Native App開(kāi)發(fā)模式
Native App是本地開(kāi)發(fā)方式,基于手機(jī)操作系統(tǒng)進(jìn)行開(kāi)發(fā),利用Java、Objective-C或Swift語(yǔ)言進(jìn)行程序開(kāi)發(fā),然后編譯成字節(jié)碼或機(jī)器碼后經(jīng)操作系統(tǒng)調(diào)度運(yùn)行。
由于操作系統(tǒng)不同以及開(kāi)發(fā)語(yǔ)言的不同,當(dāng)今最流行的兩大移動(dòng)端平臺(tái)Android和iOS各有自己的一套獨(dú)立的開(kāi)發(fā)模式,兩大平臺(tái)差異較大?,F(xiàn)以iOS平臺(tái)為例簡(jiǎn)述下Native App的開(kāi)發(fā)模式。首先需要在Mac OS X系統(tǒng)上安裝蘋(píng)果公司開(kāi)發(fā)的IDE――Xcode。Xcode內(nèi)擁有開(kāi)發(fā)iOS Native App快捷高效的Cocoa Touch框架,是開(kāi)發(fā)原生iOS程序的不二選擇。在Xcode中創(chuàng)建一個(gè)Single View Application工程后選用Swift語(yǔ)言開(kāi)發(fā),會(huì)自動(dòng)生成以Main.storyboard、AppDelegate.swift、ViewController.swift開(kāi)發(fā)核心的若干文件。其中Main.storyboard用于構(gòu)建各個(gè)頁(yè)面之間跳轉(zhuǎn)關(guān)系和具體頁(yè)面布局,在Xcode的右下角有可拖拽的若干控件,拖拽控件到Main.storyboard后結(jié)合AutoLayout為各個(gè)控件添加各種布局約束,來(lái)保證界面在不同大小的屏幕上的適配。AppDelegate.swift是為iOS程序做一些初始化設(shè)置,主要用于在APP啟動(dòng)時(shí)為重要的數(shù)據(jù)結(jié)構(gòu)進(jìn)行初始化,以及響應(yīng)APP運(yùn)行時(shí)事件,如程序啟動(dòng)、程序運(yùn)行內(nèi)存不足、程序切換等。程序員可在AppDelegate.swift中的相關(guān)函數(shù)里對(duì)事件響應(yīng)進(jìn)行操作。ViewController.swift就是iOS程序中的初始界面,是UI控件和程序邏輯的控制器。程序員主要通過(guò)ViewController.swift中的viewDidLoad和viewWillAppear等方法對(duì)iOS程序的數(shù)據(jù)層和視圖層進(jìn)行控制,來(lái)表達(dá)APP的業(yè)務(wù)邏輯。
Native App開(kāi)發(fā)模式的優(yōu)勢(shì)在于Native App是編譯后的文件,執(zhí)行速度快,界面動(dòng)畫(huà)十分流暢,對(duì)網(wǎng)絡(luò)的依賴性小,用戶體驗(yàn)很好。Native App基于平臺(tái)層可以非常方便地調(diào)用操作系統(tǒng)提供的各種功能,如調(diào)用攝像頭、推送信息和讀取本地通訊錄等。
Native App開(kāi)發(fā)模式的劣勢(shì)主要是:開(kāi)發(fā)周期長(zhǎng),兩套獨(dú)立的知識(shí)體系復(fù)雜且學(xué)習(xí)成本高,依賴操作系統(tǒng)而無(wú)法進(jìn)行跨平臺(tái)開(kāi)發(fā),APP版本升級(jí)繁瑣需要重新把源文件編譯打包再由用戶下載覆蓋安裝。
1.2 Web App開(kāi)發(fā)模式
Web App是移動(dòng)網(wǎng)頁(yè)開(kāi)發(fā)模式,借鑒了傳統(tǒng)Web開(kāi)發(fā)方式,利用HTML、CSS、JavaScript等技術(shù)模仿Native App的界面結(jié)構(gòu),開(kāi)發(fā)適合于移動(dòng)端顯示的網(wǎng)頁(yè),并通過(guò)手機(jī)上的瀏覽器解釋執(zhí)行。
與Native App開(kāi)發(fā)模式相比,Web App開(kāi)發(fā)模式的優(yōu)勢(shì)有以下幾點(diǎn)。首先,知識(shí)體系與原本開(kāi)發(fā)網(wǎng)頁(yè)的方式相似,便于大量的傳統(tǒng)網(wǎng)頁(yè)開(kāi)發(fā)人員學(xué)習(xí);其次,網(wǎng)頁(yè)是跨平臺(tái)的,相同的業(yè)務(wù)邏輯無(wú)須迎合操作系統(tǒng)的不同而開(kāi)發(fā)Android和iOS兩個(gè)APP;最后,Web App運(yùn)營(yíng)升級(jí)簡(jiǎn)單,只需要把服務(wù)器上的網(wǎng)頁(yè)代碼進(jìn)行修改即可,用戶不用重新安裝,無(wú)須官方審核進(jìn)入應(yīng)用商店。
但Web App存在著很多致命缺陷,過(guò)度依賴于網(wǎng)絡(luò),沒(méi)有網(wǎng)絡(luò)的Web App幾乎沒(méi)有任何功能,頁(yè)面跳轉(zhuǎn)需要發(fā)送網(wǎng)絡(luò)請(qǐng)求再通過(guò)瀏覽器解釋執(zhí)行交互時(shí)間長(zhǎng),而且Web App是基于瀏覽器開(kāi)發(fā)的,所以無(wú)法很好地調(diào)用操作系統(tǒng)提供的功能,這些缺陷使得Web App的用戶體驗(yàn)很差。
1.3 Hybrid App開(kāi)發(fā)模式
Hybrid App是混合開(kāi)發(fā)模式,這種模式將Native App與Web App進(jìn)行混合開(kāi)發(fā),一部分基本界面用手機(jī)系統(tǒng)的原生語(yǔ)言開(kāi)發(fā),另一部分功能界面用Web技術(shù)開(kāi)發(fā)移動(dòng)端網(wǎng)頁(yè),利用原生語(yǔ)言中的WebView進(jìn)行顯示網(wǎng)頁(yè)。 Hybrid App結(jié)合了Native App和Web App兩種開(kāi)發(fā)模式,把這兩種開(kāi)發(fā)模式的優(yōu)點(diǎn)和缺點(diǎn)折中互補(bǔ)?;窘缑媸遣粫?huì)經(jīng)常修改的,需要修改的功能界面用網(wǎng)頁(yè)來(lái)實(shí)現(xiàn),修改時(shí)只需更改服務(wù)器中的網(wǎng)頁(yè),實(shí)現(xiàn)了功能界面的跨平臺(tái),減輕了開(kāi)發(fā)成本。基本界面常與用戶進(jìn)行交互,用原生語(yǔ)言進(jìn)行開(kāi)發(fā),在功能和性能方面比Web App有了較大的提高,提高了用戶體驗(yàn)。
這種混合開(kāi)發(fā)的折中方式越來(lái)越受到重視,微信和移動(dòng)QQ等程序都采用了這種方式,從各個(gè)方面迎合了需求。
1.4 React Native App開(kāi)發(fā)模式
React Native App是采用React Native框架開(kāi)發(fā)的跨平臺(tái)移動(dòng)應(yīng)用。目前支持最流行的兩大移動(dòng)平臺(tái)――iOS和Android。React Native App開(kāi)發(fā)模式使用JavaScript、CSS和類似HTML的JSX進(jìn)行開(kāi)發(fā),這個(gè)框架的原理是基于網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)并利用JavaScript語(yǔ)言與兩大平臺(tái)上的原生語(yǔ)言Java和Objective-C進(jìn)行交互,互相調(diào)用,從而達(dá)到使用JavaScript來(lái)寫(xiě)原生應(yīng)用的目的。React Native App存在著原生模塊和JavaScript模塊,原生模塊是一個(gè)或多個(gè)線程,JavaScript模塊只是一個(gè)單線程與原生模塊異步執(zhí)行。程序最開(kāi)始執(zhí)行是在原生模塊中,之后原生模塊會(huì)調(diào)用JavaScript模塊,程序員把程序代碼用JavaScript語(yǔ)言寫(xiě)在JavaScript模塊中,JavaScript代碼由手機(jī)上的JS解釋器執(zhí)行。React Native內(nèi)封裝了原生的iOS組件和Android組件可在兩大平臺(tái)上很好的適配,并且利用Virtual DOM方式更好的渲染UI組件,再加上diff算法獲得UI組件在事件響應(yīng)時(shí)需要更新的部分,極大地提高了React Native App的性能,使其能與原生程序媲美。
React Native App幾乎具備前幾種開(kāi)發(fā)模式所有的優(yōu)點(diǎn)。JavaScript可與Java和Objective-C互相調(diào)用,從而可以方便地使用操作系統(tǒng)的功能。只學(xué)習(xí)React Native這套理論就可以開(kāi)發(fā)兩個(gè)主流平臺(tái)的App。程序的JavaScript代碼放在服務(wù)器上,用戶在本地備份執(zhí)行,在程序升級(jí)更新時(shí)客戶端自動(dòng)從服務(wù)器下載代碼到本地解釋執(zhí)行,實(shí)現(xiàn)了熱更新,JavaScript代碼占用的空間很小相當(dāng)于一份文檔,如今的網(wǎng)絡(luò)速度下載這份代碼用戶幾乎察覺(jué)不到,而且React Native App的性能只比Native App差一點(diǎn),比Web App和hybrid App強(qiáng)很多,用戶體驗(yàn)較好。
2 結(jié)束語(yǔ)
移動(dòng)互聯(lián)網(wǎng)的浪潮,推動(dòng)著移動(dòng)開(kāi)發(fā)技術(shù)的不斷發(fā)展,移動(dòng)App的開(kāi)發(fā)模式也豐富了起來(lái)。本文探討了目前主流的四種開(kāi)發(fā)模式,這些模式都存在著自身的優(yōu)勢(shì)與不足,在實(shí)際開(kāi)發(fā)前應(yīng)仔細(xì)權(quán)衡開(kāi)發(fā)人員的知識(shí)體系和開(kāi)發(fā)成本。個(gè)人認(rèn)為React Native App是發(fā)展趨勢(shì),適合學(xué)習(xí)。不過(guò)目前React Native框架還在實(shí)驗(yàn)發(fā)展階段,還沒(méi)有Native App開(kāi)發(fā)模式成熟,最近幾年內(nèi)應(yīng)還會(huì)以Hybrid App為主要開(kāi)發(fā)模式。