It does. But I think the principle is largely the same in either case. If you’re exposing an observable object to a view for it to consume, then in my opinion that object shouldn’t be a protocol, be it a view model or a service or a manger.
In all but the very simplest of cases, that service is going to have functionality and behavior that, if the service is simply swapped out, will not be tested under those conditions.
Or to put it another way, if you’re exposing some observable object to a view for it to consume… then for all intents and purposes it IS a view model for that view, no matter what you think it’s called. ;)
But yeah, that generic associate type on observable object is a pain. I’d hoped Apple would see the mess in. SwiftUI 1.0 and clean it up… but they didn’t.
Anyway, appreciate the article. Food for thought.