In the past, advice from teams managing large Xcode projects has been to split large build targets into smaller logical targets in order to reduce needless recompilation, and possibly aid parallelization of independent targets. We've taken this advice onboard where I work, and we've a series of core frameworks that a organized somewhat like a babushka doll.
However, given that incremental compilation has improved a lot in Swift 5, I'm curious what the Swift core team (or others) now recommend for large code bases in order to minimize incremental build times?