
Как организовать UI так, чтобы не переписывать код: личный опыт
Одна из участниц команды, с которой сейчас я веду разработку очень крутого ПО для создания интерактивых сцен и анимаций (в следующих статьях об этом будет), сказала мне про то, что не воспринимает светлую тему и всегда переключает на тёмную – и отдаёт предпочтение тем программам, где реализовано переключение на тёмную тему. Это не могло не навести меня на мысль, что стоило бы добавить и в мой музыкальный редактор 3BIT тёмную тему, чем я и занялся по приходу домой. Каково было моё удивление от осознания, что отсутствие выделения основных функций, касающихся стиля пользовательского интерфейса, в отдельный файл и последовательного описания там основных констант может вылиться в невозможность разработки более сложной архитектуры UI. И проблема болезненная, ведь проект большой, разные элементы были распределены по разным уголкам кода.В IT я уже два года, и за это время занимался и развитием своего информационного портала, и разработкой инди-игр, а сейчас всецело увлечён созданием программного обеспечения. Это статья про мои ошибки, касаемо описания UI в разрабатываемых мною приложениях, играх и так далее. Полагаю, кому-то это может быть интересно, а кому-то и крайне полезно – потому что рассказываемые далее рекомендации правда могут спасти ваш проект, если вы как и я мало времени уделяете внешнему виду, больше опираясь на функционал и бэкэнд.Сейчас конечно присутствует понимание того, какой должна была быть система: сначала делаем файл с перечислением констант, формируем там же функции, где эти константы применяются, а после привязываем этот «theme» к основному проекту. В противном случае придётся переписывать код, вычленяя в новосозданный «theme»-файл константы и функции со всего уже выстроенного проекта, попутно исправляя возникающие баги и ломая голову над какими-то логическими конструкциями, которые были реализованы непонятно в какой момент и неясно, как ты вообще к этому тогда пришёл. В общем, сущий ад с чуть ли не полным переписыванием кода. Читать далее