Skip to content

Project structure

Marek Fořt edited this page Feb 12, 2020 · 3 revisions

The project structure is more-targets-ready so every target has its own folder. Folder structure of main app target is pretty obvious.

project-structure

We prefer to group files by screens, so usually VC, VM, its views or table view cells are in the same folder. Base classes and classes shared by more screens are placed outside the Screens folder in corresponding folders (Views, ViewModels etc.)

Project version name

Project version name is defined by top project itself using ACK_PROJECT_VERSION build setting, because e.g. push notification extensions require that the extension has the same version as main app, so it can be held on a single place and inherited.

Build number

Build number is generated from git as the number of commits in repository. It's generated during scheme pre-build action (more about pre-build actions in Environments) and it's written to preprocess header which is ignored in git so changing environment doesn't make any changes in the repo.


Continue to Tuist ➡️