For me, I tried to have an application where I shared the viewmodel along with repositories and api calls, but ultimately that didn't work out well for me. On the iOS side I need to not just rely on the shared data models as I need Observable Object and to be able to use the Published annotation, so I have a middle layer on the iOS to translate from what is shared to what SwiftUI needs, so I share data models, the repository and web service calls, and that is currently it.