【问题标题】:Porting android app to xamarin or windows native questions将 android 应用程序移植到 xamarin 或 windows 本机问题
【发布时间】:2017-05-08 20:06:17
【问题描述】:

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

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

  2. 将这个应用程序移植到 Windows Phone 原生系统会更好吗,因为在尝试创建通用应用程序时会遇到额外的问题?

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

【问题讨论】:

    标签: xamarin windows-phone


    【解决方案1】:

    Xamarin 并没有真正涵盖 Windows UWP 应用,只是认为它们具有在该平台上运行的 UI 框架 Xamarin.Forms。这意味着,您正在制作的是本机 Windows UWP 应用。

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      因此,如果您只想拥有两个看起来都是原生的应用,但具有相同的结构和功能,那么 Xamarin Forms 将是您的最佳选择,因为您只开发“一个单一的应用”,它会变成这样的原生风格:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-26
        相关资源
        最近更新 更多