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

时间:2015-09-05 09:28:12

标签: performance user-interface xamarin

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

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

到目前为止,我所听到的大多数观点都说Xamarin - 虽然远比HTML5应用程序好 - 但却无法与原生应用程序的用户体验相媲美。此外,我测试了以下使用Xamarin(在Android上)制作的应用程序:

  • RDIO
  • 市场观察
  • 布希花园探索指南
  • Sqor
  • Storyo

从我的印象来看,它们都不能与一个好的原生应用程序的速度和流畅度相匹配。

如果我们专注于一流的用户体验,Xamarin真的会成为一个可行的选择吗?它能真正匹配原生UX吗?我特别期待那些拥有大型复杂跨平台Xamarin应用程序经验的开发人员的意见。一些批评声音会非常有用。

非常感谢你!

2 个答案:

答案 0 :(得分:6)

我在Rdio移动开发团队,所以我可以从这个角度做一些个人反思。

Xamarin允许您使用C#编写本机应用程序。任何缓慢,笨拙,丑陋或糟糕的应用通常与Xamarin层本身无关。

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

但是当你节省那段时间时,你会以其他方式花钱。您想要使用的所有这些SDK可能与开箱即用的Xamarin不兼容。你不会 pod install 那个iOS框架,你可能正在重新发明一些东西。 Xamarin利用了NuGet repo,因此您拥有一个组件库,可以处理大多数人需要的东西(分析,测试,Facebook SDK,JSON解析,数据库等等),但它并不涵盖所有内容。它肯定不包括苹果或谷歌产品公告当天的内容。

您希望导入项目的任何第三方代码都将通过编写custom bindings来完成。虽然通常困难,但这很耗时。 Xamarin拥有一支专门协助您的团队。这个事实说明这个过程有时很混乱。

因此,虽然缓慢,笨拙,丑陋或糟糕的表现可能不是Xamarin的错,但是你可能有时间在你通常不会去的地方,或者无法利用功能你通常会。如果第三方合作伙伴SDK给您带来问题,那么您的故障排除可能需要两倍的时间,因为有一个您无法控制的图层。

  • 用户界面是一种洗涤。无论如何,你是从头开始写的。
  • 业务逻辑是共享的。如果您构建应用程序以利用它,则可能是一个胜利的应用程序。
  • 缺乏兼容性/出血能力。这可能对你来说无关紧要,或者你可能是那个想要在宣布它的下一个操作系统版本中利用那个热门新API的人。

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

答案 1 :(得分:2)

Xamarin使用原生控件。因此,您为每个平台设计了一个完全原生的UI 。用户无法看到您的应用程序是使用Xamarin或Java / Objective-C制作的。 与平台无关的UI包装器Xamarin.Forms一起,有时会出现性能问题。但是你没有被迫使用它。如果您的Xamarin.AndroidXamarin.iOS应用仍然存在性能问题,那么请在代码中生成这些问题。

针对Xamarin.AndroidJava个应用的Android应用有基准测试结果:Does anyone have benchmarks (code & results) comparing performance of Android apps written in Xamarin C# and Java?

正如您所看到的,Xamarin的内部表现随着时间的推移变得越来越好。

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