何时使用Xamarin.Forms与Xamarin Native?

Aja*_*mar 153 c# xamarin.ios xamarin.android xamarin xamarin.forms

我需要在Xamarin.Forms与Xamarin本机应用程序之间做出选择.

我想使用Xamarin.Forms,因为UI代码也将被共享.

那么与Native相比,Xamarin.Forms有什么缺点.

Wos*_*osi 171

Xamarin.Forms

优点

  • 为所有平台创建一个UI
  • 使用所有平台上可用的基本组件(如按钮,文本字段,旋转器等)
  • 无需学习所有本机UI框架
  • 快速跨平台开发流程
  • 自定义本机渲染器使您能够调整控件的外观和感觉

缺点

  • 它仍然是一个新的框架,仍然包含错误
  • 特别是Windows RT尚不稳定
  • 它有时比直接访问本机控件慢
  • 自定义本机渲染器具有边界,并且记录不足

Xamarin.Android,Xamarin.iOS,Windows Phone,Windows RT

优点

  • 为每个平台创建一个UI
  • 轻松调整平台特定UI功能和组件的能力
  • 充分利用您的用户界面

缺点

  • 跨平台开发过程要慢得多
  • 您需要学习所有本机UI框架
  • 您可能会导致重复代码(因为您以三种不同的平台特定方式描述几乎相同的UI)

除了Xamarin在https://xamarin.com/forms上说:

哪种Xamarin方法最适合您的应用?

Xamarin.Forms最适合:

  • 数据输入应用
  • 原型和概念证明
  • 需要很少平台特定功能的应用程序
  • 代码共享比自定义UI更重要的应用程序

Xamarin.iOS和Xamarin.Android最适合:

  • 需要专门互动的应用
  • 高度抛光设计的应用程序
  • 使用许多特定于平台的API的应用程序
  • 自定义UI比代码共享更重要的应用


Wil*_*osa 140

除了Xamarin网站上显示的要点,您还应该考虑:

你团队的背景

你的团队中是否有人曾经有过为Android或iOS原生编码的经验(使用Java或Obj-C/Swift)?这种体验在本机Xamarin中重用,但是他们必须学习另一个在Forms中编码的平台.

如果他们对iOS/Android一无所知但知道一些XAML,情况也是如此.当然Xamarin.Forms与WPF/Silverlight不同,但知道XAML肯定帮助我使用Forms.

性能

Xamarin Forms仍然存在一些问题,例如初始化时间.您应该考虑这是否会对您的最终用户造成问题.我不愿意等待一段时间才能使用我偶尔打开的仪表板应用程序,但如果发送消息应用程序的话,我会生气.

交货时间

由于使用表单时代码共享更大,因此您可能希望更快的交付时间.

您的应用程序的复杂性

考虑到前一点,使用表单你可能会偶然发现一些显示停止错误(毕竟这是一项非常新的技术),这将使时间收益无效.在选择之前考虑应用程序的复杂性.

  • 如果你希望有一个好看的应用程序,我将添加到这个,你将最终拥有许多自定义接口与每个平台的Xamarin本机代码 (2认同)
  • 上面的答案和评论都太旧了。如果启用AOT,今天的性能就不是大问题。评论中关于好看的应用的说法也不正确。xamarin的形式得到了改进,您可以轻松实现美观的应用程序。 (2认同)

Gui*_*tro 43

来自Xamarin网站

Xamarin.Forms最适合:

  • 数据输入应用
  • 原型和概念证明
  • 需要很少平台特定功能的应用程序
  • 代码共享比自定义UI更重要的应用程序

Xamarin.iOS和Xamarin.Android最适合:

  • 需要专门互动的应用

  • 高度抛光设计的应用程序

  • 使用许多特定于平台的API的应用程序

  • 自定义UI比代码共享更重要的应用

  • 这个答案是陈旧的/旧的。使用带有棱镜的表格。愉快的经历。我是一个开发大型应用程序的单一开发人员,我的工作效率很高,而且我的应用程序适用于所有情况。如果您想要漂亮的应用程序,可以使用各种第三方视图,例如 Grial UI Kit(查看他们的免费 XAML 实时预览器)。请记住,默认情况下 Xamarin Forms 仍然使用本机控件。 (2认同)