Leandro Pérez
Aug 23, 2019 · 1 min read

Hi,

The main reason for doing something like that, would be to diminish the amount of conflicts you get with your versioning system, right ?

I think that if you have a single workspace and multiple projects (like I propose), the kind of conflicts in git would be the same as if you had multiple workspaces. The conflicts would be on a per .xcodeproj file basis. So, two devs working on the same module would potentially have to resolve conflicts on the project file of that module.

An alternative option could be to create your own Cococapods and have them as separate workspaces and projects. I actually worked like that, but ended up with more complications than benefits, since each time we needed to make changes we had to open another workspace, increase the pod version, install the pod, etc.

Another option could be to have different workspaces and projects compiling and sending the framework build outputs into a single directory. Then the app could consume the frameworks from that directory. You might need some scripting going on and perhaps a custom build system.

I found that for a small team, 3 devs, the conflicts using the approach that I proposed were very manageable. Also, I really like the fact that you can see all the sub projects in the same workspace.

I hope this helps answering your question,

Thanks for reading!

    Leandro Pérez

    Written by

    Software Engineer, coding since 2001. I have done plenty of work in iOS with Objective-C and Swift.