AppKit is pretty deeply MVC. I generally prefer to just work with the underlying APIs than try to invent a new paradigm on top of them. With VC containment I feel like I have enough abstraction power already.
In my case the "Flows" are usually UINavigationControllers hidden behind a protocol. I tend to chop up my UI's really deeply into VC's but most of them get a VM because I like my VC's really, really small.
MVI is the latest evolution of MVVM. It's basically MVVM with Reactive programming.
I do use Reactive (ReactiveKit) a lot now to prepare for Combine