\n\n近日,跨平台移动应用开发迎来了“大杀器”——Xamarin.Essentials正式版。Xamarin.Essentials是可以将移动原生特性抽象成跨平台的API,经过了长达数个月的预览之后,正式版终于和大家见面了。据悉,此版本中不仅包含了30多个原生特性,还包含了众多由社区贡献的增强特性。
\n
Xamarin.Essentials可以将移动原生特性抽象成一组跨平台的API,旨在简化针对多种平台的移动应用开发。经过了长达数个月的预览之后,正式版终于和大家见面了。
\nXamarin提供了一种使用宿主平台原生特性的方式,开发者通过原生C# API使用公开的绑定。例如,开发者可以通过使用Xamarin.iOS框架获得iOS功能,如ARKit、加速计,甚至是Objective-C运行时。开发人员可以通过C#来使用基于iOS、Android或macOS API的原生特性。
\n而Xamarin.Essentials采用了另外一个不同的方法,其提供了可支持所有平台的单个API。这样做的好处是大部分业务逻辑可以保持通用。微软Xamarin工程师James Montemagno表示,Xamarin.Essentials经过高度优化,Xamarin链接器只链接开发者实际使用的特性,其他部分均会移除。
\n目前,Xamarin.Essentials包含了30多个原生特性,包括连接性、地理位置、设备信息以及安全存储等等。
\nXamarin.Essentials的很多API都尝试使用了类似设计。例如,磁力计、陀螺仪、指南针等都要求使用start和stop方法来启动或停止监听相应的传感器,并通过ReadingChanged事件将传感器的变更信息传回。其他Essentials API遵循更为命令式的风格。例如,如果要打开或关闭闪光、安全地存储一系列字节,或在主线程上执行一段代码,只需要调用相应的方法即可。
\n跨平台的主要差异在于每个平台的权限系统以及应用程序必须满足的不同要求。而这些信息都与每个API一起列在了文档中。
\nXamarin.Essentials可应用在Android 4.4或更高版本、iOS 10.0或更高版本、UWP 10.0.16299.0或更高版本。开发者可以使用NuGet将Xamarin.Essentials添加到项目中,并在源文件中通过using Xamarin.Essentials;引用它。如果开发者想要从Xamarin应用程序迁移到Xamarin.Essentials,那么可参考Montemagno编写的迁移指南或者官方的Xamarin GeoContacts应用程序。
\n查看英文原文:https://www.infoq.com/news/2019/01/xamarin-essentials-native-apis
\n