淺議四種移動APP的開發模式


移動APP是移動互聯網時代的重要支柱,隨著智能終端設備在全世界的普及,大大小小的公司都在設法把自身的業務往移動終端設備上轉變,從而對于移動APP的開發與運營也有了極大的需求 。本文將結合近年流行的技術,對四種移動APP開發模式進行探討 。

伴隨著4G網絡的發展與移動終端設備的普及,移動APP成為了企業在用戶身邊的重要表現形式,移動APP主要安裝在用戶的手機中,是公司宣傳以及公司與用戶開展業務的重要媒介 。
經統計,中國的網民約有7.31億 , 與全歐洲的人口總和相當,其中使用手機上網人群已高達95.1% 。目前移動端APP開發擁有巨大的市?。?并且未來隨著智能穿戴設備、智能家居和人工智能的迅猛發展,移動APP還具有十分大的發展空間 。

如今開發出一款成功的APP已經成為公司運營的重要一環 , 但APP的開發模式很多,不同模式的實現機理不同,因而會在APP的開發成本、運行性能、升級維護和用戶體驗等方面造成不同的影響 。

1主要開發模式

APP的主要開發模式主要分為四類 , 第一類是原生應用開發,即Native App 。原生應用開發由于手機操作系統的不同又分為成了?剎糠鄭?基于Android平臺的Java語言開發和基于iOS平臺的Objective-C語言/Swift語言開發 。第二類是移動網頁應用開發,即Web App 。網頁應用開發是利用Web技術,使用HTML、CSS和JavaScript開發用于移動端顯示的網頁 。第三類是把Native App和Web App結合的混合開發模式,即Hybrid App 。第四類是基于React Native框架的JavaScript語言開發的類原生應用,即React Native App 。

1.1 Native App開發模式

Native App是本地開發方式,基于手機操作系統進行開發,利用Java、Objective-C或Swift語言進行程序開發,然后編譯成字節碼或機器碼后經操作系統調度運行 。

由于操作系統不同以及開發語言的不同,當今最流行的兩大移動端平臺Android和iOS各有自己的一套獨立的開發模式,兩大平臺差異較大 。現以iOS平臺為例簡述下Native App的開發模式 。首先需要在Mac OS X系統上安裝蘋果公司開發的IDE――Xcode 。Xcode內擁有開發iOS Native App快捷高效的Cocoa Touch框架 , 是開發原生iOS程序的不二選擇 。在Xcode中創建一個Single View Application工程后選用Swift語言開發,會自動生成以Main.storyboard、AppDelegate.swift、ViewController.swift開發核心的若干文件 。其中Main.storyboard用于構建各個頁面之間跳轉關系和具體頁面布局 , 在Xcode的右下角有可拖拽的若干控件,拖拽控件到Main.storyboard后結合AutoLayout為各個控件添加各種布局約束,來保證界面在不同大小的屏幕上的適配 。AppDelegate.swift是為iOS程序做一些初始化設置,主要用于在APP啟動時為重要的數據結構進行初始化,以及響應APP運行時事件,如程序啟動、程序運行內存不足、程序切換等 。程序員可在AppDelegate.swift中的相關函數里對事件響應進行操作 。ViewController.swift就是iOS程序中的初始界面,是UI控件和程序邏輯的控制器 。程序員主要通過ViewController.swift中的viewDidLoad和viewWillAppear等方法對iOS程序的數據層和視圖層進行控制,來表達APP的業務邏輯 。

Native App開發模式的優勢在于Native App是編譯后的文件,執行速度快,界面動畫十分流暢,對網絡的依賴性??,記]逖楹芎?。Native App基于平臺層可以非常方便地調用操作系統提供的各種功能,如調用攝像頭、推送信息和讀取本地通訊錄等 。

Native App開發模式的劣勢主要是:開發周期長,兩套獨立的知識體系復雜且學習成本高,依賴操作系統而無法進行跨平臺開發,APP版本升級繁瑣需要重新把源文件編譯打包再由用戶下載覆蓋安裝 。

1.2 Web App開發模式

Web App是移動網頁開發模式,借鑒了傳統Web開發方式,利用HTML、CSS、JavaScript等技術模仿Native App的界面結構,開發適合于移動端顯示的網頁 , 并通過手機上的瀏覽器解釋執行 。

