Как вы структурируете проект iPhone XCode? - PullRequest
32 голосов
/ 21 октября 2010

Каковы хорошие способы создания групп / папок?

Я пробовал по функции (пользовательский интерфейс для функции плюс модель и т. Д.) С общей группой.Я также попробовал пользовательский интерфейс, модель и т. Д.

Первое объединяет вещи, что хорошо соответствует парадигме iPhone.Последнее означает, что я прыгаю немного больше.

Что вы думаете?

Ответы [ 3 ]

18 голосов
/ 21 сентября 2015

Стандартная структура папок XCode MVC выглядит следующим образом.

  1. CoreData : Содержит DataModel и классы сущностей.

  2. Расширение : Содержит один класс (расширения класса Apple по умолчанию + расширения класса проекта.)

  3. Помощник : Содержит сторонние классы / фреймворки (например, SWRevealController) + классы мостов (например, класс Obj C в проекте на основе Swift)

  4. Model : создать одноэлементный класс (например, .AppModel - NSArray, NSDictionary, Строки и т. Д.) Для сохранения данных.Здесь также выполняется анализ и хранение ответа веб-службы.

  5. Службы : содержат процессы веб-службы (например, подтверждение входа в систему, запрос / ответ HTTP)

  6. View : содержит раскадровку, LaunchScreen.XIB и View Classes.Создайте подпапку Ячейки - содержат UITableViewCell, UICollectionViewCell и т. Д.

  7. Контроллер : содержит логику или код, относящийся к элементам UIE (например, ссылка UIButton + нажатие действия)

5 голосов
/ 22 ноября 2017

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

Вот его схема:

  • Источник - Весь исходный код
    • Аккаунт - Классы, связанные с аккаунтом(классы, связанные с сеансами, логика учетных записей и т. д.)
    • Приложение - Классы, связанные с приложением.Делегат приложения, классы конфигурации и т. Д.
    • Основные дополнения - Расширения и подклассы, вытекающие из классов Apple
      • Утилиты - Общие служебные классы.Полезные расширения, утилиты форматирования, удобные классы и тому подобные
      • Папки на основе элементов - Папка для UIView, UITableViewCell и т. Д.
    • Локальное постоянство - слой локального постоянства.Все взаимодействия с локальной базой данных (область, основные данные)
      • Репозитории - Вся связанная с моделью логика локального сохранения
    • Константы - Все константы.URL-адреса, шрифты, цвета, ошибки и т. Д.
    • Модели - Все модели (представление объектов на стороне сервера).Мы также добавили бы сюда любую логику отображения объектов
    • Модули - Здесь мы можем найти каждую из частей приложения, разделенную по функциональности
      • Папки на основе модулей - Каждая папка содержит все контроллеры представления для каждого модуля,представления, делегаты и связанные с ними классы
    • Работа в сети - сетевой уровень приложения (например, классы, отвечающие за взаимодействие с веб-службами)
      • Службы - вся связанная с моделью веб-логика
  • Раскадровки - Содержит все файлы раскадровки
  • Ресурсы - Любые дополнительные ресурсы, такие как медиа, документы, файлы локализации и тому подобные
3 голосов
/ 21 октября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...