純原生 App開發模式還能走多久?

文中涉及到的幾個概念(信息來自百度百科和百度知道):
  • Native App(原生APP)開發:該開發針對IOS、Android等不同的手機操作系統要采用不同的語言和框架進行開發,該模式通常是由“云服務器數據+APP應用客戶端”兩部份構成,APP應用所有的UI元素、數據內容、邏輯框架均安裝在手機終端上。
  • Web App開發:即是一種框架型APP開發模式(HTML5 APP 框架開發模式),該開發具有跨平臺的優勢,該模式通常由“HTML5云網站+APP應用客戶端”兩部份構成,APP應用客戶端只需安裝應用的框架部份,而應用的數據則是每次打開APP的時候,去云端取數據呈現給手機用戶。
  • Hybrid App:是指介于web-app、native-app這兩者之間的app,它雖然看上去是一個Native App,但只有一個UI WebView,里面訪問的是一個Web App。

一、Web App體驗

最近因為比賽需要,由于時間不怎么充裕,便利用PHP寫了服務器端,jQuery Mobile寫了一個整個 APP的框架(只是簡單的框架)和內容,然后再借助android的WebView控件顯示頁面,就這樣傳說中的Web App就新鮮出爐了。當然這只是簡單的一個小應用,真正的Web App開發還牽涉到更多的知識,這里我們不做討論。

Web App
Web App

雖然是如此簡單的一個小應用,卻也五臟俱全。實現了按鈕,頁面切換,列表信息顯示等功能。而且想要更改頁面布局或者內容,直接在服務器端更改,更改后不用重新打包,打開APP就能直接更新。
綜上所述,Web App有以下幾個特點

  • (1) 框架型APP應用的安裝包小巧,只包含框架文件,而大量的UI元素、數據內容剛存放在服務器端;
  • (2) APP用戶每次都可以訪問到實時的最新的服務器端數據;
  • (3)APP用戶無須頻繁更新APP應用,與服務器端實現的是實時數據交互;
    Web App雖然開發起來簡單好用,但是隨著需要用到的涉及手機的功能越來越多,Web App漸漸顯得力不從心了,于是只好采用Native App開發。

二、Native App開發

因為是一個人開發,為了開發節省時間,我便開始在網上瘋狂的找APP框架。一開始感覺怎么著也得是那種狂拽酷炫屌炸天的效果吧,運行了一個有一個,卻發現很多都是徒有其表,為了效果把代碼弄的是各種復雜,實用性一點都不強。只好退而求其次,找簡單的。
終于找到一個合適的,又費了半天的功夫調試安裝后卻發現資料不全,能不能繼續下去都是個問題。很想放棄然而已經花費了這么多的精力不能說放棄就放棄吧,于是就咬著牙把代碼重新梳理整合了一下,總算把整體框架搭建好了,不過想要調用之前的腳本實現與服務器端交互,效果卻不是很理想,只能重新構建服務器端邏輯了,造成的結果是生成的APP應用的安裝包是之前的兩倍多。

Demo來自javaapk

綜上所述,Native App有以下幾個特點:

  • (1)原生型APP應用的安裝包相對較大,包含UI元素、數據內容、邏輯框架;
  • (2)手機用戶無法上網也可訪問APP應用中以前下載的數據。
  • (3)原生型的APP可以調用手機終端的硬件設備(語音、攝像頭、短信、GPS、藍牙、重力感應等)

三、Hybrid App開發

如你所見,Web APP無法調用手機終端的硬件設備,訪問速度受手機終端上網的限制,而Native App雖然可以充分利用設備的特性,但是開發起來難度和代價卻大。Hybrid App卻綜合了二者的特點。下面就一ionic的使用體驗,談談Hybrid App開發體驗。

圖片來自百度百科

ionic 是一個專注于用WEB開發技術,基于HTML5創建類似于手機平臺原生應用的一個開發框架。綁定了AngularJS和Sass。這個框架的目的是從web的角度開發手機應用,基于PhoneGap的編譯平臺,可以實現編譯成各個平臺的應用程序。

首先安裝ionic,確保電腦已經安裝:Node.js(下載包),JDK(webstorm 運行環境),Android SDK (Android編譯),Android Studio。(具體教程請參照 輕松學習Ionic (一) 搭建開發環境,并創建工程

$ npm install -g ionic cordova
$ionic start iotApp tabs
cd iotApp
ionic platform add android 
創建APP

然后,打開Android studio導入E:\Android\iotApp\platforms\android(這是本人電腦上的路徑),導入后就可以編輯APP了。

android studio
APP效果

如你所見,僅僅修改HTML文件就可以直接在APP上顯示了,當然還有很多功能等待大家探索,本人只是拋磚引玉。

四、總結

雖然水平有限,只是簡單地帶大家和我一起體驗了三種開發方式,現在回到原題(不然會被罵標題黨的),那么純Native App開發模式還能走多久呢?個人覺得隨著技術的更新迭代應該走不了多久,雖然最近“微軟發招、蘋果發飆:React Native遭躺槍”這樣的新聞很火(PS.React Native也是一個移動應用開發框架),但是還是阻擋不了混合應用開發的腳步。

圖片來自Cordova官網

上面這張圖片可以看出,Hybrid App的原生體驗相對于Web App,已經有了不小的進步,再加上其對JS與生俱來的支持,相信不久的將來其體驗會越來越好。

以上僅屬于個人實際體驗和觀點。最后以 Atwood定律結尾:

凡是能用JavaScript寫出來的,最終都會用JavaScript寫出來。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容