2012-03-15 3 views
6

Существуют ли какие-либо рекомендации о том, как организовать свое решение в XcodeКаковы наилучшие практики и рекомендации для организации решений Xcode?

Это мое в данный момент от корня:

  • Папка для каждой рамки 3 партии, например, KissXML
  • Папки для моего блока тесты
  • папки для рамок, продуктов и ресурсов
  • Папки для MyApp, которая содержит вложенные папки для модели, вида, контроллера, баз данных, поддержки файлов и домена.

ответ

1

Шахта:

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 

Для многократного использования кода на прошивку я использую статические библиотеки и добавить их как отдельные проекты в рабочей области Xcode. Даже для стороннего кода, если нет целевой статической библиотеки, я создаю один. Таким образом, я отношусь к стороннему коду так же, как к своему собственному библиотечному коду. Кроме того, мне не нужно беспокоиться о версировании стороннего кода.

Я нашел важным, чтобы Xcode отражал структуру файловой системы кода, по крайней мере, до некоторого уровня. Я принял эту практику после чтения this blog post. Я не делаю этого ниже уровней, перечисленных выше. Это помогает, например, при совместном использовании кода в github. Вместо того, чтобы загрузчики или вкладчики должны копать весь ваш источник, сбрасываемый в один каталог, он организован в функциональные ведра. Я видел некоторые проекты, в которых организация Xcode в порядке, но каждый отдельный исходный файл в файловой системе сбрасывается в один каталог.

0

Хотя нет конкретного метода не может быть лишен недостатков, вот что мы используем

  1. Папка для ядра приложения или модели. Сюда входят подпапки для любых используемых сторонних библиотек и папки для специализированной модели классов . Например, будет папка для обработки веб-сервисов.

  2. Папка для одного основного модуля, который будет включать в себя вложенные папки для каждого экрана, содержащих файлы классов, крупку и ресурсы (это может включать в себя больше вложенных папок в соответствии с необходимостью).

  3. Папка для второго основного модуля и так далее ..

Эта модель служит нам одну главную цель. В нашем ядре приложений есть такие вещи, как ведение журнала, шифрование/дешифрование данных и т. Д. Поэтому это очень маловероятно для многих приложений, которые мы разрабатываем. Аналогичным образом были бы некоторые приложения, которые нуждались бы в функциональности основного модуля и добавили бы некоторые другие вещи. Поэтому эти три группы папок сохраняются как отдельные репозитории в подрывной деятельности.

Теперь, когда мы начинаем новый проект, мы создаем новый репозиторий для проекта и связываем его с репозиторием основного ящика приложения и другими основными репозиториями модулей в соответствии с потребностями. Таким образом, любые изменения, сделанные в ядре приложения одной проектной группой, отражены и в других проектах. То же самое с другими основными модулями. Это также помогает нам достичь полной модульности.

Конечно, были бы недостатки в этой схеме, но эта схема хорошо подходит нам уже много лет :)

Смежные вопросы