Cтруктура директорий 
Хотя проекты Tuist обычно применяются для замены проектов Xcode, они не ограничиваются этим вариантом использования. Проекты Tuist также используются для создания других типов проектов, таких как SPM-пакеты, шаблоны, плагины и задачи. В этом документе описывается структура проектов Tuist и как их организовать. В последующих разделах мы рассмотрим как задавать шаблоны, плагины и задачи.
Стандартные проекты Tuist 
Tuist-проекты **– наиболее распространенный тип проектов, созданный Tuist..**Они используются для разработки приложений, фреймворков и библиотек. В отличие от проектов Xcode, Tuist-проекты описываются на языке Swift, что делает их более гибкими и удобными в сопровождении. Кроме того, Tuist-проекты обладают декларативной природой, что упрощает их понимание и анализ. Ниже представлена типичная структура Tuist-проекта, который генерирует проект Xcode:
Tuist.swift
Tuist/
  Package.swift
  ProjectDescriptionHelpers/
Projects/
  App/
    Project.swift
  Feature/
    Project.swift
Workspace.swift- Каталог Tuist: Этот каталог имеет две цели. Во-первых, он сигнализирует, где находится корень проекта. Это позволяет создавать пути относительно корня проекта, а также запускать команды Tuist из любого каталога проекта. Во-вторых, это контейнер для следующих файлов: - ProjectDescriptionHelpers: Этот каталог содержит Swift-код, доступный во всех манифест-файлах. Манифест-файлы могут использовать import ProjectDescriptionHelpers, чтобы использовать код, указанный в этой директории. Использование общего кода полезно для избежания дублирования и обеспечения постоянства в рамках проектов.
- Package.swift: Этот файл содержит зависимости Swift Package для Tuist, для интеграции их в Xcode проекты и для Xcode targets (как CocoaPods), которые настраиваемы и оптимизируемы. Узнайте большездесь.
 
- ProjectDescriptionHelpers: Этот каталог содержит Swift-код, доступный во всех манифест-файлах. Манифест-файлы могут использовать 
- Корневой каталог: Корневой каталог проекта, который также содержит папку - Tuist.- Этот файл содержит конфигурацию Tuist, разделяемую всеми проектами, рабочими пространствами и окружениями. Например, он может использоваться для отключения автоматической генерации схем или для определения deployment target проектов.
- Этот манифест представляет Xcode workspace. Он используется для группировки проектов, а также для добавления дополнительных файлов и схем.
- Этот манифест представляет проект Xcode. Он используется для определения targets Xcode, являющихся частью проекта, и их зависимостей.
 
При взаимодействии с вышеуказанным проектом, команды ожидают найти либо Workspace.swift или Project.swift файл в рабочей папке или каталоге, указанном с помощью флага --path. Манифест должен быть в каталоге или подкаталоге корня проекта, который содержит директорию Tuist.
TIP
Xcode позволяют разбить проекты на несколько для уменьшения вероятности конфликтов слияний. Если это то, для чего вы используете workspaces, то он не нужен вам в Tuist. Tuist автоматически генерирует workspace, содержащий проекты проекта и их зависимости.
Swift-пакеты beta 
Tuist также поддерживает проекты SPM-пакетов. Если вы работаете над пакетом SPM, вам не нужно ничего обновлять. Tuist автоматически найдет ваш коренной Package.swift и все возможности Tuist будут работать так, как будто это был манифест файл Project.swift.
Для начала запустите tuist install и tuist generate в вашем SPM-пакете. Теперь у вашего проекта должны быть те же схемы и файлы, которые вы бы увидели при обычной интеграции с Xcode SPM. В дополнение теперь вы можете запускать
иметь большинство ваших SPM зависимостей и модулей предварительно скомпилированными, что делает последующие сборки чрезвычайно быстрыми.
