xamarin - 对于现有 Android 应用程序,我应该选择 Xamarin native 还是 Xamarin.Forms?

标签 xamarin xamarin.ios xamarin.android xamarin.forms

我们有一个 Android 应用程序,想要重新创建它以实现跨平台。

支持或反对 Xamarin 原生和表单的事实是什么?

原生的优点是,我们可以重用所有 xml 布局,同时必须在 XAML 或 XIB 中重新创建 iOS View ?

有什么东西是真正的拦截器吗?

最佳答案

我将根据 Giorgi 的回答进行评论,并提供一些实际见解,并引用复制的要点:

这是我在过去 6 个月中收集的经验的简历:

Xamarin.Forms 最适合:

  • 几乎不需要特定于平台的功能的应用
    • 错了。通过 DI,您可以使用您可能想要的任何设备功能。如果您对此有疑问,请查看 GitHub 上的 XLabs。
  • 代码共享比自定义 UI 更重要的应用
    • 确实是胡说八道。您可以编写自己的渲染器,以您想要的方式表示每个平台的控件。我还为自定义控件(例如 SideDrawer)编写了更困难的渲染器。在 Android 中,我在 2 天之内完成,在 iOS 中大约 2 周(Android 渲染器只是 native 控件的包装器)
  • 熟悉 XAML 的开发人员
    • 是的,以及任何喜欢方便的 UI 开发的人。请注意,xaml 有一个学习曲线(我在开始 WPF 开发时就已经知道了)。但据我所知,它与 Android 并没有太大不同。

Xamarin.iOS 和 Xamarin.Android 最适合:

  • 具有需要 native 行为的交互的应用
    • 虽然在 native 破解您的解决方案肯定更快,但如果购买良好的控件/了解良好的 native 实现并将其镜像到 C# 中,则可以相当快地完成,因为 C# 中的 API 与 native API 非常相似。<
  • 使用许多特定于平台的 API 的应用
    • 不知道为什么 Xamarin 针对表单进行反广告。到目前为止我还没有遇到什么麻烦
  • 自定义 UI 比自定义 UI 更重要的应用 代码共享
    • 可能是这样,但保持 UI 功能内联也更困难,并且您将需要更多人力。

有关表单的注意事项:

  • Forms 目前似乎正在稳定下来,我相信微软会尽最大努力将其变成一个坚实、可靠的产品(构建问题在过去有时是一场噩梦,但它已经变得更好了)时间)

  • 与 WPF XAML 相比,Xamarin 的 XAML 开发程度较低,但非常相似。然而,最近的 nuget 更新以令人印象深刻的速度提供了镜像功能。您期望和喜爱的 XAML 绝大多数功能都已具备。

  • 如果您不进行研究,列表性能就会很差 ( here )。性能增加了该区域的负载。

  • 如果我必须再次做出选择,我仍然会选择表格。虽然有时有些事情看起来有缺陷/不好,但您通常可以以某种方式找到一个干净的修复方案,同时花费大部分时间实际开发应用程序。 (有时您仍然会发现一些让您皱眉的事情为什么没有实现,例如 Margin 属性在微软购买 xamarin 后才实现)

  • 如果您最终需要嵌套列表,请务必查看嵌入式 native 控件,以实现最大性能 - 这对于我正在开发的产品至关重要。请参阅this

关于xamarin - 对于现有 Android 应用程序,我应该选择 Xamarin native 还是 Xamarin.Forms?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36899096/

相关文章:

android - 获取字符串的 (Android.Graphics) 路径

c# - MonoDevelop 上的命名空间错误

ios - NSAttributedString.initWithHTML 在 MonoTouch 中不可用

mono - 使用 Monotouch 为 IOS UI Picker 设置主题

android - xamarin Visual Studio 2015 apk 安装失败 : Error "parsing the package"

xamarin - 在 Xamarin IOS 中显示带有文本和图像的按钮

c# - 如何在 Xamarin.forms 的轮播页面中以编程方式更改页面?

c# - TabHost 在 CreateIntentFor<> 中传递参数

xamarin - 在内容页 XAMARIN FORMS 中调用 onresumo() 方法

c# - 无法将 Linq2Twitter 包添加到 Xamarin Studio