如何使用Xamarin更轻松地开发跨平台应用程序。

收购Xamarin是微软最明智的交易之一。 它很快使它能够使用工具,使开发人员可以使用熟悉的工具和技术来构建跨平台应用程序。 Xamarin现在已内置在Visual Studio的每个版本中 ,并为其MacOS Visual Studio版本提供了基础,已成为Microsoft开发工具的关键元素。

直到最近,即使使用Xamarin,构建跨平台应用程序也不容易。 对于所有核心开发工具来说,它们都可以处理来自.Net的iOS和Android,使用它来构建应用程序意味着拥有大量特定于设备的代码来处理本机UX和深度平台集成。 尽管您可以将核心代码保留在特定于设备的项目中,但是构建和测试整个应用程序需要领域知识和专业技能。 结果是,尽管每个平台的代码都比使用本机工具便宜,但代码的构建实际上并没有它本应的便宜。

[构建移动应用程序的方法不止一种。 查看25个用于快速构建移动应用程序的简单工具 。 | 通过InfoWorld的App Dev Report新闻通讯了解编程中最热门的话题。 ]

与Xamarin的跨平台UI和设备集成

微软的平台开发人员一直在努力解决这一财务和人员瓶颈, 首先是Xamarin Forms ,现在是Beta版本的Xamarin.Essentials 。

Xamarin Forms解决了问题的大部分用户界面,提供了可在每个受支持平台上适当呈现的通用控件。 您可以编写代码,布置控件,然后为所有目标设备构建版本。 尽管这是最低的公分母方法,但它提供的控件可以满足许多企业应用程序开发需求。 您可能不希望将Xamarin Forms应用程序交付给用户,但是对于内部应用程序(例如销售和现场服务)而言,这已经足够了。

然后,如何简化代码的另一面,并处理其与基础平台API的接口? 到目前为止,您需要编写本机代码或使用自定义插件。 为了充分利用Xamarin,无论您要使用的操作系统是什么,您都希望相同的API调用与通知,文件系统,摄像头以及定位服务一起使用。 这就是Xamarin.Essentials出现的地方:这是一个通用的抽象层,可在不需要自定义代码或特定于平台的技能的情况下中介和管理对这些平台服务的访问。

Xamarin入门

Xamarin.Essentials是一个跨平台的库,可访问iOS,Android和通用Windows平台(UWP)上的超过25种平台API,但不能访问MacOS。 您可以在针对这些平台中一个或多个平台的应用中使用它们,从而使为Android受众开发的代码也可以快速移植为支持iOS。 目前大多数设备都支持,与最新版本的iOS处理10及更高版本的Android 4.4奇巧及更高版本,UWP释放晚于生成1709像许多其净工作,微软正在Xamarin.Essentials在开放, 托管它在GitHub上 。 尽管目前尚未接受对功能的拉动请求,但Microsoft仍在寻找可帮助解决错误和重构代码的社区。

该库还旨在利用.Net链接器和编译器中的功能,因此不会在构建过程中携带未使用的代码。 这种方法可以减小最终本机二进制文件的大小,并通过为应用程序提供尽可能小的攻击面来将可能的安全风险降至最低。

向您的代码添加Xamarin.Essentials很容易,因为它可以作为NuGet包提供,并且可以通过Visual Studio的解决方案资源管理器添加。 确保已将其添加到所有项目,所有目标设备的所有项目中,并等待其安装软件包和任何先决条件。 您还需要在所有将使用其API的C#类中添加对它的引用。 Android应用程序确实需要额外的配置,因此您需要向默认的OnCreate方法和所有Activity类添加一些额外的代码。

像这样的工具进行简单的设置很重要。 使用熟悉的平台工具可确保开发人员可以快速上手。 同样,只需初始化两行代码即可初始化Xamarin.Essentials,因此在您开始在应用程序中使用其API之前,几乎不需要学习。 最初的API集涵盖了现代移动应用程序中所需的大部分内容。 它们包装最常见的设备传感器平台,并提供对核心OS功能和网络的访问。

从您的代码中调用Xamarin.Essentials API

在应用程序中启用Xamarin.Essentials支持后,就可以开始向代码中添加API。 您仍然需要设置一些特定于设备的属性,因此请为每个目标OS保留单独的项目。 其中大多数将赋予您的应用特定权限; 例如,如果您使用的是地理位置API,则可以添加对GPS传感器和位置数据的访问权限。

您会发现大多数API调用都是逻辑的,它们的响应正是您所期望的。 例如, 进行位置呼叫以获取包含纬度,经度和高度的对象。 您可以获取该数据并将其传递给地图控件或将其保存在数据库中。 调用必须是异步的,因为您需要等待基础OS API的响应。 如果应用程序无法完成操作,还可以选择取消操作,从而使您可以正常处理关机和暂停操作。

Xamarin.Essentials中的API并不复杂,有一些非常简单, 例如SMS消息传递API 。 您需要做的就是使用消息和收件人调用其ComposeAsync方法,以在默认的SMS客户端中自动创建消息。 您不需要知道底层操作系统是如何工作的。 您只需要了解抽象的Xamarin方法即可。

结果是一种可以导致更快的开发,更重要的是,更少的错误的方法。 现有的基于Xamarin插件的扩展模型并没有消失,它是支持更复杂的API交互的首选方法。 从此版本中获得的是一组核心API,这些API应该涵盖大多数基本的设备和操作系统交互,从而帮助您更快地发布代码。

借助Xamarin.Essentials,Microsoft涵盖了现代移动应用程序所需的许多API。 通过从底层操作系统中抽象出来,它还使得处理数据变得更加容易,以逻辑格式返回数据,从而简化了编写从API到UI再到代码的代码。 Xamarin.Essentials和Xamarin Forms的结合最终应该为Microsoft提供一直在寻求PC和移动设备的端到端跨平台开发的故事。

From: https://www.infoworld.com/article/3287938/how-to-develop-cross-platform-apps-more-easily-with-xamarinessentials.html

你可能感兴趣的:(如何使用Xamarin更轻松地开发跨平台应用程序。)