2016 年微軟拋下的震撼彈之一,絕對是花了不知道幾億美金收購 Xamarin 這間跨平台開發公司。
到底是什麼東西,可以讓微軟花錢如此不手軟。
最簡單描述 Xamarin 一句話就是,
三個願望,一次滿足。
學一次 Xamarin,寫一次邏輯,開發人員就能同時生出 Android,iOS,Windows phone...以上三個平台的 App。( 本站講解都會跳過 windows phone)
三種App,一次開發。
且微軟不只收購了 Xamarin,也很大膽的把 Xamarin 大部分程式碼 Open Source,原始碼都能在 Github 上找到。https://github.com/xamarin
試想一下,一間軟體公司為了同一套 App,卻因為 iOS 和 Android 兩種不同平台的需要,而要雇用兩個團隊 (或是兩個人),代表的就是額外一 倍薪水成本支出。
一位工程師為了寫 Android 需要學 JAVA,為了寫 iOS 需要學 Object-c,甚至新的語言 Swift,會不會哪天 Google 看 JAVA 不爽也自己出了什麼語言...
在 Xamarin,你只需要學 C#。
學 Xamarin 需要具備什麼?
- C# ( 微軟自家擁有強大 Libary 的語言 )
- XAML ( 標籤式語法,XML 的擴充版,類 Html)
- Mac ( iOS App需要 Mac 的 Xcode 編譯 )
前面兩點其實就是開發時 後端 和 前端 所需要具備的知識基礎。
第三點則是因為受限於 Xcode 的編譯,你必須要有一台潮 Mac 才能生出 iOS App。
開發環境?
若你是 Windows OS 的使用者,可以直接安裝 Visual Studio,Community 版是免費的。
若你是 Mac OS 的開發者,也可以下載 Visual Studio For Mac 來開發。
Xamarin 本身還有分出三種開發方案:
- Xamarin.Forms
- Xamarin.Android
- Xamarin.iOS
第二和第三種應該不用多做解釋...
至於第一種的 Forms 其實是 Platforms 這個單字的後半段,意思是在這方案底下能夠同時開發跨平台的應用程式。
當你用 Visual Studio 建立一個全新的 Xmarin.Forms 方案後,就能在方案總管內看到三種平台的專案和一個共用專案 (可攜式)。
至於第一種的 Forms 其實是 Platforms 這個單字的後半段,意思是在這方案底下能夠同時開發跨平台的應用程式。
當你用 Visual Studio 建立一個全新的 Xmarin.Forms 方案後,就能在方案總管內看到三種平台的專案和一個共用專案 (可攜式)。
關於 Xamarin.Forms 這項技術,
微軟官方有提供免費的電子書可以下載來看,寫得很棒 !
如果不想看原文,也可以期待一下本站,會逐篇用中文講解。
最後初學者可能有一些疑惑
iOS 和 Android 的原生碼若更新怎辦?
別擔心,Xamarin 的團隊會在同一時間釋出 iOS更新,而 Android 因為一般人更新速度也不快,似乎會較慢一點發布。
Xamarin 效能會不會很差啊?
底下這網址有做了一連串的測試,結論就是...
Xamarin 的效能和原生 Java 或 object-C 不會差太多,甚至有些程式碼執行的效能還贏過原生碼 (殺虫)。
Xamarin 的效能和原生 Java 或 object-C 不會差太多,甚至有些程式碼執行的效能還贏過原生碼 (殺虫)。
https://magenic.com/thinking/mobile-development-platform-performance
Development Platform | Test 1 | Test 2 | Test 3 | Test 4 | Test 5 | Test 6 | Test 7 | Test 8 | Test 9 | Test 10 | Test Avg. |
---|---|---|---|---|---|---|---|---|---|---|---|
Android | |||||||||||
Java | 4.31 | 4.31 | 4.2 | 4.33 | 4.39 | 4.37 | 4.32 | 4.45 | 4.34 | 4.4 | 4.342 |
Cordova | 91.69 | 95 | 94.31 | 94.4 | 94.73 | 94.1 | 94.1 | 91.8 | 93.63 | 97.75 | 94.151 |
Classic Xamarin | 4.27 | 4.25 | 4.15 | 4.32 | 4.51 | 4.41 | 4.22 | 4.12 | 4.14 | 4.19 | 4.258 |
Xamarin.Forms | 4.21 | 4.17 | 4.31 | 4.3 | 4.2 | 4.34 | 4.29 | 4.36 | 4.22 | 4.19 | 4.259 |
iOS | |||||||||||
Objective-C | 5.04 | 5.49 | 5.38 | 4.86 | 4.8 | 5.02 | 5.03 | 4.83 | 4.84 | 4.85 | 5.014 |
Cordova | 66.96 | 67.36 | 67.22 | 67.3 | 67.17 | 67.44 | 67.13 | 67.11 | 67.58 | 67.64 | 67.291 |
Classic Xamarin | 4.41 | 4.42 | 4.35 | 4.34 | 4.49 | 4.37 | 4.17 | 4.27 | 4.39 | 4.28 | 4.349 |
Xamarin.Forms | 4.51 | 4.33 | 4.31 | 4.31 | 4.33 | 4.4 | 4.41 | 4.4 | 4.33 | 4.46 | 4.379 |
*results in seconds
附上其中一個數據圖可以清楚的了解,Cordova 慢到炸掉。
您好:
回覆刪除想要邀請您來上有關Xamarin的課,
地點在新北市新店區, 不曉得您是否可以?
請問您是在學中還是就業中?
謝謝
您好,可以加我的 LINE: Magic0800 聊一下
刪除