天天看點

建構混合移動應用的流行架構優缺點對比

僅僅幾年前,使用 javascript 開發移動應用程式還隻是古怪的實驗,無需使用 java 和 object c 就可建立 ios 和 android 應用程式的想法似乎吸引着很多 web 開發者。現在出現了大量的架構,使我們隻使用 web 技術就可以建立移動應用,并且使用者體驗和以往用原生語言開發的應用差不多。

建構混合移動應用的流行架構優缺點對比

混合應用程式隻是一個普通的移動優化的網站,用css,html和javascript編寫,在webview上顯示(它基本上是一個精簡的web浏覽器)。這樣做的好處是,隻需要寫一個應用程式,在大多數情況下,不用修改就可以在 android,ios 和 windows phone 上運作。本文列出的大多數架構都是用cordova 或 phonegap 實作的,它們架起了由 javascript 通往裝置 api 的橋梁。

本文将對用于建構混合和原生移動應用程式的最流行的 javascript 架構進行比較。滾動本文的最後可以看到結果。

建構混合移動應用的流行架構優缺點對比

ionic在我們列出來的這些架構裡面是最流行的,可能對很多開發者來說是首選。你可以用架構中的css 實作有 native 風格的設計,不過相對于使用完整的 ionic,更建議搭配 angularjs 一起開發。使用 ionic 的一大好處是指令行的互動界面,有很多迷人的功能,包括內建的仿真器金額基于cordova 的 app 打包器。

建構混合移動應用的流行架構優缺點對比

這是一個開源的架構,可以通過組合 native 風格的元件來開發 app。它用起來非常簡單,可以用angularjs 一起開發,也可以不用。有着完善的文檔,包含了大量例子和布局,覆寫了最常見的 app 類型。onsen ui 的一個不足是目前隻釋出了一個 ios 主題,不過下一個版本承諾會推出 material design(谷歌推出的一種設計風格)的支援。

建構混合移動應用的流行架構優缺點對比

framework 7

framework 7比較酷的地方在于它完全是架構無關的(沒有像angular或者react那樣的外部依賴),但是确依然可以讓app在元件和動畫方面有着native的風格和體驗。開發者隻需要會html, css和javascript就可以開發應用,而不用把代碼搞得很複雜。framework 7并不包含任何用于仿真或者打包的工具,,是以你需要将其與cordova或者phonegap一起使用。

建構混合移動應用的流行架構優缺點對比

react native

正如項目的名稱表露的那樣,react native的目的是建構真正native的應用。而不是建構在webview裡運作的混合模式的應用。開發完全由javascript和react來完成。這個架構不太适合web開發的新手,不過其背後有一個龐大的社群,在各個方面都可以為你提供支援。最近這個架構還釋出了android版,這樣你就可以真正實作跨平台的應用開發了。

建構混合移動應用的流行架構優缺點對比

jquery mobile

它是所有移動架構的爺爺, jquery mobile 的目的不是讓 apps 的外觀像 android 或 ios。而是為了幫助開發可以在所有移動浏覽器(包括老舊的 windows phone,blackberry 和 symbian)上良好運作的 web apps。是以,它是非常輕量級的,隻依賴 jquery,很容易學會,同時還提供了良好的觸摸識别和對 phonegap/cordova 的支援。

建構混合移動應用的流行架構優缺點對比

nativescript

native script 的最大特點是,用 typescript 語言編寫 app 的功能,隻需要編寫一次,然後它可以針對不同的作業系統(包括 android,ios 和 windows phone)産生對應的可執行代碼,打包後,應用是按原生程式的方式運作的,并沒有打開和運作浏覽器。使用該架構确實需要一些程式設計技巧,但它詳盡深入的文檔彌補了這方面的不足。

建構混合移動應用的流行架構優缺點對比

famous

famous切入web和移動開發的方式有點與衆不同。它使用webgl把你的html的dom樹組合在一起,把所有的内容在一個canvas裡顯示,有點類似html遊戲引擎做的那樣。這種獨特的技術可以讓架構在60 fps的速度下運作app,這已經和大部分native的app一樣流暢了。可惜的是,這個項目現在不再活躍了,也沒有合适的文檔可供參考。

建構混合移動應用的流行架構優缺點對比

沒有真正完美的架構 – 每個都有自己的優點和缺點,用哪個取決于你要用他們幹什麼。

我們希望這個快速的比較能對你有幫助!如果你對清單裡的或者類似的架構有一些經驗,不妨給我們留言,分享你對混合應用開發的看法!