Here we are at last. So when I make the claim that "the ViewModels don't know about the ViewControllers" what I mean is:
Materializes are "pure" functions that implicitly receive one argument - self: T
.
T
conforms to Presentable
and is always one of our ViewModels.
Our materializes are never mutable
nor should they be! They simple receive a viewModel and return a tuple of (Matter, Result)
which are usually (UIViewController, ObservableConvertible)
but there are exceptions.
The only relation between materialize and the ViewModel is that materialize receives the ViewModel as an argument and is namespaced in type(of: ViewModel)