Performance Xamarin跨平台用户体验与本机开发

Performance Xamarin跨平台用户体验与本机开发,performance,user-interface,xamarin,Performance,User Interface,Xamarin,我正在尝试评估Xamarin是否是我项目的一个好选择。该项目是一个大型、复杂的Android和iOS应用程序,需要大量的客户机-服务器通信。用户界面是一个主要的焦点,必须非常快速和流畅。此外,我们计划大量使用UX图形效果(与Spotify应用程序相当) 目前,我们计划使用Java/Objective-C开发两个独立的本机应用程序。不过,跨平台代码共享的可能性对我们来说当然非常方便 到目前为止,我听到的大多数观点都认为Xamarin——尽管远远优于HTML5应用程序——无法与本地应用程序的用户体验

我正在尝试评估Xamarin是否是我项目的一个好选择。该项目是一个大型、复杂的Android和iOS应用程序,需要大量的客户机-服务器通信。用户界面是一个主要的焦点,必须非常快速和流畅。此外,我们计划大量使用UX图形效果(与Spotify应用程序相当)

目前,我们计划使用Java/Objective-C开发两个独立的本机应用程序。不过,跨平台代码共享的可能性对我们来说当然非常方便

到目前为止,我听到的大多数观点都认为Xamarin——尽管远远优于HTML5应用程序——无法与本地应用程序的用户体验相媲美。此外,我还测试了以下使用Xamarin(在Android上)开发的应用程序:

  • Rdio
  • 市场观察
  • 布施花园探索指南
  • Sqor
  • 故事
在我的印象中,没有一款能与一款优秀的本地应用程序的速度和流畅性相媲美

如果我们的重点是一流的用户体验,那么Xamarin真的是一个可行的选择吗?它真的能匹配本地用户体验吗?我特别想征求具有大型复杂跨平台Xamarin应用程序经验的开发人员的意见。一些批评的声音会很有帮助

多谢各位

Xamarin使用本机控件。因此,您可以为每个平台设计一个完全本地的UI。用户看不到你的应用程序是用Xamarin或Java/Objective-C制作的。 有时,与平台无关的UI包装一起出现性能问题
Xamarin.Forms
。但你不会被迫使用它。当您的
Xamarin.Android
Xamarin.iOS
应用程序中仍存在性能问题时,请在代码中生成这些问题

Android应用程序的基准测试结果比较了
Xamarin.Android
Java
应用程序:

正如你所见,随着时间的推移,Xamarin的内部表现越来越好


结论:是的,您可以使用Xamarin编写流畅的本机应用程序。

我是Rdio移动开发团队的成员,因此我可以从这个角度进行一些个人思考

Xamarin允许您用C#编写本机应用程序。任何缓慢、刺耳、丑陋或糟糕的幸福感通常与Xamarin层本身无关

您可以节省一些时间,以便在不同的客户机之间共享核心业务逻辑,但您仍然在从头开始编写特定于平台的UI。你只是用C写的

但是,当你节省时间的时候,你却在用其他的方式。您想要使用的所有SDK可能都与Xamarin不兼容。您将不会安装该iOS框架,您可能正在重新发明一把轮子来处理各种事情。Xamarin利用了,所以您有一个组件库,可以处理大多数人需要的许多事情(分析、测试、Facebook SDK、JSON解析、数据库等),但它并没有涵盖所有内容。它当然不包括苹果或谷歌产品发布当天的内容

您希望导入到项目中的任何第三方代码都将通过编写完成。虽然通常不难,但很费时。Xamarin有一个团队专门为您提供这方面的帮助。这一事实说明这个过程有时是混乱的

因此,虽然缓慢、刺耳、丑陋或糟糕的幸福感可能不是Xamarin的错,但也可能是你花时间在通常不会去的地方,或者无法利用通常会用到的功能。如果第三方合作伙伴SDK给您带来了问题,您的故障排除可能需要两倍的时间,因为存在一个您无法控制的层

  • 用户界面是一个清洗。反正你是白手起家写的
  • 业务逻辑是共享的。根据应用程序的不同,如果你设计应用程序来利用它,这可能是一个胜利
  • 缺乏兼容性/前沿能力。这对你来说可能根本不重要,或者你可能是希望在下一个操作系统发布当天利用这一热门新API的人

我个人的想法是,在不知道具体细节的情况下,如果你想构建一个你计划在几年后开发的应用程序,并且能够利用最新和最好的技术,我会告诉你为每个平台编写本机应用程序。除非你能在分享业务逻辑中看到巨大的收益,否则前期收益是微乎其微的。或者如果你真的喜欢C#。

我问了一个类似的问题,做了和你一样的测试:Storyo、snap attack和MarketWatch。但我的印象是,它非常平滑,并不觉得它不是“真正的”本地应用程序。你能测试一下这些应用程序,也许现在能给我们你的印象吗?