跨平臺移動應用開發迎來“大殺器”,Xamarin.Essentials正式版釋出

weixin_33858249發表於2019-01-07

近日,跨平臺移動應用開發迎來了“大殺器”——Xamarin.Essentials正式版。Xamarin.Essentials是可以將移動原生特性抽象成跨平臺的API,經過了長達數個月的預覽之後,正式版終於和大家見面了。據悉,此版本中不僅包含了30多個原生特性,還包含了眾多由社群貢獻的增強特性。

Xamarin.Essentials可以將移動原生特性抽象成一組跨平臺的API,旨在簡化針對多種平臺的移動應用開發。經過了長達數個月的預覽之後,正式版終於和大家見面了。

Xamarin提供了一種使用宿主平臺原生特性的方式,開發者通過原生C# API使用公開的繫結。例如,開發者可以通過使用Xamarin.iOS框架獲得iOS功能,如ARKit、加速計,甚至是Objective-C執行時。開發人員可以通過C#來使用基於iOS、Android或macOS API的原生特性。

而Xamarin.Essentials採用了另外一個不同的方法,其提供了可支援所有平臺的單個API。這樣做的好處是大部分業務邏輯可以保持通用。微軟Xamarin工程師James Montemagno表示,Xamarin.Essentials經過高度優化,Xamarin連結器只連結開發者實際使用的特性,其他部分均會移除。

目前,Xamarin.Essentials包含了30多個原生特性,包括連線性、地理位置、裝置資訊以及安全儲存等等。

Xamarin.Essentials的很多API都嘗試使用了類似設計。例如,磁力計、陀螺儀、指南針等都要求使用start和stop方法來啟動或停止監聽相應的感測器,並通過ReadingChanged事件將感測器的變更資訊傳回。其他Essentials API遵循更為命令式的風格。例如,如果要開啟或關閉閃光、安全地儲存一系列位元組,或在主執行緒上執行一段程式碼,只需要呼叫相應的方法即可。

跨平臺的主要差異在於每個平臺的許可權系統以及應用程式必須滿足的不同要求。而這些資訊都與每個API一起列在了文件中。

Xamarin.Essentials可應用在Android 4.4或更高版本、iOS 10.0或更高版本、UWP 10.0.16299.0或更高版本。開發者可以使用NuGet將Xamarin.Essentials新增到專案中,並在原始檔中通過using Xamarin.Essentials;引用它。如果開發者想要從Xamarin應用程式遷移到Xamarin.Essentials,那麼可參考Montemagno編寫的遷移指南或者官方的Xamarin GeoContacts應用程式。

檢視英文原文:https://www.infoq.com/news/2019/01/xamarin-essentials-native-apis

相關文章