是否应该可以在编译后修改应用程序的GUI?

时间:2011-01-05 18:16:57

标签: linux macos gtk nib glade

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

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

现在,为什么会这样呢?最终用户更改接口是否完全没问题?或者直接在编译的应用程序代码中使用GUI,如传统的GTK应用程序更好?

4 个答案:

答案 0 :(得分:3)

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

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

但即使是二进制文件也可以修改。有了一个很好的二进制逆向工程工具,它是敞开的。唯一可以确定的方法是做Apple在iOS上做的事情,并运行签名代码;整个捆绑包由密钥签名,如果修改则无法运行。

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

作为一个必然结果(和一点偏离主题)你可能有一个有效关注的事情是stuff a little more like this

答案 1 :(得分:1)

我真的没有看到它的问题。如果用户搞砸了他的UI,那么这就是他的问题。把它想象成可模拟的游戏。用户总是喜欢它们,最终,大多数游戏都从中受益。应用程序的用户界面通常没什么秘密。如果有,你可以随时进行某种加密。

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

答案 2 :(得分:0)

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

如果你对改变它的人真的很偏执,你可以在加载xml时总是添加MD5摘要验证步骤,或者将xml字符串编译成头文件,但这会失去许多好处。 / p>

答案 3 :(得分:0)

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

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