2015-09-05 35 views
2

我想评估Xamarin是否会成为我的项目的一个很好的选择。该项目是一个大型,复杂的Android和iOS应用程序,具有很多客户端 - 服务器通信。用户界面是一个重点,必须非常快速和流畅。此外,我们计划大量使用UX图形效果(可与Spotify应用程序相媲美)。Xamarin跨平台用户体验与原生开发

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

到目前为止,我听到的大多数意见都表示,Xamarin虽然远远优于HTML5应用程序,但却无法与原生应用程序的用户体验相匹配。另外,我测试了Xamarin(Android上)做出了如下应用:

  • RDIO
  • 市场观察
  • 布希花园发现指南
  • Sqor
  • Storyo

从我的印象,它们中的任何一个都不能完美匹配优秀原生应用的速度和平滑度。

如果我们专注于一流的用户体验,Xamarin会真的成为一个可行的选择吗?它能真正匹配本地UX吗?我特别希望从具有大型和复杂的跨平台Xamarin应用程序经验的开发人员那里获得意见。一些批评声音会很有帮助。

非常感谢!

+0

我是我问了一个类似的问题,并做了与你相同的测试:Storyo,snap-attack和MarketWatch。但我的印象是它非常非常流畅,并不觉得它不是真正的本地应用程序。你可以测试这些应用程序,也许现在给我们你的印象plz? – Jerome2606

回答

6

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

Xamarin允许您使用C#编写原生应用程序。任何缓慢,笨拙,丑陋或不合适通常与Xamarin层本身无关。

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

但是,当你节省时间,你花在其他方式。所有您想使用的SDK都可能与Xamarin不兼容。您不会在iOS框架中安装pod install,并且您可能正在为少数事情重新发明轮子。 Xamarin利用NuGet repo,所以你有一个组件库可以处理大多数人需要的东西(分析,测试,Facebook SDK,JSON解析,数据库等等),但它并不包含所有内容。它当然不包括苹果或谷歌产品发布当天的内容。

任何您想要导入到项目中的第三方代码都将通过编写custom bindings完成。虽然不是通常困难,但它是耗时。 Xamarin有一个专门帮助你的人。这个事实说明了这个过程有时是混乱的。因此,虽然缓慢,笨拙,丑陋或不合适可能不是Xamarin的错,但它可能是您在通常不会的地方花费时间,或者不能够利用功能你通常会。如果该第三方合作伙伴SDK给您带来问题,您的疑难解答可能需要两倍的时间,因为有一层您无法控制。

  • UI是一种洗涤剂。无论如何你都是从头开始写的。
  • 业务逻辑是共享的。如果您构建应用程序以利用它,则取决于可能赢得的应用程序。
  • 缺乏兼容性/出血边缘的能力。这对你来说可能并不重要,或者你可能是那个想要在宣布它的下一个操作系统版本中利用这个热门新API的人。

我个人的想法,不知道具体情况,如果你想建立一个应用程序,你打算在将来几年左右,这将利用最新最好的,我会告诉你写本地为每个平台。除非您真的能看到共享该业务逻辑的巨大收益,否则前期收益极少。或者如果你真的喜欢C#。

2

Xamarin使用本机控件。所以你设计一个完全原生的UI每个平台。用户看不到您的应用是用Xamarin或Java/Objective-C制作的。 有时与平台无关的UI封装器Xamarin.Forms一起出现性能问题。但是你并没有被迫使用它。当您的Xamarin.AndroidXamarin.iOS应用程序仍然存在性能问题时,请在代码中生成它们。

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

正如你可以看到Xamarin的内部性能成为在时间好。

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