我是Linux用户,我一直非常犹豫使用Glade来设计GUI,因为它生成的xml文件很容易被修改。我知道这听起来不是一个重大问题,但如果它是一个商业应用程序,你只是不想让人们改变呢?
我偶尔使用Mac OS X,并且我发现他们使用名为“.nib”的文件用于GUI。我认为它们基本上与Nextstep和Openstep使用的类型相同(甚至还有一个允许您编辑这些文件的Linux应用程序)。无论如何,这些文件包含在应用程序包中,根据some people,它们是完全可编辑的。这个人声称他甚至成功地编辑了Keynote的界面。
现在,为什么会这样呢?最终用户更改接口是否完全没问题?或者直接在编译的应用程序代码中使用GUI,如传统的GTK应用程序更好?
答案 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有什么问题?