【问题标题】:Is Xamarin.Forms a simple sum of Xamarin.Android, Xamarin.IoS and Xamarin.Win?Xamarin.Forms 是 Xamarin.Android、Xamarin.IoS 和 Xamarin.Win 的简单总和吗?
【发布时间】:2019-02-20 16:08:03
【问题描述】:

Xamarin.Forms 是否被视为具有共享代码库包装器的 Xamarin.Android 和 Xamarin.IoS 的简单总和?还是引擎盖下的内容比表面上看到的更多?

我不是在谈论共享代码库,因为我意识到它是特定于 Xamarin.Forms 的,而是(例如)如果我要将 Xamarin.Droid 项目与 Xamarin.Forms 解决方案的 android 代码库进行比较,将会我发现有什么明显的不同吗?我会发现任何差异。 IOS 和 Windows 也是如此......

只是为了提供上下文;我有兴趣使用一些最初为 Xamarin.android 设计的工具,但是我的项目是 Xamarin.forms 解决方案,如果我遇到麻烦,提前知道会很酷。

提前感谢你们这些好人。

【问题讨论】:

  • 不,它不仅仅是其各个部分的“总和”。它添加了许多它自己的附加功能,并且它也有一些限制,因为它不能充分利用仅存在于一个平台上的功能。但这是一个非常广泛的问题,无法在 SO 上有意义地回答
  • 好的,这是有道理的,但这并不表示 xamarin.droid 项目是否被认为等同于 xamarin.forms 解决方案的 android 代码库。 android 代码库中是否存在这种额外的复杂性?
  • “等价”是什么意思?但一般来说,Forms 解决方案中的 Android 项目将由 Xamarin Android 代码组成,尽管它可能会利用 MessagingCenter 或 DependencyService 等 Forms 功能
  • 通过等价性我的意思是,除了自定义渲染器和依赖服务之外,xamarin.forms 解决方案的 droid 部分是否可以毫无问题地移植到常规 xamarin.droid 项目?
  • 一般来说是的。

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


【解决方案1】:

最后,Xamarin Forms 是原生 API 的包装器,因此如果您在 Xamarin Forms 中有某些内容,当然可以将其移植到 Xamarin Android、iOS 或 Windows。

Xamarin.Forms 是否被视为具有共享代码库包装器的 Xamarin.Android 和 Xamarin.IoS 的简单总和?还是引擎盖下的内容比表面上看到的更多?

在最简单的情况下,Xamarin.Forms 是一个用于构建用户界面的移动应用程序框架。 Xamarin 网站上的定义是:

Xamarin.Forms 是一个跨平台 UI 工具包,允许开发人员轻松创建可在 Android、iOS 和 Windows Phone 之间共享的本机用户界面布局。

但不要只关注该定义中的“UI”一词,而只考虑屏幕控件。相反,将注意力集中在 Xamarin 中的“工具包”这个词上。除了跨平台工作的用户界面控件之外,表单还提供了更多功能。

Xamarin.Forms 将发出 100% 本机 iOS、Android 或 UWP 应用程序 - 事实上,任何 Xamarin.Forms 应用程序的起点都在这些平台项目之一中。但是,这只是平台特定代码需要完成的。其余代码都可以编写在所有应用程序共享的层中。

如果我要将 Xamarin.Droid 项目与 Xamarin.Forms 解决方案的 android 代码库进行比较,我会发现任何显着差异吗?我会发现任何差异。 IOS 和 Windows 也是如此......

只是基本 API 的区别,就是表单和原生的区别

【讨论】:

    【解决方案2】:

    您应该将 Xamarin.Forms 视为实际平台上的 UI 的抽象。 Xamarin.Forms (XF) 在本机平台控件中呈现 UI,但它们是使用 XF XAML 创建的。

    针对 XF 进行编码就像在 UI 级别使用不同的工具集为不同的平台进行编码!

    如果需要,您可以通过接口实现和注入深入了解平台特定的细节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多