我突然覺得, 他們正好把我思想的口號給用去了( 不過我沒想到這么美的詞 ), 因為我已經(jīng)在更早的時候就決定要講一講 Ionic 了, 這個口號也同樣是: Learn Once, Use Anywhere, 但是, 加了一句, For AngularJS.
開始 Ionic 之前, 我們要先回顧下歷史.
Web 領(lǐng)域從 1995 年第一個真正的網(wǎng)站建立到 2015 年, 發(fā)展的飛起. 整體而言, 我認(rèn)為經(jīng)歷了以下發(fā)展階段:
我認(rèn)為, 前后端分離是必然的趨勢, 切看我的分析.
Web 剛興起的時候, 它真的只是 "Web", 它只管瀏覽器的渲染, 大家頭疼的只是各家瀏覽器的兼容性問題. 于是乎, jQuery, Bootstrap 等和它們的組件們層出不窮, 來解決這類問題.
隨著 Web3.0 的到來( 我參考 <文明之光> 發(fā)明的詞, 意指移動端 Web 的起步 ), 我們發(fā)現(xiàn), 現(xiàn)在的問題不是瀏覽器的問題了, 而是伴隨著各種各樣的屏幕, 以及各種各樣的嵌入Web. 而且, 最擅長構(gòu)建界面的 Web 技術(shù)還沒有打入 APP 陣營.
我們以前的經(jīng)驗似乎都不夠用了, 但是, 我們發(fā)現(xiàn), 如果不把瀏覽器當(dāng)瀏覽器, 而把它們當(dāng)作數(shù)據(jù)處理層( 這要求瀏覽器擁有很高的計算能力, 以前這不可想像, 而但是, 一個 iPhone5 的手機處理能力超過幾年前的一個 PC ), 服務(wù)器只提供數(shù)據(jù)( 目前最流行的方案即 Restful API ), 如此, 我們就可以解決 Web3.0 下的主要的問題:
通過這樣的革新, Web 技術(shù)自然而然滲入到原生 App 的領(lǐng)域. 其優(yōu)勢在于:
既然如此, 是時候影響到原有的 Web 開發(fā)技術(shù)了:
在 Web3.0 的發(fā)展下, 傳統(tǒng)的 MVC 框架, 會轉(zhuǎn)變?yōu)榍昂蠖朔蛛x的開發(fā)方式. 這樣, 你就可以學(xué)一次, 到處用.
AngularJS 是一個類似于 Rails 的全棧式的前端框架, 它擁有自己的路由, 控制器, 作用域, 和組件, 非常適合作為前端的全?;A(chǔ)框架. 而 Ionic 正是基于它而完成一個框架:
Ionic 的技術(shù)構(gòu)成為:
Ionic 工作流非常簡單:
ionic start myapp [template]
ionic platform add ios
ionic build ios
ionic emulate ios
一些國內(nèi)的例子:
就在最近, Ionic 上線了 LiveReload 功能, 你可以在模擬器與測試機器( 沒錯, 是你的手機 )上, 得到實時的代碼刷新功能.( 此刻, 我想, 真正的 iOS 工程師還在編譯他們的 xcode 吧.)
如果你就是工程師, 馬上去試試吧: http://ionicframework.com/getting-started/
在這個領(lǐng)域, Ionic 的野心就跟 Web2.0 時代的集大成者 Rails 一樣大, 都想建立整個開發(fā)流的生態(tài)環(huán)境.
一旦你的團隊計劃一并開發(fā) APP, Web APP, 以及網(wǎng)站, 那么, 最佳的選擇即是一套前后端分離的技術(shù)棧, 它可能是這樣:
現(xiàn)在, 我們可以不再使用傳統(tǒng)的 MVC 框架的 Web 開發(fā)工作流, 而只需要關(guān)心前后端分離后的工作流:
你既不需要學(xué)習(xí)傳統(tǒng)的 MVC 中的 復(fù)雜的 form 處理流程, 也不用關(guān)心 session, cache 等在 Web3.0 不存在的問題, 只需要關(guān)注好前后端分離之后的問題即可:
最后, 使用 AngularJS 與 Ionic, 運用同一種思想開發(fā) APP 與網(wǎng)站, 這就是:
Learn Once, Use Anywhere.