2011-01-05 5 views
1

私はLinuxユーザーです.Gladeを使用してGUIを設計することは非常に躊躇しています。これは、生成するXMLファイルを簡単に変更できるためです。私はそれが大きな問題のようには聞こえませんが、商業的なアプリケーションであれば、人々が変わりたくないと思うのはどうですか?コンパイル後にアプリケーションのGUIを変更することは可能ですか?

私はしばらくMac OS Xを使用していますが、GUI用に「.nib」というファイルを使用していることがわかりました。私はそれらが本質的にNextstepとOpenstepで使われているものと同じだと思います(これらのファイルを編集できるLinuxアプリもあります)。とにかく、これらのファイルはアプリケーションバンドルに含まれており、some peopleに従って完全に編集可能です。この人はKeynoteのインターフェースをうまく編集したと主張しています。

なぜ、これは可能でしょうか?エンドユーザーがインターフェイスを変更することはまったく問題なのでしょうか?あるいは、従来のGTKアプリケーションのように、コンパイルされたアプリケーションコードにGUIを直接置く方が良いでしょうか?

+2

可能であっても、なぜそれを防止しますか? Moddabilityは一般的にプラスです(特に正式にサポートされている場合は、主な点は可能です)、それを防止する上でトレードオフや努力をすることを正当化するものではない場合でも、 – delnan

+0

"従来のGTKアプリ"でも、ユーザーのGTKテーマ設定で変更することができますか、それともそれを禁止することもできますか? –

+0

OS Xでは、nibファイルはもう編集できません。ヒョウの前に、ビルド時にアプリケーションに単純にコピーされました。ただし、コンパイルされてバンドルにコピーされる別の形式が使用されています。これらの新しいものは編集できません。 – ughoavgfhw

答えて

3

OS X nibファイルは1つのオプションです。もう1つの選択肢はプログラムで事を行うことです。アンドロイドの場合、XMLファイルはGUIまたはプログラムコードで定義できます。 Windows WPFでは、UIはXMLで作成されます。 Firefox/Mozilla?もう一つのXMLベースのUI言語であるXUL。

ほとんどの現代のGUIツールキットは、これらのオプションの両方を持っているか、ファイル内にUIを定義しています。

しかし、バイナリも変更可能です。良いバイナリリバースエンジニアリングツールを使用すると、それは広く開かれています。本当に確実な唯一の方法は、AppleがiOSで行ったことを行い、署名付きコードを実行することです。バンドル全体が鍵で署名され、変更された場合は実行できません。

これはほとんどの人にとって問題ではありません。 UIが変更された場合、どうして気になるのですか?基礎となるコードは存在しないため、機能を追加または変更することはできません。

有効な懸念があるかもしれないものは、stuff a little more like thisです。

0

xmlは、インターフェイスの外観よりも少ししか指定しません。コンパイルされたイベント処理コードがなければ、それはかなり役に立たない。私の意見では、顧客はそれを自分の責任で変更しているので、実際にはハックから何か有益な改善が得られるかもしれません。

もしあなたが本当にそれを変更する人に妄想があるなら、あなたはxmlを読み込んだり、xml文字列をヘッダファイルにコンパイルしたりするときにMD5ダイジェスト検証ステップを追加することができます。

+0

あなたがその病気の人なら、あなたはコーディングを止めて助けを受けるべきです。 – delnan

1

本当に問題はありません。ユーザーがUIを混乱させると、それが彼の問題です。それはmoddableゲームのように考えてください。ユーザーはいつもそれらを愛していました。結局のところ、ほとんどのゲームはその恩恵を受けています。通常、アプリケーションのユーザーインターフェイスには秘密はありません。もし存在すれば、何らかの暗号化をいつでも行うことができます。

他にも述べたように、編集を禁止したい場合はチェックサムを追加することもできます。

0

Parasiteなどのツールと同様に、テーマエンジンでGUIを大幅に変更することができます。 Gladeレイアウトを更新することは、それ自身のリスクで、どちらかよりもはるかに安全です。

とにかくUIをカスタマイズしているユーザーには何が問題なのですか?

関連する問題