Вопреки мнению большинства ответивших, эту задачу на самом деле должен выполнять отдельный дизайнер, а не программист (стыдно не знать). Он должен быть в курсе всего задуманного функционала приложения, чтобы понять, какие элементы пользовательского интерфейса необходимо использовать. И расставлять он их будет естественно по своему дизайнерскому вкусу, а также подбирать шрифт надписей, цвета темы и пр. красоту. Дизайнеру также необходимо редактировать код (если до этого шпарил в редакторе), когда допустим имеется выпадающий список, а разместить в нем элементы возможно только программно. По сути он работает только в главном потоке поскольку весь UI обрабатывается именно там (эт в Android, за других не ручаюсь если что). Написано, что в конечном итоге дизайнер формирует ТЗ для программистов и передаёт проект в разработку. Скорее всего, в плане программного взаимодействия, после себя он оставляет программистам лишь id тех элементов, для которых они потом должны будут создать обработчиков событий (касание, выбор, скролл, изм. состояния и тд.), и им уже совершенно по барабану где и как эти элементы расположены на разметке.