快速開發跨平台應用之Xamarin技術


  Xamarin 介紹

  Xamarin 是一個允許開發人員有效創建可跨 iOSAndroidWindows 應用程序的開發工具集。Xamarin免費開源的,遵循 MIT (麻省理工學院許可證)協議,在github上的地址為:https://github.com/xamarin 。官方網站為:http://xamarin.com 

  簡單的來說,Xamarin 使我們可以使用 C#F#VB.NET 等語言開發原生 iOSAndroidWindows 應用程序

 

  傳統移動開發流程

  開發一個傳統的移動開發程序都會有一些流程。比如像打開IDE,拖一些控件,編寫邏輯,然后測試,發布。這些非常簡單一兩個小時就可以折騰完成。 

  但是,如果要開發一些大型的,商業級的移動應用程序就需要一些專業的開發流程。比如需求分析,UX 設計,UI 設計,開發,可用性測試,性能測試,以及數以千計的設備進行測試,再使用不同部署方式完成部署。

 

創建 UX 原型時,需要考慮應用所面向的各種平台的界面指南,這一點十分重要。

 

 

 

 

iOS 使用左滑編輯,Android 使用長按彈出編輯框,不同平台的設計語言都有差異。

 

 

設備有不同的規格,平板,手機,尺寸等,設備也需要進行適配。

 

 

 

  確定了 UX 之后,下一步是創建 UI 設計。 雖然 UX 通常只是黑白原型,不過在 UI 設計階段中會引入並最終完成顏色、圖形等。 在良好的 UI 設計上花費時間是非常重要的,通常情況下,最受歡迎的應用具有專業的設計。
  與 UX 一樣,務必要了解每種平台都具有自己的設計語言,因此設計良好的應用程序在每種平台上的外觀可能仍有所不同。

 

 

 

  確定了 UI 之后,下一步就是開發。iOS,Android,Windows 分別需要使用不同的語言或編程方式進行實現,因此需要三種不同的開發人員,來承擔特定平台的開發任務。


  測試是應用得到交付過程中一個重要的環節,一個沒有經過測試的應用,質量是很難得到保障。所以尤為關鍵。傳統開發過程中,各個平台下單元測試,集成測試,性能測試都是不同的實現細節。因此跟傳統開發相似,同樣也需要三種平台的測試人員角色,來承擔特定平台的測試任務。

 

  Xamarin 架構

  

 

Xamarin 的核心包含以下及部分:

  xamarin-android : 提供 Android SDK的原生開發包,用.NET托管語言如C#,F#等可以進行 Android 應用程序開發。github地址為:https://github.com/xamarin/xamarin-android
  xamarin-macios : 提供 Mac,iOS,tvOS和watchOS的原生開發包,用.NET托管語言如C#,F#等可以進行 Mac,iOS,tvOS和watchOS 應用程序開發。github地址為:https://github.com/xamarin/xamarin-macios
  Xamarin.Forms : 提供完整的跨平台UI工具包。用C#可以進行完全原生的 Android,iOS 和通用Windows平台應用程序開發。github地址為:https://github.com/xamarin/Xamarin.Forms

 

  通過Xamarin 能減少應用程序總代碼量

  從上圖我們看到,Xamarin 通過 .NET標准庫實現業務邏輯層,模型層,服務訪問層,數據訪問層,接口層,數據層。一套代碼被不同平台引用。即:多個項目共享代碼,重構操作始終更新所有受影響的引用。

 

 

 
        據統計,大部分使用Xamarin技術開發的應用程序。共享代碼占比高達75%。
 

  Xamarin Forms 將共享代碼量提升為95%

  下圖是 使用 Xamarin Native 和 使用 Xamarin Forms 開發同一寬App的代碼對比示意圖:

 

  很顯然使用Xamarin Forms 技術進行跨平台應用開發,將共享代碼比率提升20%,達到非常恐怖的95%。

 

  總結

使用 Xamarin 開發應用程序的優點:

 

1.所有平台都可以使用C#編寫,加速開發周期、節約成本
        Xamarin 使用C#和.Net框架來為任何移動平台創建應用程序。因此,您可以重復利用多達95%的源代碼加速開發周期。 Xamarin 也不需要在開發環境之間切換:您可以在 Visual Studio 中構建完全取代Android Studio , XCode 等開發環境。跨平台開發工具作為IDE的內置部分提供,無需額外費用。 同時,我們使用 Xamarin 將無需再招聘Android、iOS、MacOS,Windows Phone 等開發人員,可以在一定基礎上節約人力成本。
 
