實踐分享:開始用Cordova+Ionic+AngularJS開發App

http://www.cocoachina.com/webapp/20150707/12395.htmlhtml

 

app500.jpg

本文是一篇關於我本人在使用Cordova+Ionic以及AngularJS開發移動App的過程當中的經驗的總結,它不是一篇基礎入門教程,而是和你們探討一下關於如何更好的使用這些技術開發一個更好的App。前端

聲明:這是一篇中立的文章,我無心於挑起孰好孰壞的爭論,這只是一篇經驗分享文,至於爲何選擇這種技術,由於我會這個,感受還不錯。web

Cordova、Ionic、AngularJS都是什麼?編程

Cordova後端

Cordova是一款開放源代碼的App開發框架,旨在讓開發者使用HTML、Javascript、CSS等WebAPIs開發跨平臺的移動平臺應用程序,其原名稱之爲PhoneGap,Adobe收購Nitobi公司後,PhoneGap商標保留,代碼貢獻給了Apache基金會,而Apache將其命名爲ApacheCallback,其後發佈新版本時,定名爲ApacheCordova。瀏覽器

Cordova是一個行動設備的API接口集,利用JavaScript存取這些接口能夠調用諸如攝影機、羅盤等硬件系統資源。配合上一些基於HTML五、CSS3技術的UI框架,如jQueryMobile、DojoMobile或SenchaTouch,開發者得以快速地開發跨平臺App而不須要編寫任何的原生代碼。前端框架

注意到由於Cordova自己還是一個原生程式,爲App打包時依然須要用到這些系統平臺的SDK。服務器

本文將結合Ionic前端框架進行開發。app

Ionic框架

Ionic是一個新的、可使用HTML5構建混合移動應用的用戶界面框架,它自稱爲是「本地與HTML5的結合」。該框架提供了不少基本的移動用戶界面範例,例如像列表(lists)、標籤頁欄(tabbars)和觸發開關(toggleswitches)這樣的簡單條目。它還提供了更加複雜的可視化佈局示例,例如在下面顯示內容的滑出式菜單。

Ionic宣稱他們極度強調性能,而且經過限制DOM交互、徹底移除jQuery以及使用像translate(z)這種特定的硬件加速的CSS濾鏡觸發移動設備上GPU——與由動力不足的移動瀏覽器提供的交互相比這種方式提供了硬件加速的交互——等方式使速度最大化。

AngularJS

AngularJS是創建在這樣的信念上的:即聲明式編程應該用於構建用戶界面以及編寫軟件構建,而指令式編程很是適合來表示業務邏輯。[1]框架採用並擴展了傳統HTML,經過雙向的數據綁定來適應動態內容,雙向的數據綁定容許模型和視圖之間的自動同步。所以,AngularJS使得對DOM的操做再也不重要並提高了可測試性。

設計目標:

  • 將應用邏輯與對DOM的操做解耦。這會提升代碼的可測試性。

  • 將應用程序的測試看的跟應用程序的編寫同樣重要。代碼的構成方式對測試的難度有巨大的影響。

  • 將應用程序的客戶端與服務器端解耦。這容許客戶端和服務器端的開發能夠齊頭並進,而且讓雙方的複用成爲可能。

  • 指導開發者完成構建應用程序的整個歷程:從用戶界面的設計,到編寫業務邏輯,再到測試。

Angular遵循軟件工程的MVC模式,並鼓勵展示,數據,和邏輯組件之間的鬆耦合。經過依賴注入(dependencyinjection),Angular爲客戶端的Web應用帶來了傳統服務端的服務,例如獨立於視圖的控制。所以,後端減小了許多負擔,產生了更輕的Web應用。

開發環境

我所使用的開發環境包括下面這些:

工做站:一臺13寸的MacBookProRetina+iPadMini

使用Mac開發前端有不少優點,對於我來說,最大的優點就在於我仍是一個Linux用戶,不少的Linux習慣在Windows下面老是會有一些不適應,再者,OSX的系統穩定性以及各類各樣優秀的App,也讓它一直都成爲個人工做利器。

我沒有像不少牛逼的大神們購買多塊屏幕,我只有一臺iPadMini,而後還有一個叫做Duet的App,它可讓我把iPad做爲個人Mac的第二塊屏幕,通常不須要,可是它真的能提升個人工做效率,並且能夠直接使用到iPad的觸摸屏,這對於移動開發來說,很好。

我還有一臺Lenovo的Yoga3,裝了Ubuntu,不過不多用,顯示有點兒彆扭,可是,比起其它的PC機,這臺仍是很不錯了,你們也能夠試試。

開發工具

之前是Notepad++的忠實用戶,而後還有Coda、TextMate、BBEdit、SublimeText等等的,如今用的(並且可能之後會一直使用的)——WebStorm。

相關文章
相關標籤/搜索