與Native App開發模式相比,Web App開發模式的優勢有以下幾點 。首先,知識體系與原本開發網頁的方式相似,便于大量的傳統網頁開發人員學習;其次,網頁是跨平臺的,相同的業務邏輯無須迎合操作系統的不同而開發Android和iOS兩個APP;最后,Web App運營升級簡單,只需要把服務器上的網頁代碼進行修改即可,用戶不用重新安裝,無須官方審核進入應用商店 。

但Web App存在著很多致命缺陷,過度依賴于網絡,沒有網絡的Web App幾乎沒有任何功能,頁面跳轉需要發送網絡請求再通過瀏覽器解釋執行交互時間長,而且Web App是基于瀏覽器開發的,所以無法很好地調用操作系統提供的功能,這些缺陷使得Web App的用戶體驗很差 。

1.3 Hybrid App開發模式

Hybrid App是混合開發模式,這種模式將Native App與Web App進行混合開發,一部分基本界面用手機系統的原生語言開發,另一部分功能界面用Web技術開發移動端網頁,利用原生語言中的WebView進行顯示網頁 。Hybrid App結合了Native App和Web App兩種開發模式,把這兩種開發模式的優點和缺點折中互補 ?;窘缑媸遣粫洺P薷牡?,需要修改的功能界面用網頁來實現,修改時只需更改服務器中的網頁,實現了功能界面的跨平臺,減輕了開發成本 。基本界面常與用戶進行交互 , 用原生語言進行開發 , 在功能和性能方面比Web App有了較大的提高,提高了用戶體驗 。

這種混合開發的折中方式越來越受到重視,微信和移動QQ等程序都采用了這種方式,從各個方面迎合了需求 。

1.4 React Native App開發模式

React Native App是采用React Native框架開發的跨平臺移動應用 。目前支持最流行的兩大移動平臺――iOS和Android 。React Native App開發模式使用JavaScript、CSS和類似HTML的JSX進行開發,這個框架的原理是基于網頁開發技術并利用JavaScript語言與兩大平臺上的原生語言Java和Objective-C進行交互,互相調用,從而達到使用JavaScript來寫原生應用的目的 。React Native App存在著原生模塊和JavaScript模塊,原生模塊是一個或多個線程,JavaScript模塊只是一個單線程與原生模塊異步執行 。程序最開始執行是在原生模塊中,之后原生模塊會調用JavaScript模塊,程序員把程序代碼用JavaScript語言寫在JavaScript模塊中,JavaScript代碼由手機上的JS解釋器執行 。React Native內封裝了原生的iOS組件和Android組件可在兩大平臺上很好的適配,并且利用Virtual DOM方式更好的渲染UI組件 , 再加上diff算法獲得UI組件在事件響應時需要更新的部分 , 極大地提高了React Native App的性能 , 使其能與原生程序媲美 。

React Native App幾乎具備前幾種開發模式所有的優點 。JavaScript可與Java和Objective-C互相調用 , 從而可以方便地使用操作系統的功能 。只學習React Native這套理論就可以開發兩個主流平臺的App 。程序的JavaScript代碼放在服務器上,用戶在本地備份執行 , 在程序升級更新時客戶端自動從服務器下載代碼到本地解釋執行,實現了熱更新,JavaScript代碼占用的空間很小相當于一份文檔,如今的網絡速度下載這份代碼用戶幾乎察覺不到,而且React Native App的性能只比Native App差一點,比Web App和hybrid App強很多,用戶體驗較好 。

2 結束語

移動互聯網的浪潮,推動著移動開發技術的不斷發展,移動App的開發模式也豐富了起來 。本文探討了目前主流的四種開發模式,這些模式都存在著自身的優勢與不足,在實際開發前應仔細權衡開發人員的知識體系和開發成本 。個人認為React Native App是發展趨勢,適合學習 。不過目前React Native框架還在實驗發展階段,還沒有Native App開發模式成熟 , 最近幾年內應還會以Hybrid App為主要開發模式 。


【淺議四種移動APP的開發模式】

經驗總結擴展閱讀