Cordova 開發 App

Cordova 是一個開源的移動開發框架。容許你用標準的 Web 技術——HTML5,CSS3 和 JavaScript 作跨平臺開發。應用在每一個平臺的具體執行被封裝了起來,並依靠符合標準的 API 綁定去訪問每一個設備的功能。html

本課程是一個系列基礎教程,目標是帶領讀者上手實戰,你能夠掌握和 Cordova 相關環境搭建,建立項目,添加插件等核心技能。隨心隨意打包本身的 App 應用。前端


導讀:混合開發 APP

近年來隨着移動設備類型與操做系統的增多,用戶需求也日益增加,所以在項目啓動前,你們都會考慮到它的需求、成本、須要投入的時間,本身的團隊成員與技術成熟度等一系列因素。在這種狀況下,App 的開發方案也盡顯多元。vue

曾經 Html5 有一段小浪潮,不少人看到或參與過這樣一個討論:是選擇原生開發、混合開發,仍是 Web 開發?究竟哪一個纔是最佳實踐,筆者認爲只有實踐過的人才知道,尤爲是在當今這個充滿變數的移動互聯網時代。react

混合移動應用程序開發的流行

當涉及到移動應用程序開發時,目前尚未一種能夠適合全部場景的方式。你能夠選擇開發本地應用程序、基於網絡的移動應用程序或是混合移動應用程序,而在以上選項中,混合移動應用程序開發應該是最具優點的。git

那麼什麼是混合應用程序開發呢?web

App 混合開發,顧名思義是一個開發模式,它指的是開發 App 時一部分功能用 native 構建,另外一部分功能用 Html5 構建。介於 web-app、native-app 這二者之間的 App,英文名叫:Hybrid App。apache

其實,早在幾年前就已經出現了 App 混合開發模式,到2014年底纔開始流行,2016年已經被普遍使用,而2017年甚至達到鼎盛期。react-native

混合開發模式的流行離不開它自身的優點,由於 Hybrid App 整體特性更接近 Native App,可是和 Web App 區別較大,同時使用了網頁語言編碼,因此開發成本和難度比 Native App 要小不少。所以說,Hybrid App(混合模式移動應用)兼具「Native App 良好用戶交互體驗的優點」和「Web App 跨平臺開發的優點」。目前有名的混合開發框架有 Cordova,React-Native,Weex,Ionic 等。瀏覽器

Cordova

Cordova 是 Apache 的一個開源項目。微信

Cordova 的體系架構從上往下分爲,前端(html,js),Html 渲染引擎(各平臺的瀏覽器組件),cordova plugin。Cordova Plugin 爲 Cordova 重最核心的部分,擴展了 js 訪問手機硬件和原生 API 的接口。

開發者可自定義 Cordova Plugin 擴展本身的原生接口,添加到 Cordova。整體來講 Cordova 便可以簡單的部署到多平臺,也支持單平臺的深層定製。

ReactNative

Facebook 推出的跨平臺框架。 使用 JS 和 React 就能夠開發 App,React 是 Facebook 本身的 JS 庫。用 react-native 開發的界面會徹底轉化爲 native 界面。部署的時候不用從新編譯,能夠熱加載並且能夠植入原生代碼。

react-native 是經過 JavaScript 將 native 中的方法映射到 JS 中,沒有使用瀏覽器組件(除低版本 iOS),嚴格意義上來講開發出來的並非 Hybrid App。因此,開發時比較依賴 react-native 暴露出來的接口,除此以外,初次學習成本比較高,須要學習 react 的使用(一套前端不能複用到 PC、手機瀏覽器、微信公衆號網頁)。

Weex

阿里推出的跨平臺框架,Weex 的理念是write once run anywhere 也就是三端體驗一致,讓你們專一於業務,寫一份代碼 iOS、Android、H5 都可以適用。固然也有爲企業節省開發成本的考慮。因此 Weex 技術方案的關鍵在於要擁有一個強大的解析渲染引擎。

Weex 所採用的技術架構方案:JS 引擎用 V8,JS 開發框架基於 vue.js。能夠看出學習的成本也是很是高的。

Ionic

Ionic 是一個專一於用 Web 開發技術,基於 Html5 建立相似於手機平臺原生應用的一個開發框架。綁定了 AngularJS 和 Sass。這個框架的目的是從 Web 的角度開發手機應用,基於 Cordova 的編譯平臺,能夠實現編譯成各個平臺的應用程序。

Ionic 所採用的 JS 開發框架基於 AngularJS,而且還提供了不少 UI 組件,封裝了 Cordova 經常使用的 Native API,可是看出學習的成本也是很是高的。

