Do you use desktops? I have a lot of apps like browser, editor, terminal, chat, etc. and I need to switch between them quickly. So I've created 7 desktops, bind main apps to it's own desktop and assigned shortcuts for them (cmd+1 - cmd+7). Switching between desktops/apps in such way is very fast. But it will not help with browsers tabs, so for such case appropriate workflow is required.