2013-06-29 50 views
4

昨天我偶然发现了Haxe NME项目,这是一个非常有前途的想法。但是,用这个框架构建复杂的UI仍然是不可能的。在我看来,构建面向如此多不同平台的UI框架似乎是一个令人生畏的任务,因此我认为这不是一种可行的方法,因为即使是老式和成熟的UI框架,如Qt和wxWidgets也不支持很多平台。Haxe NME UI:MVC应用程序设计的最佳实践

但是,在一些漂亮的UI设计工具的帮助下构建特定于平台的UI,然后将UI代码连接到在Haxe中编写的UI不可知的代码上可能很有意义。我不知道这是否可行,因为我找不到任何示例,但也许有人已经编写了一些MVC Haxe代码,可以成功连接到不同平台特定的用户界面,并希望分享他的经验。谢谢。

回答

12

你说:

但是,它仍然无法构建复杂的用户界面

只是因为你还没有想出如何做到这一点并不意味着它是不可能的;)

可能的原因是,在Haxe生态系统中,语言和编译器是跨平台非常一致的,NME/OpenFL提供了相当强大的跨平台渲染环境(HTML 5有一些怪癖,但其他人看到相当强大),所以你在这些基础上构建的任何东西都将覆盖很多平台。这是关于相当高的水平 - 让编译器和图书馆照顾平台怪癖。

在MVC中,用户界面的东西通常是“V查看”。对于View/UI框架,检查出这些库:

  1. Stablex UI
    NME/OpenFL,跨平台。使用NME API绘制组件。这是我玩过的唯一一款 ,但该演示在Android上始终如一, flash,html5,native linux。相当不俗。

  2. HaxeUI
    NME,跨平台。再次,在舞台上绘制组件。

  3. Prime
    使用Flash API绘制。不知道它是否已被跨平台移植。
    参见Talk/Video from WWX conferenceSlides

  4. Guise
    A的能够要么绘制UI,或者如果可以使用本地真正的创新方式。查看博客文章。

  5. Basis
    另一个封装本地组件的尝试 - 目前为止已有iOS和Android库。很酷,但我还没有玩过它。

对于MVC,有很多的选择:

  1. PrimeVC,如上所述。
  2. MMVC,基于RobotLegs框架,但为Haxe量身打造。
  3. 大量小选项BBMVCPureMVC

的MVC框架的优点在于,它们从应用程序数据(模型)和逻辑电路(控制器)中分离的意见。试着花一些时间熟悉一下MVC框架,然后你会看到如何用一种方式编写你的应用程序,然后你可以使用其中一种方式,然后使用任何各种视图引擎 - 本地或NME-渲染。这可能是一个相当陡峭的学习曲线,但这是您如何构建易于在不同UI框架之间移植的应用程序,并且易于测试,因此您知道它们将随着应用程序复杂度的增长而扩展。

+0

谢谢。我知道那些Haxe UI框架,但它们不包含很多组件。如果我可以使用像wxWidgets,Qt或Flex mxml这样的任意UI框架,然后将外部UI粘贴在以Haxe编写的模型和控制器类 之上,我会很高兴。这可能吗? – user1812379

+0

那你有没有遇到过Waxe? https://github.com/misterpah/waxe –

+0

是的,但这也是一个很小的项目,可能迟早会消失。如果它应该以某种方式成为可能,我想将Haxe与大型UI框架结合使用。 – user1812379

0

您似乎要面对的主要问题是没有开箱即用的选项,完全可以供您使用。众多的项目人士正在建议做你想做的事。你需要愿意使用它们。 github上的一个小项目可能会被删除。如果是这样的话,它会被丢弃,因为jo使用它,所以它会让那些愿意使用它的人(即:你)继续使用它。

每个人都不能虹吸他人完成的项目,或者什么也不会创建。参与是开源的关键。

0

对所有平台都有一个统一的用户界面没有意义,每个平台都有不同的工作流程,您是否尝试在Windows上使用IOS列表框,简直是荒谬。另一方面,一个好的设计可以将视图从bussines逻辑中分离出来,并且可以与所有目标共享商业逻辑并为每个目标调整视图。看看PureMVC
在Haxe的一个mvc例子