【问题标题】:What they're really talking about when they're talking about Xamarin.Forms?当他们谈论 Xamarin.Forms 时,他们真正在谈论什么?
【发布时间】:2016-05-26 02:42:48
【问题描述】:

我是Android开发的新手,碰巧进入,现在对Android开发和Xamarin有点了解,但是看到人们在谈论时,让我感到很困惑的一件事Xamarin.Forms,有时我认为他们在谈论另一个平台,而不仅仅是项目中的参考。 那么根据您使用 Xamarin 的经验,能否请您详细说明这一点,并向有 3 周经验的开发人员描述,Xamarin.Forms 如何使开发变得更好,是什么使它成为 Xamarin 开发中最亮的方面?

【问题讨论】:

  • 根据我的理解,它不是在 Xamarin 中拥有 Android 和 iOS 项目,而是使用一个通用项目来实现每个平台的“前端”,而是一个通用的“前端”项目,适用于所有平台。
  • 您仍然需要分别构建 APK 和 IPA 的 Android 和 iOS 特定项目,并且这些项目将具有一些特定于平台的代码。但您还将拥有另一个共享项目(共享项目或 PCL),它在 Xamarin.Forms 可移植代码中定义用户界面。

标签: xamarin xamarin.forms


【解决方案1】:

Xamarin.Forms 允许您定义一个用户界面,该界面可用于所有受支持的平台。这有几个优点:

  • 您无需了解每个平台的 UI 的所有信息来编写应用程序
  • 开箱即用的控件将自动具有目标平台的外观
  • 如果您想使用自定义控件,您可以编写特定于平台的“渲染器”来调整外观或提高性能

您确实注意到它比原生 UI 慢了一点,但我只是在从一个视图切换到另一个视图时才注意到这一点。此外,某些特定于平台的控件可能在 Xamarin.Forms 中不可用。

创建 Xamarin 应用程序时,您没有必须使用 Xamarin.Forms;您还可以选择分别为每个平台使用本机 UI。

【讨论】:

    【解决方案2】:

    对于像我这样对 iOS 应用程序开发一无所知的人来说非常有用。我有构建 android 应用程序的经验,但对 iOS 没有任何经验,但使用它我也可以构建 iOS 应用程序。

    使用 Xamarin Forms 允许您使用 C# 代码或 Xaml 进行设计。如果您了解 Xaml,那么快速进行设计真的很容易也很棒。虽然您没有在构建时查看输出的优势,但我们仍然希望尽快获得它。

    使用 Xamarin Forms,您不必担心本机外观。 Xamarin 很好地保持了这一点。只需使用提供的控件,您就可以在所有受支持的框架中制作最原生的应用程序。

    每个人都说的另一个优势,一次编码,让您的应用在其他平台上准备就绪。

    此外,如果您想要 Xamarin Forms 中不可用的任何内容,那么您可以使用渲染器来执行此操作。如果您想使用某些特定于平台的代码,那么可以直接将其用作 __IOS__... Shared 中的块,而对于 PCL,您可以创建 Dependency Services。

    关于应用程序性能,您可能会注意到一些滞后,或者应用程序大小的增加,但这些事情可以得到注意,并且有可用的解决方案。但是,如果您获得所有这些好处,那么我肯定会尝试一下。不过,这些是我的想法,您会在 Xamarin Forms 的优势方面得到很好的答案。

    【讨论】:

      【解决方案3】:

      Xamarin Forms 允许您创建一个将在 Android、iOS 和 Windows Phone 上运行的 C# 解决方案/应用程序

      当您创建一个新应用程序时,将创建 4 个项目 - 一个用于 Android,一个用于 iOS,一个用于 WinPhone,以及一个 Portable 或 Shared 项目。任何可以共享的代码都将存在于 Portable 项目中,其中包括任何模型定义、业务逻辑和大部分 UI。每个特定于平台的项目都包含在该平台上启动应用程序、加载 Forms 组件和调用 Portable 项目的代码。平台特定项目还可以包含特定于该平台且不受 Forms 支持的代码。两个示例是读取/写入设备的函数,以及允许设置 UserAgent 字符串的 WebView 对象(Forms 对象)的“自定义渲染器”。

      可以通过将平台的项目设置为“启动项目”来针对每个平台测试和编译代码。可移植代码将被编译为适合作为启动项目的平台设置的语言。因此,您最终会从一个代码库中获得(最多)3 个不同的特定于平台的应用程序。

      【讨论】:

        猜你喜欢
        • 2010-09-10
        • 1970-01-01
        • 2011-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-06
        相关资源
        最近更新 更多