You need to write an Sharepoint 2013 App that could do the following :
# Embed a menu control inside the ribbon when you open a list
# On click of the menu label, the app should open a page where it should
display all the list fields.
# These views should be changable by the user anytime based on the
selection he/she makes.