Шахта это:
Main application
Model
Singletons
Helper+managers
Controllers // I keep nibs with their respective class files
View
Resources
images
plists
// ... groups from other types of resources if needed
Supporting files
Unit tests
Frameworks
Для многократно используемого кода на iOS я использую статические библиотеки и добавляю их как отдельные проекты в рабочее пространство Xcode. Даже для стороннего кода, если нет статической целевой библиотеки, я создаю ее. Таким образом, я обращаюсь со сторонним кодом так же, как и со своим собственным библиотечным кодом. Кроме того, мне не нужно беспокоиться о версии стороннего кода.
Я считаю важным, чтобы Xcode отражал организацию кода файловой системы, по крайней мере, до некоторого уровня. Я принял эту практику после прочтения этого блога . Я не делаю это ниже уровней, которые я перечислил выше, хотя. Это помогает, например, когда вы делитесь кодом на github. Вместо того, чтобы загрузчикам или авторам приходилось копать весь исходный код, выгруженный в один каталог, он организован в функциональные сегменты. Я видел несколько проектов, в которых с организацией XCode все в порядке, но каждый исходный файл в файловой системе помещается в один каталог.