Я работаю над приложением на python, которое работает на 2 разных платформах, а именно на обычном настольном Linux и Maemo 4. Мы используем PyGTK на обеих платформах, но на Maemo есть несколько небольших настроек, которые реализованы, которые реализованы следующим образом:
if util.platform.MAEMO:
# do something fancy for maemo
else:
# regular pygtk
Примерно 15 таких операторов, необходимых для того, чтобы пользовательский интерфейс выглядел и работал хорошо на Maemo 4.
Это было очень управляемо все это время. Проблема в том, что некоторое время назад была выпущена новая версия Maemo (5, она же fremantle), и она имеет некоторые большие различия по сравнению с Maemo 4. Я не хочу добавлять кучу проверок в коде GUI, чтобы получить все 3 платформы, работающие хорошо с той же кодовой базой, потому что это будет грязно. Я также не хочу создавать копию исходного кода графического интерфейса для каждой платформы и просто изменять ее для конкретной платформы (я хотел бы повторно использовать как можно больше кода).
Итак, как можно иметь слегка разные пользовательские интерфейсы для разных платформ, основанные на одном и том же основном коде пользовательского интерфейса? Я не думаю, что это вопрос, касающийся Python или Maemo, я просто хотел бы знать, как это делается.