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