将 android 应用程序移植到 xamarin 或 windows 本机问题

Porting android app to xamarin or windows native questions

所以,我开发 android 应用程序已有一段时间了,我也被要求尝试将此应用程序移植到 windows phone。为了减少尝试维护同一应用程序的两个不同版本的麻烦,我决定尝试将此应用程序移植到 xamarin 中,因为我听说它的性能优于混合应用程序。这些是我关于 xamarin 的问题:-

  1. 我想在我的跨平台应用程序中保持与原始应用程序相同的外观和感觉,同时在 windows 版本中使其与众不同。我可以做些什么来达到这种效果?

  2. 我将此应用程序移植到 windows phone 本机是否更好,因为在尝试创建通用应用程序时会遇到更多问题?

  3. 在发布 xamarin 应用程序时,Windows 商店是否有任何限制?

Xamarin 并未真正涵盖 Windows UWP 应用程序,只是认为它们在该平台上具有 UI 框架 Xamarin.Forms 运行。也就是说,您正在制作的是原生 Windows UWP 应用。

Xamarin 擅长的是当您开始针对多个平台并且您以一种可以在支持的平台上重复使用的方式构建代码时。例如,这可以通过将大部分逻辑和行为放入便携式 Class Library/NETStandard 库并在您的应用程序中使用它来完成。

为您的应用程序制作平台不可知逻辑和行为的典型模式是模型-视图-视图模型模式,其中视图是特定于平台的,而模型和 ViewModel 通常是平台不可知的。 ViewModel 是行为所在的地方,它将模型与视图联系在一起。 通常 ViewModel 不会直接知道 View,但中间会有一个层(胶水),例如 XAML 或来自 MvvmCross、MvvmLight 或 ReactiveUI 的绑定引擎来命名一些 MVVM 库.

Xamarin 提供的是为 Android 和 iOS 编写 C# 代码的能力,这极大地使您能够在这两个平台之间以及所有 Windows 平台之间共享代码.因此,UI 非常依赖于每个平台。 当然,您可以使用 Xamarin.Forms 作为 UI 抽象层,它使用本机 UI 控件生成本机 UI,以便在所有目标平台上获得类似的应用程序.

首先你要知道Xamarin开发有不同的风格,谁来分享更多或更少的内容。

如果您使用 Xamarin Forms,您有一个与任何平台(您在其中创建视图和类)无关的主项目,以及使控件适应每种本机样式的特定平台项目。

如果您使用 Xamarin Classic 进行开发,您将拥有一个共享项目,您只能在其中开发与数据相关的 类,以及具有自己的视图和 类 具有本机友好控件的特定平台项目和native类似的功能,不过我觉得,没有直接Xamarin Clasic Windows Project.

因此,如果您只想拥有两个看起来都是本机但具有相同结构和功能的应用程序,Xamarin Forms 将是您的最佳选择,因为您只开发“一个应用程序”成为本机风格,例如这个:

如果您想要拥有不同的应用程序、不同的功能和不同的内容,那么您需要选择 Xamarin Classic。然后我建议你做的是在本地开发 windows phone,但将所有代码放在共享库中。然后你可以创建一个 Xamarin 经典 Android 应用程序并使用共享库。您仍然需要维护两个不同的应用程序,但您只需要更改一次“核心”代码。

如果你使用 Xamarin Forms 做一个 UWP windows 应用程序我认为你发布它没有任何问题,认为 Xamarin 来自 Microsoft。