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

时间:2016-12-23 06:03:54

标签: xamarin windows-phone

所以,我一直在开发Android应用程序,我被要求尝试将此应用程序移植到Windows手机上。为了减少尝试维护同一个应用程序的两个单独版本的麻烦,我决定尝试将此应用程序移植到xamarin中,因为我听说它的性能优于混合应用程序。这些是关于xamarin的问题: -

  1. 我希望将原始应用中的外观和感觉保持在我的跨平台应用中,同时在Windows版本中使其与众不同。我能做些什么才能达到这个效果?

  2. 将此应用程序移植到Windows手机本机是否更好,因为在尝试创建常用应用程序时出现了额外的问题?

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

2 个答案:

答案 0 :(得分:2)

Xamarin并不真正涵盖Windows UWP应用程序,只是因为他们拥有在该平台上运行的UI Framework Xamarin.Forms。这意味着,你所做的是一个原生的Windows UWP应用程序。

当您开始定位多个平台并且您已经在可以在支持的平台上重复使用的方式构建代码时,Xamarin最擅长的是什么。例如,可以通过将大部分逻辑和行为放入可移植类库/ NETStandard库并在应用程序中使用它来完成。

为应用程序制定平台无关逻辑和行为的典型模式是称为Model-View-ViewModel的模式,其中View是特定于平台的,而Model和ViewModel通常是平台无关的。 ViewModel是行为所在的位置,它将Model与View绑定在一起。 通常,ViewModel不会直接知道View,但是介于两者之间(胶水),例如XAML或来自MvvmCross,MvvmLight或ReactiveUI的绑定引擎,以命名一些MVVM库。

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

答案 1 :(得分:1)

首先,您需要了解Xamarin开发的不同风格,他们将分享更多或更少的内容。

如果您使用Xamarin表单,则您的主项目与任何平台(创建视图和clases的位置)无关,以及使控件适应每种本机样式的特定平台项目。

如果你使用Xamarin Classic开发,你有一个共享项目,你只开发与数据相关的类,以及具有自己的视图和具有本机友好控件和本机类似功能的类的特定平台项目,但我认为,有没有直接的Xamarin Clasic Windows项目。

因此,如果您只想拥有两个看起来都是原生的应用程序,但具有相同的结构和功能,Xamarin Forms将是您的最佳选择,因为您只需开发一个应用程序"谁像这样成为本土风格: enter image description here

如果您想拥有不同的应用程序,具有不同的功能和不同的内容,那么您需要使用Xamarin Classic。我建议你做的是用原生开发windows手机,但把所有代码都放在共享库中。然后,您可以创建一个Xamarin经典Android应用程序并使用共享库。您仍然需要保留两个不同的应用程序,但您只需要更改"核心"代码只有一次。

如果您使用Xamarin Forms来执行UWP Windows应用程序,我认为发布它没有任何问题,请认为Xamarin来自Microsoft。