在完成了网页设计和Android的工作后,我终于开始了桌面软件的工作,直到我真正开始着手桌面UI设计时,我的开发周期出现了重大延迟。迄今为止的经历是痛苦的。我决定使用Java来编写程序,因为这样我就可以为套接字和无线接口使用跨平台的api(我的程序非常依赖这些api,并且可以成功地工作)。
Web和Android UI设计:
HTML/CSS/Javascript;XML/Android API ->提供高灵活性,自定义,快速UI开发周期。
Java桌面UI设计
AWT/Swing/Swing FX ->
几乎不可能定制,从这里和这里的问题可以看出。当定制成为可能时,实现它会大大增加开发时间,如下所示。它还增加了代码的复杂性,并且在大多数情况下,解决方案是本地的,不适用跨平台(至少Linux、Windows、Mac)。原生的,默认的外观真的不是大多数UI设计师想要的。
拖放选项很好,改善开发时间。窗口建设者。但是缺少像添加ImageView这样的选项。而且,如果需要第2点提到的定制,则必须对自动生成的代码进行大量修改,从而完全否定了拖放的使用。
谁能建议我一个真正好的或接近好的UI工具,或者说是UI引擎(如果存在的话),具有以下功能:
1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design.
2. Everything is cross-platform, including customization solutions.
3. High degree of customization. Developer designs what looks good to him/her,
without increasing time-to-develop much.
4. Also cross-language. That is, has wrappers for all major programming languages,
like C++,Java,Python etc.
在我看来,最好的方法或工具是:
Qt框架。对于UI来说非常好,但如果有包装器就更好了用于Java和其他语言。它不会减少开发时间,而且会需要手工编码,但可以使界面看起来非常好和
使用。WxPython。另一个好工具,如果它有其他的包装会很酷语言。
一些工具,让设计桌面UI与HTML/CSS/xml类语法和易用性。
不要再考虑UI工具和
。不要再抱怨了,使用默认的、现有的工具和原生的的样子。
b。手工编码所有内容,并为每个平台单独定制。
c。在Java中使用图形画布并编写UI,就像编写场景一样
如果你不这样认为,或者如果有更好、更容易的选择,请提出建议。
谢谢。
"几乎没有定制的可能"在我看来,短视,你可以在这里寻找有关外观和感觉的信息,如果你有冒险精神,你可以创建自己的。人们在定制Swing时遇到的许多问题,更多的是由于缺乏对API的理解,而不是缺乏灵活性。事实上,我发现Swing是最灵活、最可定制的工具包之一。 你也可以在这里查看如何创建自己的组件 你必须意识到的是,当你越来越接近"快速工具"时,你开始降低灵活性和可定制性,因为这些工具开始将你锁定。 我没有使用WindowBuilder的经验,但是NetBeans表单设计器允许你在项目类路径中包含任何组件,包括任何你已经构建或下载的。 我同意经常对Swing提出的批评之一是它需要多长时间才能启动并运行。这归结为为灵活性和可定制性而设计的API。最终开发人员应该围绕最适合他们需求的API构建库。 大多数人会告诉你要避免使用屏幕构建器,而选择手工编码。就我个人而言,我喜欢屏幕构建器,但我坚持让我的初级开发人员很好地理解布局管理器是如何工作的,并构建像复合布局这样的设计技术。 我认为很多人的问题之一是忘记构建应用程序。虽然我喜欢一个好看的应用程序,但我仍然更喜欢一个真正按照设计目的做的应用程序,并且做得很好,而不是看起来很漂亮。 我将从Qt Qt提供了一个优秀的开发环境: 您可以在给定的链接中阅读有关QtDesigner的信息。它为您提供了一种简单的"所见即所得"(WYSIWYG)类型的界面,并为您生成自动代码。如果你想让你的UI是多语言的,其他模块,如国际化,也很有用。 Qt在以下平台上工作: 自从诺基亚在Gitorious上向社区开放Qt源代码以来,各种端口已经出现。以下是其中一些: 上面所讨论的。 你不会相信这里的列表。它们几乎涵盖了所有的语言,包括Ada、Pascal、Perl、PHP、Ruby、Python和Java。 我给出上述信息的前提是,你打算让桌面应用程序具有"原生"小部件的外观和感觉。我还想再补充一点。 如果你有足够的灵活性,使UI没有真正的"按钮"等,更像"智能手机UI",不要去任何其他地方,而不是使用Qt-Quick。 快速,简单,强大,灵活。事实上,他们已经开始在qml中提供对直接桌面小部件的支持。看到这里。 随着现代桌面快速变化的外观和感觉,未来的趋势似乎是手机和桌面ui在某种程度上合并! 在桌面端几乎没有任何创新发生的情况下,他们似乎正朝着手机世界的新方向发展。看到Windows Metro的UI发生了什么吗? 为了以防万一,你可以在这里阅读如何使Metro的UI像qml! 随着Qt5的到来,事情变得更好了!阅读这篇文章,看看它是如何弥合桌面和手机界面之间的差距的。 注:观点可能有点偏颇,我是Qt的粉丝,也是Java的仇恨者。:-) 1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design.
2. Everything is cross-platform, including customization solutions.
外部端口3. High degree of customization. Developer designs what looks good to him/her,
without increasing time-to-develop much.
4. Also cross-language. That is, has wrappers for all major programming languages,
like C++,Java,Python etc.