Вы можете отправлять уникальный файл «config» пользователя с сервера в зависимости от идентификатора пользователя, поэтому каждый пользователь имеет свою собственную конфигурацию, настроенную так, как он хочет, также вы можете использовать StateManager для сохранения пользовательской конфигурации после того, как она была изменена. Таким образом, интерфейс будет меняться в зависимости от разрешения и роли. Для части 4. Я не вижу никаких проблем, если вы решите пойти с макетом карты ...
setActiveTab( String/Number/Ext.Component card )
EDIT:
Вы можете использовать getState (); из Ext.AbstractComponent для извлечения «состояний» и сохранения, поэтому при следующей загрузке это состояние инициализируется. Это не зависит от файлов cookie или локального хранилища , так что срок его действия не истечет. Вы можете дать пользователю возможность сохранить состояние после того, как он закончит настройку Представлений.