Есть ли возможность изменить графический интерфейс приложения после его компиляции? - PullRequest
1 голос
/ 05 января 2011

Я - пользователь Linux, и я очень неохотно использовал Glade для разработки графических интерфейсов, поскольку создаваемые им xml-файлы можно легко модифицировать.Я знаю, это не кажется серьезной проблемой, но что, если это коммерческое приложение, которое вы просто не хотите, чтобы люди меняли?

Я использую Mac OS X время от времени, и я понял,что они используют файлы с именем .nib для графического интерфейса.Я думаю, что они по сути того же типа, что и в Nextstep и Openstep (есть даже приложение Linux, которое позволяет вам редактировать эти файлы).В любом случае, эти файлы включены в комплект приложения и, согласно , некоторые люди , полностью доступны для редактирования.Этот человек утверждает, что он даже успешно отредактировал интерфейс Keynote.

Теперь, почему это возможно?Это нормально для конечного пользователя, чтобы изменить интерфейс?Или лучше иметь графический интерфейс непосредственно в скомпилированном коде приложения, как в традиционных приложениях GTK?

Ответы [ 4 ]

3 голосов
/ 05 января 2011

OS X NIB файлы являются одним из вариантов;Другой вариант - делать все программно.Для Android файлы XML могут определять GUI или программный код.В Windows WPF пользовательский интерфейс выполнен в формате XML.Firefox / Mozilla?XUL, еще один язык пользовательского интерфейса на основе XML.

Большинство современных инструментов GUI имеют либо оба этих параметра, либо даже просто определяют пользовательский интерфейс в файлах.

Но даже двоичные файлы можно изменять.С хорошим бинарным инструментом обратного инжиниринга он широко открыт.Единственный способ быть действительно уверенным - это делать то, что Apple делала с iOS, и запускать подписанный код;весь пакет подписан ключом и не может быть запущен при изменении.

Это не проблема для большинства всех.Почему вас волнует, если пользовательский интерфейс изменен?Базовый код не так, поэтому функциональность не может быть добавлена ​​или изменена.

Как следствие (и немного не по теме), кое-что, о чем вы могли бы иметь действительное беспокойство, это вещи немногобольше похоже на это .

1 голос
/ 05 января 2011

Я не вижу проблемы с этим.Если пользователь испортил свой пользовательский интерфейс, то это его проблема.Думайте об этом как о моддируемых играх.Пользователи всегда любили их, и в конце концов, большинство игр извлекают из этого выгоду.Обычно нет ничего секретного в пользовательском интерфейсе приложения.Если есть, вы всегда можете сделать какое-то шифрование.

Как уже говорили другие, вы также можете добавить контрольные суммы, если вы просто хотите запретить редактирование.

0 голосов
/ 05 января 2011

Механизм создания тем может вносить существенные изменения в ваш графический интерфейс, как и такие инструменты, как Паразит .Обновление макета Glade - на свой страх и риск - намного безопаснее любого из них.

Что не так с настройкой пользовательского интерфейса в любом случае?

0 голосов
/ 05 января 2011

xml определяет немного больше, чем выглядит интерфейс. Без скомпилированного кода обработки событий он практически бесполезен. Мое мнение таково, что клиенты меняют его на свой страх и риск, и вы можете получить некоторые полезные бесплатные улучшения от их хаков.

Если вы действительно параноидально относитесь к людям, меняющим его, вы всегда можете добавить шаг проверки дайджеста MD5 или что-то в этом роде при загрузке xml или скомпилировать строку xml в файл заголовка, но это лишает многих преимуществ.

...