我该从哪里开始为mvvmcross Gtk提供支持?

3

我需要在我的跨平台应用程序中引入Gtk平台支持。该应用程序是使用mvvmcross构建的。我查看了一下,没有找到该框架现有的Gtk“平台”实现。我有时间来处理它。我应该从哪里开始?有哪些潜在问题需要注意?


这方面有任何成功吗? - Saamer
1个回答

1

更新我看到你在这里发表了评论https://github.com/MvvmCross/MvvmCross/pull/2697,最好将聊天保留在问题中而不是SO。

你看过twitter convo吗?然后链接到这个GitHub issue

从Slodge(Stuart)的评论中,他给出了MVVMCross 3.1所需的基本步骤:

有人以前已经做过了

我 - 主要是在这些平台上

@deapsquatter 和 @loqu8/Tim - Mac 平台

@et-nowis - Unity/Ngui - https://github.com/et-nowis/mvx-unity-ngui/blob/master/Assets/External/MvvmCross/Cirrious/Cirrious.MvvmCross.Binding.Unity/MvxUnityBindingBuilder.cs

现在 3.1 版本相当稳定,完整平台的主要步骤包括:

  1. 从 CrossCore 开始 - 您需要为该平台编写一小组扩展 - 类似于每个平台中的 https://github.com/MvvmCross/MvvmCross/tree/v3.1/CrossCore - 实际上每个平台需要什么取决于平台。Droid/Touch 平台的主要内容是 Views 文件夹 - 但是这些可能根本不需要“只绑定”- https://github.com/MvvmCross/MvvmCross/tree/v3.1/CrossCore/Cirrious.CrossCore.Droid/Views
  2. 构建绑定库 - 这始于特定于平台的 BindingBuilder - 每个基本上都添加自定义的“绑定模式”-TargetFactories - 用于该平台。请参见以下示例:
  3. 构建 Mvvm 平台层。这通常只涉及添加平台特定的 Setup、Presenter(也称为 NavigationService)和 BasePage(例如基本 Activity、基本 UIViewController、基本 Page)类。这里的复杂性通常出现在诸如以下问题中:
    • 支持插件加载(它们应该使用 Assembly.Load 很容易工作,但有时并不像它应该那样容易)
    • 弄清楚如何导航
    • 弄清楚“墓碑”(对于桌面平台来说希望不是问题)
    • 弄清楚在哪里存储和清除绑定(在其 bindingcontext 中)- 创建绑定总是比清除更容易。
  4. 根据需要移植单个插件....如何入手,需要考虑什么,已知的陷阱等。

这些是开始的基本步骤

我认为这不是一个很大的工作 - 特别是因为 v3 在可移植结构方面相当好!

对于“需要考虑什么”和“已知的陷阱”,抱歉,但我真的不知道 - 自 MvvmCross v1 以来,我实际上没有完全从头开始编写过一个。

如果您开始了这条路,请让我们在此线程上提出问题 - 这就是我们在 215 中为 unity 所尝试的。

你需要根据你所使用的版本来适应这些步骤。此外,上面提供的链接对于3.1版本将会失效。因此,你需要将它们映射到更新的等价物。
除此之外,我知道最近添加了Tizen,可以看看如何添加它们以获取大致的想法。
我认为这是可能的,但需要付出很大努力,祝你好运!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接