移動開發下Xamarin VS PhoneGap

葡萄城技術團隊發表於2015-07-16

phoneGap_副本

跨平臺開發

移動應用開發對很多開發人員來說是一種令人恐懼的事情。許多企業希望能夠通過開發移動應用程式,來提升企業業務水平,開發原生App時往往又缺少專業的Objective C 或 Java 移動開發人員。不僅如此,每種流行的移動平臺都具有自身的開發語言,開發工具及特徵,這就意味著開發一款應用需要花費三倍的開發時間,且需要維護三個專案。因此開發原生應用的代價是非常大的。

幸運的是,有很多公司已經在研究如何使原生APP的開發變得簡單,目前為止多平臺的開發方法主要有兩種:第一種方法就是以Web 應用為核心,填充到原生app中(PhoneGap提供的解決方案)。這種方法能夠吸引那些想要轉到移動開發的Web開發人員,使用這種方法開發的應用就是將網站包裝的像移動應用。第二種方法就是使用跨平臺的開發工具,這種工具提供一種通用語言開發原生App(Xamarin 提供的解決方案)。Xamarin(Xamarin.Forms)可以讓開發人員用C#開發,再使用Xamarin.Forms轉換生成 iOS,Android, Windows Phone應用,Xamarin 比較受.Net 開發人員的喜愛。

兩種工具採用不同的解決方法,面向不同技術背景的開發人員,來實現跨平臺應用開發。隨著兩大平臺的流行,很多控制元件廠商也開發出支援這兩種平臺的工具,如為PhoneGap 提供的Wijmo 5,為 Xamarin.Forms提供的Xuni 等,從而使移動開發更加快速高效,當然儘管有很多工具支援這兩種平臺,但是無論是PhoeGap或是Xamarin沒有絕對的好與壞,因此如何選擇,主要取決於哪種工具能夠更有利於企業。下面我們就詳細對比PhoneGap 與Xamarin。

PhoneGap

開發人員使用PhoneGap 時,可使用 JavaScript,HTML5,CSS來開發。PhoneGap 提供了訪問移動裝置特徵的通用API介面,如感測器,攝像頭等。這些應用程式稱為混合應用,既不是原生的(在WebView中渲染)也不是純Web的應用(需要訪問原生裝置API,是安裝包的形式)可使用其他外掛擴充套件PhoneGap 功能。最重要的是PhoneGap 是免費開源的。

Xamarin

Xamarin 提供利用.Net(Mono) 的開源實現的一個平臺,開發人員可使用C#開發一次,Xamarin.Form就可同時生成iOS,Android,及Windows Phone 應用程式。Xamarin開發即可以使用Visual Studio,也可以使用其自有的 Xamarin Studio。Xamarin提供了高效的效能,提升了程式碼的複用,可以充分利用C#語言和.Net 平臺的優勢。

Xamarin VS PhoneGap

   

Xamarin.Forms   PhoneGap
使用C#或XAML語言編碼 使用 JavaScript,HTML,CSS 編碼
開發iOS ,Android,WindowsPhone  應用 支援iOS, Android,WindowsPhone,Blackberry,Symbian,Bada,WebOS
需要Xamarin許可證 免費開源
生成原生應用 應用程式不完全是原生的
高效 效能一般
應用程式在每個平臺上都具有好的使用者介面 需要其他輔助工具才能在每個平臺上實現好的使用者介面
大量的共享資源 開源庫,框架,相關平臺優化的碎片
   

總結

每個開發人員需要選擇一款適合他們開發的解決方案。PhoneGap能夠提升web開發的技能,而Xamarin 致力於.NET 技術,是最直接的解決方法。儘管有很多工具支援這兩種平臺,但是 PhoeGap 與 Xamarin 之間沒有絕對的好與壞之分。

工具選擇

無論選擇哪種解決方案,都有一些兩大平臺的開發工具,來更好地幫助開發人員進行移動應用的開發。
PhoneGap -- 可利用觸控優先的 Wijmo 控制元件集進行開發。Wijmo 快如閃電,觸控優先,為企業應用提供更靈活的操作體驗,並全面支援Angular 2!
Xamarin -- 藉助 Xuni (本地化、跨平臺移動控制元件集),使用本地程式設計技術,可以在 IOS、Android 和Xamarin平臺上使用相同的 API。無論需要Android 圖表、Xamarin.Form 儀表盤還是IOS表格控制元件,Xuni 都高質量的建立適用於所有裝置的企業級應用。

原文連結:http://stage.goxuni.com/xamarin-and-phonegap-comparison/

相關文章