Project Groups
May 29, 2019 ยท View on GitHub
How do we use them?
Organize Xcode groups first by feature and then by architecture component, if needed.
Example
The following example shows a project structure with three top level directories consisting of one feature directory and two application-related directories.
Key Considerations
-
Every file should exist within an Xcode group, categorized first by feature, with exceptions listed below:
- The
Applicationgroup is a special case that is neither a feature nor an architecture component. This group should contain files associated with the application entry point, such asMain.storyboardandAppDelegate.swift. - The
Resourcesgroup houses supporting files to the main application that are more static in nature. This group should contain files likeInfo.plist,Assets.xcassets, andLaunchScreen.storyboard.
- The
-
The above
Checkoutgroup is a feature that has its files distributed into groups related to its architecture. -
When a feature group grows to contain more than five files consider adding sub-groups to categorize the files by architecture component, e.g.
Models,Views,Controllers, etc.