Недавно я начал разбивать свои приложения на модули гораздо более агрессивно, чем раньше, разделяя части кода на фреймворки или библиотеки.
Мне нравится концепция « частные рамки »в настольном Cocoa, т.е. фреймворки, входящие в комплект приложения. По моему небольшому опыту, фреймворки лучше подходят для повторного использования кода, чем простые библиотеки, так как фреймворки могут включать в себя свои собственные заголовки. Это значительно упрощает добавление нового фреймворка к существующему проекту.
Проблема в том, что эти «частные» фреймворки не поддерживаются в iOS. Здесь вы должны иметь дело со статическими библиотеками, и управление заголовками - это боль. Есть ли у Apple веские технические причины не поддерживать фреймворки на iOS?
(Просто чтобы убедиться: Apple, к сожалению, использует термин «частный фреймворк» для двух вещей. Первый - это «кастомные» фреймворки, которые поставляются с приложением, второй - это недокументированные и запрещенные фреймворки, которые люди не должны использовать на iOS. Я спрашиваю о первом.)
PS. Изменилось ли это в iOS 8? В Xcode 6 есть шаблон «Какао Touch Framework».