30
Xamarin 研研 HappyMan 2015/01/13

Xamarin 研究

Embed Size (px)

Citation preview

Page 1: Xamarin 研究

Xamarin 研究HappyMan2015/01/13

Page 2: Xamarin 研究

Xamarin簡介• Xamarin 是由早期的 Mono 專案演變而來,原本是在 Linux 上執行 C# 程式的一個開放原始碼專案。• 後來陸續發表支援 iOS 的 Mono Touch

framework 以及 Mono For Android Framework 。因此它在市場上並不是一個新的產品。

• 2011 年,原本在 Novell 的 Mono 專案團隊獨立成立一家公司,正式將名稱改為 Xamarin 。

Page 3: Xamarin 研究

Xamarin簡介• Xamarin 是一個行動 App 開發平台,提供跨平台開發能力,開發人員透過 Xamarin 開發工具與程式語言,即可開發出 iOS 、 Android 與

Windows 等平台的原生 (Native) App 應用程式。• 不須個別使用各平台的開發工具與程式語言,不只是「 write-once, run everywhere. 」的跨平台解決方案,更可達到「 write your code

once, and present native UIs on each platform. 」之跨平台開發能力。

Page 4: Xamarin 研究

Xamarin簡介• 由於 Xamarin 可直接產生各平台之原生

App 應用程式,相較於其他跨平台方案,藉由 Xamarin 所開發出來的 App 應用程式,更能發揮出各行動平台的功能與特性,且具有最佳的執行效能。

Page 5: Xamarin 研究

觸及裝置

Page 6: Xamarin 研究

特色• 以 C#開發,編譯成 iOS與 Android原生執行碼,非 HTML5解決方案

• 任何 Objective-C (iOS)與 Java (Android)可以做的, Xamarin都可以做到

• 執行效能 100% 與原平台程式 (Objective-C, Java)所開發的一樣

• 結合Microsoft Visual Studio開發工具,讓開發更方便、快速

Page 7: Xamarin 研究

跨平台開發• Xamarin可以使用熟悉的 C#來撰寫 iOS,

Android, Mac及Windows應用程式。

Page 8: Xamarin 研究

程式碼重用 (Reuse)• 使用最愛的 C#及 .NET函式庫,輕鬆使用第三方的 Native Library及Framework。

Page 9: Xamarin 研究

智慧輸入• 開發應用程式時,開發工具會偵測輸入的部份字母,尋找對應的 API 並自動完成輸入。

Page 10: Xamarin 研究

Visual Studio 整合• 在 Visual Studio中建立、建置、除錯以

及部署。 還可以使用您喜愛的 plug-in,例如 ReSharper以及與 TFS整合。

Page 11: Xamarin 研究

原生的使用者介面及效能• Xamarin 帶給高效能的體驗並完整對應各個平台的 Native API 。因此透過

Xamarin ,建立的應用程式可以完全發揮裝置特有的性能。

Page 12: Xamarin 研究

UI設計• 可在 Visual Studio 中同時整合 Android與 iOS 的 UI 設計功能,讓我們在同一開發環境輕鬆完成操作畫面設計 !

Page 13: Xamarin 研究

其他解決方案比較

Page 14: Xamarin 研究

原理說明• Xamarin 是市場上少數提供原生解決方案的跨平台行動開發工具,原生應用程式應該包含以下特性:– 使用標準的使用者介面並符合各個行動平台的設計準則。– 搭配裝置硬體以提供最佳化的效能。– 能夠完整存取裝置硬體上的功能。

Page 15: Xamarin 研究

原理說明• Xamarin 將原生 (Native) 的 iOS 及 Android

API 轉換為 C# 函式庫供使用者使用,開發人員可使用 C# 撰寫程式,並呼叫原生平台 (iOS, Android) 的 API ,且透過良好的設計,可以在不同平台共用部份程式碼。

• 開發人員可透過 Xamarin 編譯器,直接將程式編譯為 ARM 的執行檔,並進行各平台的封裝。• 編譯封裝完成的 App 由於不經過中間轉譯,直接編譯為原生的二進位執行檔,因此具有好的運作效能。

Page 16: Xamarin 研究

MVC 設計模式

Page 17: Xamarin 研究

程式碼共用

Page 18: Xamarin 研究

分開編譯

Page 19: Xamarin 研究

各版本收費與服務

Page 20: Xamarin 研究

各版本收費與服務(續)

Page 21: Xamarin 研究

用過的人的經驗 -1• 發表時間: Tue Aug 27 09:04:43 2013• 用 Xarmin 開發 Android 要另外學,而且資源比較少• 客製化元件建議不要走 Xamarin• 使用 SDK 會比較麻煩,須寫 Java 轉接檔,如使用 Facebook 或 AdMob ,要寫一份 Java轉接檔,讓 C# 抓得到那些 Java Method• 要看他們支援的能力與價錢如何

Page 22: Xamarin 研究

用過的人的經驗 -1• 發表時間: Tue Aug 27 09:04:43 2013• 進階功能或技術支援時,開始大筆鈔票流失• 很多都是 Java 語法,首字大寫就變 C#• 網址:

https://www.ptt.cc/bbs/AndroidDev/M.1377565486.A.5D1.html

Page 23: Xamarin 研究

用過的人的經驗 -2• 發表時間: Thu Feb 27 16:14:03 2014• 使用 Xamarin還是得去學 android和 ios的 app架構• 有 MVC 開發基礎的人比較容易上手• VS這強大的 IDE 本身就能幫你解決許多問題• Eclipse 是神器, VS就是開外掛• C#非常好上手,猴子也會做

Page 24: Xamarin 研究

用過的人的經驗 -2• 共通的部分不用使用不同的語言重寫• 三大平台,這邊參考那邊引用,即可解決• 需要花力氣開發的是 View , Solution 不多• 搜尋解法關鍵字「 Mono 」• 沒有非要跨平台的需求根本自虐• Coding速度還好, Compiling超級慢• 網址:

https://www.ptt.cc/bbs/AndroidDev/M.1393488846.A.326.html

Page 25: Xamarin 研究

用過的人的經驗 -3• 發表時間: 2013-04-05 19:00• 放棄的原因:– 新項目,用戶少,資源少,遇到提要自己硬啃,不然要等幾天時間官方技術支援– API 更新總是慢於原生 API 提供商,也就是無法即時使用最新 API– 因是商業軟體,想要研究可行性就要花錢

• 網址:http://fanli7.net/a/bianchengyuyan/C__/20130405/335386.html

Page 26: Xamarin 研究

StackOverFlow Tag 數量• 調查時間: 2015/01/14• 網址:

http://stackoverflow.com/questions/tagged/xamarin平台 語言

Xamarin : 5622 C# : 742176

iOS : 299787 Objective-C : 214602

Android : 615680 Java : 778543

Page 27: Xamarin 研究

GitHub Repository 數量• 調查時間: 2015/01/14• 網址: https://github.com/search?q=

xamarin

平台 Repository Code

Xamarin 2095 169922

iOS 62493 9645233

Android 166027 45194646

Page 28: Xamarin 研究

書籍• 書名: Visual C#與 Xamarin跨平台行動 App開發實戰: iOS/Android/Windows一次搞定博客來: http://www.books.com.tw/products/0010649715出版日期: 2014/09/18

Page 30: Xamarin 研究

參考• Mobile App Development & App

Creation Software – Xamarinhttp://xamarin.com/

• Xamarin – 中文網站 CSDNhttp://xamarin.csdn.net/