Подтвердить что ты не робот

Организация каталога проектов iOS

Просто быстрый вопрос/мнение о том, как вы упорядочиваете каталог Xcode 4 для каждого созданного вами приложения iOS.

Лично я все еще добавляю каталог под названием /Resources, который содержит подкаталоги, такие как /Fonts,/Images,/Icons и т.д. Я использую опцию "Скопировать элементы в папку группы назначения (при необходимости)". Если мне нужно добавить новый ressource, я просто добавлю его в нужный каталог в finder.app в моем каталоге проекта (т.е. Если это изображение, я добавляю его в MyProject/Resources/Images/Foo.png), а затем просто перейдите в мою группу "Изображения" в Xcode и добавьте туда файл.

Однажды я попытался использовать ссылку "Ссылки на папки", чтобы синхронизировать Xcode и Finder, но IB не смог получить изображения...

Кроме того, ваш Icon.png и Default.png в корне вашего проекта? (т.е. с файлом .xcodeproj?) Когда вы используете Xcode 4 (в информации о проекте > сводка), они добавляют их туда... Интересно, сохраните ли вы их там? Потому что лично я всегда предпочитаю иметь все мои изображения в образцовом каталоге!

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

4b9b3361

Ответ 1

Я предлагаю хранить все ваши файлы .m,.h и .xib в одной папке, потому что упрощает локализацию строк при запуске ibtool для извлечения всех ссылок NSLocalizedString, а также упрощает перемещение файлов вокруг виртуального в структуре Xcode при реорганизации проекта.

Храните сторонние библиотеки или фреймворки в отдельной папке, чтобы не смешивать их со своим собственным кодом.

Внутри самого Xcode я группирую эти файлы классов в отдельные виртуальные папки под названием Views, Controllers, Model и Nibs (и библиотеки для сторонних вещей). Если это большой проект, я разбиваю его на папки для каждого компонента, а затем разбиваю их на представления, контроллеры и т.д., Но опять же, что только виртуальные папки, а не физические.

Сохранение ресурсов в отдельной физической папке - хорошая идея, чтобы упростить просмотр их на диске. Это может иметь смысл разделить их на изображения, звуки, xml и т.д. В Xcode вы можете разбить их на виртуальные подпапки по компоненту или категории (интерфейс, контент и т.д.), Но я бы не предложил делать это на диске как это затрудняет реорганизацию структуры папок по мере роста вашего проекта.

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

Вам не нужно сохранять Default.png и Icon.png в корневом каталоге (или даже вызывать их Default.png и Icon.png), но иногда Xcode путается, если стандартные файлы не там, где он ожидает.

И да, что бы вы ни делали, не пытайтесь использовать ссылки на синюю папку при импорте изображений, иначе вы не сможете получить к ним доступ из вашего кода с помощью imageNamed: или в Interface Builder. Вместо этого используйте желтые ссылки на виртуальные папки. В основном синие папки копируются в пакет приложений как фактические папки при создании приложения, тогда как желтые папки игнорируются, а их содержимое переходит непосредственно в корневой каталог приложения. Чтобы получить доступ к содержимому в синих папках, вам нужно будет указать имена синих папок в пути при их загрузке, например.

NSString *path = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png" inDirectory:@"nameOfBlueFolderInXcode"];
UIImage *image = [UIImage imageWithContentsOfFile:path];

Ответ 2

Я думал об этом много в последнее время; вот структура, в которую я решил пойти:

ProjectName
ProjectName/Assets
ProjectName/Assets/Images
ProjectName/Frameworks
ProjectName/Logic
ProjectName/Logic/Models
ProjectName/Presentation
ProjectName/Presentation/ViewControllers
ProjectName/Presentation/Views

Я думаю, что это дает хорошую структуру для роста и обеспечивает разумный дом для большинства вещей. Конечно, добавьте дополнительные подпапки (например, Assets/Fonts) по мере необходимости. Для моего полного обоснования структуры проверьте этот пост в блоге.

Я держу вещи как Icon.png и Default.png в корне проекта, так как Xcode кажется сдержанным, но в остальном вещи аккуратно организованы. Я сохраняю свои файлы .m, .h и .xib вместе, но я логически разбил логические контроллеры представлений на подпапки с помощью функции (например, Initial, Settings).