近日,跨平台移动应用开发迎来了“大杀器”——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
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论