I’ve been reading up on a lot of architecture stuff and came across an interesting presentation by Nataliya Patsovska on MVVM at scale: not so simple from the try! Swift NYC over at realm.io
TL; DR
Use design patterns while applying MVVM, separate objects for different layers. It forces you to manage the complexity, the most important technical topic in software development. It won’t fix all of your problems, but gives you a great start.