Cordova 的優點在於你熟悉了 Cordova 開發方式,熟悉了一套框架,把 Html5 開發手機 App 的坑大部分都踩過一遍以後,開發第二個 App 會極大的提升你的開發速度!

因此那些會 Html5 技術想更進一步掌握跨平臺,高性能 App 開發技術,增長職場競爭力的前端人員。優秀的 Cordova 將是你的第一選擇。

Cordova——混合型框架中的佼佼者

Cordova 主張一站式開發,簡而言之,就是一個純 Html5 的開發人員也能夠開發和發佈 Android 和 iOS 的 App了,而不須要專門的 Android 和 iOS 開發人員。

而在衆多混合型框架中,Apache 做爲幕後老大,背景強大,Cordova 能夠說是佼佼者。Cordova 基於標準的 Web 技術——HTML、JavaScript 和 CSS,用 JavaScript 包裝平臺的 API 供開發者調用,具有強大的編譯工具爲不一樣平臺生成應用,同時擁有豐富的第三方資源和產業鏈。

Cordova 的特色有如下:

  • 插件豐富

Cordova 的插件是其生態系統的重要組成部分,能幫助你快速地抵達移動設備的原生 API 上面。它提供了Cordova 和原生組件相互通訊的接口,將其綁定到了標準的設備 API 上。這使你可以經過 JavaScript 調用原生代碼。

Apache Cordova 項目維護着一組插件叫作核心插件。這些核心插件可讓你的應用程序訪問設備功能,好比:電源、相機、聯繫人、攝像頭、麥克風、傳感器、數據、網絡狀態等。除了核心插件,Cordova 還有一些第三方插件提供若干個附加功能。

  • 可移植性

基於瀏覽器的移動 Web 可移植性和跨平臺最突出表現爲混合 App 也能節省跨平臺的時間與成本,開發者只需編寫一次核心代碼就可部署到多個平臺,而原生 App 的跨平臺性能最差。

目前已有部分開發商採起了只編寫一次應用程序,就能夠在6個主要的移動平臺和應用程序商店(App Store)裏進行發佈的方式,這些移動平臺和應用程序商店包括:iOS、Android、BlackBerry、webOS、Bada 以及 Symbian 等。

固然這種方式也存在缺點,筆者認爲其最主要的缺點有兩個:一是性能不夠好,二是兼容性較差。

但隨着 Android 5.0+ 的普及以及 iOS 9.0+ 的普及,性能缺陷和兼容性問題都在減小,也就是說,若是將來某天 Android 最低支持版本從5.0開始,iOS 最低支持版本從9.0開始了,那麼混合開發 App 的缺點就變得不那麼明顯了。很明顯如今這都不是問題。

隨着移動互聯網的發展,如今基本是 App 滿天飛,若是我去下載一個 App,那麼基本都能看到有兩種選擇,一種是 Android 版本,一種是 iOS 版本。無論個人手機是哪一種操做系統,安裝完一個 App 以後,後續若是有新的版本發佈的時候,我還必須去更新,才能享用新版本里的功能。好比我裝了「京東」這個 App,前幾天正好碰到「618」活動,那麼以前一個月 App Store 就提醒我要去更新最新的 App 版本,以避免錯過「618」活動中新的功能使用。相對來講 iOS 系統更新 App 比起 Android 系統用戶體驗會好一點,可是仍是稍顯麻煩。

那麼有沒有一種方式,我只須要開發一個 App 版本,就能去適配通用的操做系統呢,不只能夠適配 Android、iOS,還能夠適配其餘系統,好比 Windows Phone、 Palm WebOS、Blackberry 等等。有,Cordova 就能提供這種能力,代碼寫一次,就能處處運行,跟咱們平常開發網站效果同樣,基於寫 Web App,根據輸出平臺要求不一樣,就能提供不一樣類型的安裝包。Cordova 其設計初衷是但願用戶羣體可以經過跨平臺開發的方法下降原生開發的成本,爲此,開發人員須要安裝原生開發環境,配置工程,使用 HTML五、CSS三、JS 和原生 SDK 生成應用。

使用 Apache Cordova 的人羣

  • 移動應用開發者,想擴展一個應用的使用平臺,而不經過每一個平臺的語言和工具集從新實現。
  • Web 開發者,想包裝部署本身的 Web App 將其分發到各個應用商店門戶。
  • 移動應用開發者,有興趣混合原生應用組建和一個 WebView(一個特別的瀏覽器窗口)能夠接觸設備 A 級 PI,或者你想開發一個原生和 WebView 組件之間的插件接口。

或許在將來幾年,Android 和 iOS 開發人員需求量將會逐漸減小,而 Html5 開發人員需求量會與日俱增,那麼,從 Android 或 iOS 轉型爲 Html5 的開發人員會更加地走俏。

相關文章
相關標籤/搜索