macOS has six built-in ways to change apps: Cmd-Tab, the Dock, Mission Control, App Exposé, Spotlight and trackpad gestures. Cmd-Tab is fastest for the last app you used and worst for everything else, because it lists applications rather than windows and reorders itself on every switch.
Almost everyone settles on one method and uses it for every case. That is reasonable — but the six are not interchangeable, and the friction people blame on their Mac is usually a method mismatch rather than a missing feature.
Cmd-Tab
Unbeatable for one job: bouncing between the last two apps. Press and release and you are there, no aiming, no looking.
Everything past the second position degrades quickly. The list is ordered by recency, so an app’s position changes between uses and there is nothing to memorise. It also lists applications rather than windows, so a second Chrome window is not in it at all, and minimised windows are skipped unless you hold Option when you release.
Cmd-` for windows of one app
The backtick key cycles windows within the frontmost app, which is the companion Cmd-Tab needs and most people never learn. It has its own gaps — minimised windows and windows on other Spaces behave inconsistently — but for two documents in the same app it is the correct tool.
The Dock
The one method with a stable position for every app, which is exactly what Cmd-Tab lacks. Cmd-Tab’s third item moves; the Dock’s third icon does not, so it can be hit from muscle memory.
The cost is the trip. Your pointer has to travel to a screen edge and back, which on a large display is a real distance, and auto-hide adds a wait for the animation before you can aim.
Mission Control and App Exposé
Mission Control shows every window at once. It is the right tool when you do not know where something is — you are searching visually rather than navigating — and the wrong one when you do, because it rearranges the screen to answer a question you did not have.
App Exposé is the narrower and more useful version: all windows of the current app only. Control-Down by default, or a four-finger swipe down.
Spotlight
Cmd-Space, type, Return. It ignores what is open and what is not, which makes it the only method that behaves identically for launching and for switching.
Its weakness is that it is a different action every time. The keystroke is fixed but the typing is not, so nothing becomes automatic, and it cannot distinguish two windows of the same app — it will bring the app forward and leave you to find the right one.
Trackpad gestures
Four-finger swipe left and right moves between full-screen apps and Spaces. Genuinely fast if you keep apps full-screen, and irrelevant if you do not.
Worth knowing that this switches Spaces, not apps. If two apps share a desktop, no gesture distinguishes them.
Third-party switchers
Everything above is a variation on a list. Third-party tools mostly change the shape of that list — showing windows instead of apps, or arranging them somewhere other than the middle of the screen.
Two things are worth checking before installing any of them. All of them need Accessibility permission, because reading a global keypress and raising another app’s window are both privileged operations — it is the broadest permission macOS grants, so it is worth understanding before you agree to it. And a switcher that replaces Cmd-Tab should be judged on the case Cmd-Tab is bad at, not the case it is already good at.
Picking
Two apps, back and forth: Cmd-Tab, and nothing beats it.
Several windows of the same app: Cmd-` or App Exposé. This is the gap most people are actually hitting when they say Cmd-Tab is broken.
Five or more apps in constant rotation: the Dock is the built-in answer, because it is the only one with a fixed position per app. A third-party switcher is worth it only if the Dock’s round trip to the screen edge is the part that bothers you.
Frequently asked questions
What is the alternative to Cmd-Tab on a Mac?
The Dock for a stable position per app, Cmd-` for windows within one app, App Exposé for all windows of the current app, Spotlight for launching by name, and four-finger swipes for full-screen apps. Which is best depends on whether you are switching apps or windows.
Why does Cmd-Tab not show all my windows?
It lists applications, not windows. One entry per app regardless of how many windows it has, and minimised windows are skipped unless you hold Option when releasing.
How do I switch between windows of the same app?
Cmd-` cycles windows in the frontmost app. Control-Down opens App Exposé, showing all of that app's windows at once, including ones on other Spaces.
Do third-party app switchers need Accessibility permission?
Yes, all of them. Watching for a global keypress and raising another app's window both require it. It is the broadest permission macOS grants, so it is worth understanding what you are agreeing to.