2016-12-23 138 views
0

因此,我一直在开发一个android应用程序一段时间,并且我被要求尝试将此应用程序移植到windows phone。为了减少尝试维护同一应用程序的两个单独版本的麻烦,我决定尝试将此应用程序移植到xamarin中,因为我听说它的性能比混合应用程序更好。这是我的问题是关于xamarin: -将android应用程序移植到xamarin或windows原生问题

  1. 我要保持相同的外观和感觉,我在我的原始应用到我的跨平台的应用程序,并在同一时间,使其在不同的windows版本。我能做些什么来达到这个效果?

  2. 对于我来说,将该应用程序移植到Windows Phone本机相当更好,因为在尝试创建通用应用程序时遇到了额外的问题?

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

回答

1

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

如果您使用Xamarin表格,您将有一个与任何平台(创建视图和分类的地方)无关的主项目,以及将控件适应每种本地样式的特定平台项目。

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

所以,如果你只想有两个应用程序看起来都是原生的,但具有相同的结构和功能,Xamarin Forms将是你最好的选择,因此你只开发出像这样变成原生风格的“单一应用程序” : enter image description here

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

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

1

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,以在所有目标平台上获取类似的应用程序。

相关问题