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