1

我是 Linux 用户,一直很犹豫是否要使用 Glade 来设计 GUI,因为它生成的 xml 文件很容易修改。我知道这听起来不是一个大问题,但如果它是一个商业应用程序,你只是不希望人们改变呢?

我偶尔使用 Mac OS X,我发现他们使用名为“.nib”的文件作为 GUI。我认为它们本质上与 Nextstep 和 Openstep 中使用的类型相同(甚至还有一个 Linux 应用程序可以让您编辑这些文件)。无论如何,这些文件都包含在应用程序包中,并且根据某些人的说法,它们是完全可编辑的。这个人声称他甚至成功地编辑了 Keynote 的界面。

现在,为什么会这样呢?最终用户更改界面是否完全可以?还是像传统的 GTK 应用程序那样直接在编译的应用程序代码中使用 GUI 更好?

4

4 回答 4

3

OS X nib 文件是一种选择;另一种选择是以编程方式做事。对于 android,XML 文件可以定义 GUI 或程序代码可以做到。在 Windows WPF 中,UI 是用 XML 制作的。火狐/Mozilla?XUL,另一种基于 XML 的 UI 语言。

大多数现代 GUI 工具包都有这两个选项,甚至只是在文件中定义 UI。

但即使是二进制文件也是可修改的。使用一个好的二进制逆向工程工具,它是完全开放的。真正确定的唯一方法是做苹果对 iOS 所做的事情,并运行签名代码;整个捆绑包由密钥签名,如果修改则无法运行。

这对大多数人来说都不是问题。为什么要关心 UI 是否被修改?底层代码不是,因此无法添加或修改功能。

作为一个推论(和一点题外话),你可能有一个有效的担忧是有点像这样的东西

于 2011-01-05T18:29:34.477 回答
1

我真的看不出有什么问题。如果用户弄乱了他的用户界面,那是他的问题。把它想象成可修改的游戏。用户总是喜欢它们,最终,大多数游戏都从中受益。应用程序的用户界面通常没有什么秘密。如果有,您总是可以进行某种加密。

正如其他人所说,如果您只想禁止编辑,也可以添加校验和。

于 2011-01-05T18:28:14.407 回答
0

xml 仅指定界面的外观。如果没有编译的事件处理代码,它几乎没有用。我的观点是客户自行承担更改它的风险,您实际上可能会从他们的黑客中获得一些免费的有用改进。

如果您真的对人们更改它感到偏执,您可以在加载 xml 时添加一个 MD5 摘要验证步骤或其他东西,或者将 xml 字符串编译到头文件中,但这会破坏许多好处。

于 2011-01-05T18:23:36.620 回答
0

主题引擎可以对您的 GUI 进行实质性的更改,就像Parasite之类的工具一样。更新 Glade 布局——风险自负——比其中任何一个都安全得多。

用户自定义 UI 有什么问题?

于 2011-01-05T18:29:59.010 回答