Xamarin.forms(或)xamarin.ios/xamarin.android(或)本机

Posted

技术标签:

【中文标题】Xamarin.forms(或)xamarin.ios/xamarin.android(或)本机【英文标题】:Xamarin.forms (or) xamarin.ios/xamarin.android (or) Native 【发布时间】:2015-07-07 12:22:44 【问题描述】:

我们正在组织中开发一个应用程序,我们必须在其中实现图表、地图、GPS,如果我们在 Xamarin.ios/xamrin.android 中开发,开发人员可以共享应用程序的业务逻辑吗?因为两个 android/ios 项目都将在 c# 中。

【问题讨论】:

如果您的应用严重依赖您列出的功能:地图、gps、高级图形控制,那么我强烈建议您不要使用 xamarin.forms。 Xamarin.iOS 和 Xamarin.Android 似乎是最佳选择。 【参考方案1】:

我正在做同样的事情。

不要使用 Xamarin 表单。它不是为也不能做大量定制的 UI 设计的。

如果您需要与地图集成并生成任何类型的非标准呈现或“用户控件”,Xamarin.Forms 将不适合您。

继续使用像 MvvmCross 这样的框架来进一步抽象平台并将您的核心代码/逻辑和用户体验流程保持在 Core.Pcl 类型库的范围内。

如果您在 Windows 上执行此操作,我也不会尝试在基于 Windows 7 的计算机上执行此操作。您会发现自己想要使用的大多数组件都以 Profile259 为目标,而且由于 Windows 7 不支持 Windows Phone 8,即使您进行了 Profile259 hack,您也会遇到各种奇怪的事情。

使用MvvmCross,Windows 8 并忽略 Xamarin 表单。

我在my blog上写了一点。

Read this 来自 Xmarin,他们明确指出 Forms 是用于运行工厂业务应用程序或用于原型设计。还不够成熟。

【讨论】:

【参考方案2】:

是的,您可以在 Android 和 iOS 应用共享的 PCL 库中编写核心应用逻辑(服务、数据、域等)。

【讨论】:

所以你推荐 Xamarin.Forms(或)xamarin.ios/xamrin.android ? 建议与 SO 无关。您的问题专门询问您是否可以在 Xamarin Android 和 iOS 应用程序之间共享代码。【参考方案3】:

根据我的经验,您可以在 Xamarin Forms 中构建大多数应用。主要障碍是做任何未包含在 X.Forms 中的事情都需要您编写自定义渲染器。问题是,如果您对 vanilla Xamarin(Xamarin.iOS 和 Xamarin.Android)有扎实的掌握,编写自定义渲染器会更加简单。

我认为发生的情况是,进入 Xamarin 的开发人员会直接转到 Xamarin.Forms,然后当他们无法编写自定义呈现器来完成某些自定义要求时会感到沮丧。

所以我的建议是,如果您有使用 Xamarin.iOS 和 Xamarin.Android 构建应用程序的经验,Xamarin.Forms 非常适合为多个平台快速开发应用程序。能够使用 MVVM + XAML + 数据绑定是一个巨大的胜利。

如果您不熟悉 Xamarin 甚至是移动开发,请使用 Xamarin.iOS 和 Xamarin.Android 构建应用程序。

【讨论】:

以上是关于Xamarin.forms(或)xamarin.ios/xamarin.android(或)本机的主要内容,如果未能解决你的问题,请参考以下文章

我应该在 Xamarin.Forms 中使用啥视频或媒体播放器? 3 似乎可用

在 Xamarin.Forms 中获取图像或 ImageSource 的字节 [] / 流?

是否可以将 Xaml 设计器或智能感知与 Xamarin.Forms 一起使用?

Xamarin.Forms Previewer

如何使用 xamarin.forms 在移动设备中选择多个音频和/或视频文件?

如何在 Xamarin.Forms.Map 中获取当前位置或移动到当前位置