何时使用Xamarin.Forms和Xamarin Native?[关闭]


159

我需要在使用Xamarin.Forms与Xamarin本机之间进行开发。

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

那么,在Xamarin Native上使用Xamarin.Forms的技术利弊是什么?


1
看看Xamarin移动开发的好的和坏的一个很好的讨论,2017年一月
奥利弗

1
底线...只是去本地!我是根据我自己的经验讲的。我将表格应用程序重新编写为Native。
Tejasvi Hegde

2
2015年的评论不再反映Xamarin Forms的现实。它已经走了很长一段路,并且在.NET Core \ Standard成熟之后似乎爆炸了。
肖恩·安德森

这个问题需要重新讨论。它已有4年的历史了,并且Xamarin.Forms框架内进行了巨大的开发,以支持企业应用程序的开发。
詹姆斯·马隆

Answers:


144

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

您团队的背景

您的团队中是否有人以前有使用Android或iOS(使用Java或Obj-C / Swift)进行本地编码的经验?这种经验可以在本机Xamarin中重用,但是他们必须学习另一个平台来在Forms中进行编码。

如果他们对iOS / Android一无所知,但又了解一些XAML,也是如此。当然Xamarin.Forms与WPF / Silverlight不同,但是了解XAML无疑可以帮助我使用Forms。

性能

Xamarin Forms仍然存在一些问题,例如初始化时间。您应该考虑这对您的最终用户是否会有问题。我不会为使用偶尔打开的仪表板应用程序而等待一段时间,但是如果消息传递应用程序也遇到同样的情况,我会很生气。

交货时间

由于使用Forms时代码共享更大,因此您可以期望更快的交付时间。

您的应用程序的复杂性

考虑到前一点,使用Forms可能会偶然发现一些show stopper bug(毕竟这是一项非常新的技术),它将使时间收益无效。选择之前,请考虑应用程序的复杂性。


2
如果您希望拥有一个外观漂亮的应用程序,那么我会添加这个内容,您最终将在Xamarin本机代码的每个平台上拥有大量自定义界面
Roman Nazarevych

2
上面的答案和评论都太旧了。如果启用AOT,今天的性能就不是大问题。评论中关于好看的应用的说法也不正确。xamarin的形式得到了改进,您可以轻松实现美观的应用程序。
batmaci

Xamarin Forms在轻松获得美观的UI方面没有太大改进。Xamarin.Shell将在这方面进行重大改进,但到目前为止,如果不为每个平台编写自定义组件,Xamarin仍然很难获得任何吸引人的东西。
亚历山大

176

Xamarin表格

优点

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

缺点

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

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

优点

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

缺点

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

除了Xamarin在https://xamarin.com/forms上所说的以外:

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

Xamarin.Forms最适合:

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

Xamarin.iOS和Xamarin.Android最适合:

  • 需要专业互动的应用
  • 具有高度修饰设计的应用
  • 使用许多特定于平台的API的应用
  • 自定义用户界面比代码共享更重要的应用

关于“几乎不需要平台特定功能的应用程序”,是否有示例可以使我们了解我们正在谈论的是哪种功能?
NS.X.

平台功能很少,意味着您主要是作为应用程序来执行数据绑定和其他业务规则。没有太多的自定义绘图,也没有尝试将所有像素完美渲染。如果您可以使用可响应的通用布局,那么Xamarin.Forms非常适合。
杰森·肖特

我认为最好的答案。这为我清除了这些内容:“ Xamarin.Forms:为所有平台创建一个UI”和“ Xamarin.iOS,Xamarin.Android:为每个平台创建一个UI”。谢谢!
Tadej

1
@Dibzmania我从未说过它仅适用于原型和基本应用程序。如果您想要一个跨平台的应用程序,并且每个平台上的UI几乎相同,那么Xamarin.Forms就是不错的选择。如果您希望每个平台都有一个自定义UI,那么您可能不会从Xamarin.Forms中受益,而应该使用本机UI库。
Wosi

1
我认为内森·威廉姆斯的这篇文章很有用:arctouch.com/blog/xamarin-forms-xamarin-native
Alt-WN

44

Xamarin网站

Xamarin.Forms最适合:

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

Xamarin.iOS和Xamarin.Android最适合:

  • 需要专业互动的应用

  • 具有高度修饰设计的应用

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

  • 自定义用户界面比代码共享更重要的应用


1
这个答案是旧的/旧的。与棱镜一起使用表格。愉快的经历。我是一个开发大型应用程序的开发人员,我的工作效率很高,并且我的应用程序可以在所有应用程序上正常工作。如果您想要外观精美的应用程序,可以使用各种第三方视图,例如Grial UI Kit(查看其免费的XAML实时预览器)。请记住,默认情况下,Xamarin Forms仍使用本机控件。
肖恩·安德森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.