2011-01-05 99 views
1

我是Linux用戶,而且我一直很猶豫用Glade來設計GUI,因爲它生成的xml文件可以很容易地修改。我知道這聽起來不是什麼大問題,但如果這是一個商業應用程序,你只是不想讓人們改變?是否應該可以在編譯後修改應用程序的GUI?

我每隔一段時間就會使用Mac OS X,並且我發現他們使用的GUI文件名爲「.nib」。我認爲它們基本上與Nextstep和Openstep中使用的類型相同(甚至有一個Linux應用程序可以讓你編輯這些文件)。無論如何,這些文件都包含在應用程序包中,並且根據some people,它們是完全可編輯的。這個人聲稱他甚至成功編輯了Keynote的界面。

現在,爲什麼會這樣呢?最終用戶改變界面完全沒問題嗎?或者,像傳統的GTK應用程序一樣,直接在編譯的應用程序代碼中使用GUI會更好嗎?

+2

即使有可能:你爲什麼要阻止它?可變性通常是一個優點(特別是在官方支持的情況下,但主要的一點是這是可能的),即使這不是什麼理由可以做出任何努力或做出任何折衷來防止它的發生? – delnan 2011-01-05 18:25:21

+0

即使「傳統的GTK應用程序」可以通過用戶的GTK主題設置進行更改,或者您是否也想取締它? – 2011-01-05 18:28:11

+0

在OS X中,nib文件不再可編輯。在豹之前,他們只是在構建時被複制到應用程序中。但是,現在有一種不同的格式被使用,它被編譯並複製到軟件包中。這些新的不可編輯。 – ughoavgfhw 2011-01-05 19:15:06

回答

3

OS X nib文件是一個選項;另一種選擇是以編程方式做事情。對於android,XML文件可以定義GUI或程序代碼可以做到這一點。在Windows WPF中,UI是用XML編寫的。火狐/ Mozilla瀏覽器? XUL是另一種基於XML的UI語言。

大多數現代的GUI工具包都有這兩個選項,甚至只是在文件中定義UI。

但即使二進制文件是可修改的。用一個好的二進制反向工程工具,它是開放的。要真正確定的唯一途徑就是做蘋果在iOS上做的事情,並運行簽名代碼;整個包由一個密鑰簽名,如果修改則不能運行。

對大多數人來說這不是問題。爲什麼你關心UI是否被修改?底層代碼不是,所以功能無法添加或修改。

作爲一個推論(和一個小題外話),你可能有一個有效的關注是stuff a little more like this

0

xml指定的只是接口的外觀。沒有編譯的事件處理代碼,它幾乎沒用。我的觀點是客戶自行承擔風險,並且實際上您可能會從黑客​​手中獲得一些免費的有用改進。

如果你對改變它的人真的很偏執,你可以隨時添加一個MD5摘要驗證步驟或者當你加載xml,或者將xml字符串編譯成頭文件,但是這會失去很多好處。

+0

如果你是那種偏執狂,你應該停止編碼並獲得幫助。 – delnan 2011-01-05 18:27:53

1

我真的不覺得有問題。如果用戶弄亂他的用戶界面,那麼這是他的問題。把它看作是可以修改的遊戲。用戶總是喜歡他們,最後,大多數遊戲都從中受益。應用程序的用戶界面通常沒有什麼祕密。如果有的話,你總是可以做某種加密。

正如其他人所說的,如果您只是想禁止編輯,還可以添加校驗和。

0

主題引擎可以對您的GUI做出實質性改變,就像Parasite這樣的工具。更新格萊德佈局 - 風險自負 - 比任何一個更安全。

用戶自定義UI有什麼問題?

相關問題