performance - Xamarin 跨平台用户体验与原生开发

标签 performance user-interface xamarin

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

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

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

  • radio
  • 市场观察
  • 布希花园探索指南
  • 方形
  • 故事

在我的印象中,没有一个能比得上优秀原生应用的速度和流畅度。

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

非常感谢!

最佳答案

我是 Rdio 移动开发团队的一员,所以我可以从这个角度做一些个人思考。

Xamarin 允许您使用 C# 编写 native 应用程序。任何缓慢、卡顿、丑陋或不良应用通常都与 Xamarin 层本身无关。

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

但是,在您节省时间的同时,也将其用于其他方面。您想要使用的所有这些 SDK 可能与开箱即用的 Xamarin 不兼容。您不会pod install'ing 那个iOS 框架,并且您可能会为一些事情重新发明轮子。 Xamarin 利用 NuGet repo所以你有一个组件库来处理大多数人需要的许多事情(分析、测试、Facebook SDK、JSON 解析、数据库等),但它并没有涵盖所有内容。它当然不包括 Apple 或 Google 产品发布之日的内容。

您想要导入项目的任何第 3 方代码都将通过编写 custom bindings 来完成。 .虽然通常并不难,但很耗时。 Xamarin 拥有一支专门为您提供帮助的团队。这个事实说明这个过程有时很困惑。

因此,虽然缓慢、笨拙、丑陋或不良应用可能不是 Xamarin 的错,但可能是您将时间花在通常不会的地方,或者无法利用功能你通常会。如果该第 3 方合作伙伴 SDK 给您带来问题,您的故障排除可能需要两倍的时间,因为您无法控制一个层。

  • 用户界面是一种洗涤。反正你是从头开始写的。
  • 业务逻辑是共享的。如果您构建应用程序以利用它,这取决于应用程序可能会获胜。
  • 将缺乏兼容性/前沿能力。这对您来说可能根本不重要,或者您可能是希望在下一个操作系统版本发布之日利用该热门新 API 的人。

在不知 Prop 体细节的情况下,我个人的想法是,如果您想构建一个您计划在几年后推出的应用程序,并且该应用程序将利用最新和最好的,我会告诉您为每个应用程序本地编写平台。除非你真的能看到共享该业务逻辑的巨大 yield ,否则前期 yield 是微乎其微的。或者,如果你真的喜欢 C#。

关于performance - Xamarin 跨平台用户体验与原生开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32411508/

相关文章:

Python numpy 切片符号(逗号与索引)性能差异?

performance - MATLAB 中的反制表函数

ios - 如何在 Xamarin IDE 中将搜索栏添加到导航栏中

c# - 如何让安卓模拟器和微软视频一样快

android - 如何处理屏幕旋转上的密码输入

sql-server - 有没有办法在后台运行 MS Access 查询?

iphone - 哪个工具栏后面的阴影效果更有效?

ios - 什么类最适合用作 iPhone 中的弹出窗口?

Java:使用 XML 创建 GUI?

javascript - 您选择的跨浏览器 javascript GUI