手摸手帶你入門ionic3(一):ionic介紹

JerryMissTom發表於2018-04-23

移動開發已經成為一股潮流,web開發者假如也想在此浪潮中衝浪的話,我推薦 ionic 這個跨平臺的移動應用開發框架。它的口號是 Build amazing apps in one codebase, for any platform, with the web, 可以做到 write once, run anywhere

ionic1 基於 angularjs,已經成為歷史。前不久釋出了ionic4,做了很大的改動,最重要的一點就是使用了 Stencil 這個可以將自定義元件轉化為web Components的編譯器,鑑於這個版本暫時還是beta版本,不建議使用。

本系列的文章全部基於ionic3,底層的Angular使用5.x版本,以後都簡稱ionicionic3之前基於Angular 4.x版本,現在已經全面切換到Angular5.x了,大家開發的過程中注意甄別,因為 5.x和4.x之間還是有很多改動的。

ionic 的成功少不了AngularCordova 的功勞。

AngularGoogle 推出的前端開發框架,使用 TypeScipt 語言進行開發,適合規模大,多人配合的專案。

Cordova 脫胎於 AdobePhoneGap,後來其核心原始碼被捐給Apache ,改名為 Cordova ,是一個使用web技術的跨平臺移動應用開發框架。

ionicAngular 的一些核心開發者,將 AngularCordova 結合起來,並針對移動應用的特點進行改造,提供了豐富的UI元件的跨平臺移動應用開發框架。同時,ionic也提供了命令列工具 ionic-cli ,功能強大,簡單好用。

2

上圖可以看出 AngularCordovaionic 之前的關係。

個人認為 ionic 可以簡單解釋為成 Angular+Cordova 基礎上的UI框架,它使用 Angular 開發,提供了精美的UI元件,通過Cordova plugin 與原生功能進行互動,最後藉助 Cordova 命令打包成可以執行在不同平臺上的App,當然也可以只使用 www 資料夾下的內容當做可以通過瀏覽器訪問的 webApp

打包出來的Android App其實就是一個 WebView ,載入本地的www 資料夾中的網頁。網頁中可以呼叫 Native 功能就是通過 Cordova 這個橋樑。iOS同理。

ionic 不是簡單的把 AngularCordova 結合在一起,也做了一些改造,使之更適合移動開發。首先,ionic 拋棄了 Angular 中的路由框架,而是實現了自己的堆疊式頁面導航功能,通過簡單的 pushpop方法,實現頁面的跳轉和返回,更符合移動開發習慣。其次,ionic 也針對 cordova native plugin寫了配套的JS依賴包,使web開發者可以很快上手原生外掛的使用。最後,ionic 提供了豐富的適合移動應用開發的UI控制元件,比如,DateTimeToobar等常用的元件。

ionic 的缺點也是顯而易見的,首先,效能,還是效能,安卓低端機上卡頓明顯,使用者體驗很差。其次,雖然 ionic 提供了大部分常見的與原生進行互動的外掛,但是假如你的需求很冷門,只能自己寫一個,比如說支付。最後,使用 Angular 這個框架,學習曲線比較陡峭。

下圖展示了應用開啟的過程及以開啟相機為例呼叫原生功能的流程,內容簡單,不過多解釋。

ionic 1

後記

本人在寫一個ionic入門的教學手冊 ionic3-handbook,還有一個基於真實專案的ionic專案HW-basic,感興趣的可以看一下。

相關文章