2.性能接近原生
        與基於Web技術的傳統混合解決方案不同,Xamarin 構建的跨平台應用程序仍然可以歸類為原生應用程序。性能指標與 Android的Java(如此處所述)和 Objective-C或 Swift 的性能指標相當,可用於本機iOS應用程序開發。而且,Xamarin 的性能不斷得到改進,完全符合原生開發的標准。
 
3.本地用戶體驗
        Xamarin 本身就是原生技術,因此通過 Xamarin 編寫的 UI 能夠達到跟原生一模一樣的 UI 體驗。
 
4.全面的硬件支持
        Xamarin 消除了所有硬件兼容性問題,使用插件和特定的API,以便在平台上使用通用設備功能。隨着訪問平台特定的API,Xamarin 支持與本地庫鏈接。這可以提供更好的定制和原生級功能,而且開銷很小。
 
5.開源技術與強大的企業支持
        Xamarin 於2016年2月被微軟收購后,Xamarin 許可政策發生了根本性的變化。包括運行時,庫和命令行工具在內的 Xamarin SDK 已經成為開放源碼,並且作為Visual Studio的一部分,可以在 MIT 許可下使用。通過消除許可證的主要障礙和成本,微軟為平台的進一步發展鋪平了道路。另外,由微軟領導,並受到Unity,JetBrains和Red Hat,.NET基金會和 Xamarin 的支持,特別是已經成為一個可靠和強大的技術堆棧。
 
6.如果你窮又想自己搞創業項目選擇Xamarin吧
        Xamarin的牛B之處就在於,只要你是一個高級C#開發人員,當你想創業的時候,你再也不用去求Android開發人員幫你寫代碼,iOS開發人員幫你寫代碼,你自己就可以搞定。求別人幫你寫,你總要付出成本的。按照北京Android,IOS開發人員的工資來說。一個月3萬塊吧。對於個人創業者來說,已經是很多錢了。當你的項目融到資了,如果你覺得Xamarin是垃圾,再換平台也都來得及。
 
使用 Xamarin 開發應用程序的缺點:

 

1.稍微延遲支持最新的平台更新
        Xamarin 是否能及時支持各個平台,完全取決於 Xamarin 開發團隊。第三方工具不可能為最新的 iOS 和 Android 版本提供即時支持:實施這些更改和/或引入新的插件等需要一些時間。盡管 Xamarin 聲稱提供當天的支持,但仍然可能有些延誤。
 
2.對開源庫的訪問受限
        使用 Xamarin,您只能使用平台提供的組件和一些.Net開源資源。盡管選擇並不像Android和iOS移動應用程序開發那樣豐富,但Xamarin組件提供了數千個自定義UI控件,各種圖表,圖形,主題和其他強大的功能,可以僅添加到應用程序中點擊次數很少。這包括內置支付處理(如Stripe),信標和可穿戴設備集成,開箱即用推送通知服務,雲存儲解決方案,多媒體串流功能等等。
 
3.生態系統問題
         顯然,Xamarin 社區比iOS或Android的小得多。因此,找到一個有經驗的Xamarin開發人員可能是一個挑戰。雖然該平台在微軟的支持下正在增長。根據不同來源的信息,Xamarin社區占全球移動開發社會的10%,在中國的比例更少。盡管Xamarin工程師的數量與iOS或Android本地社區無法比較。但是有經驗豐富的C#/ .Net工程師學習Xamarin的曲線是很小的。
 
4.應用程序安裝包稍微會大一些
         根據其類型和復雜性,Xamarin應用程序通常比本地應用程序大(后者可能是Xamarin應用程序的一半大小)。Android的一個簡單的“hello,world”應用程序最多可能需要16 MB,其中大部分應用於關聯的庫,內容,Mono運行時和Base Class Library(BCL)程序集。
 

 

 

 

 

 

如果你覺得本篇文章對您有幫助的話,感謝您的【推薦】。

如果你對 .NET 有興趣的話可以關注我,我會定期的在博客分享我的學習心得。

本文地址:http://www.cnblogs.com/hexu6788/p/9921518.html

作者博客:何旭

歡迎轉載,請在明顯位置給出出處及鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM