
A principal ferramenta de qualquer programador é uma linguagem de programação. Quando o projeto começou, escolhemos o Swift. Decidimos acompanhar os tempos, o antigo, mas tão amado Objective-C, foi deixado de fora do trabalho. No entanto, Swift tem um pequeno problema, e isso se torna especialmente notável quando o projeto começa a crescer - esse é o problema do tempo de construção do projeto. Para entender o problema e o tamanho do projeto, vamos tentar comparar o tempo médio de construção por semana para todos os projetos de estúdio.

Como você pode ver no gráfico, o tempo médio de compilação do projeto ZenitOnline é várias vezes maior que todos os apresentados. E acredite, outros projetos não são tão pequenos. De particular interesse é o projeto Objective-C, que por sua vez é comparável em tamanho ao nosso projeto. Ambos contêm mais de 100 telas. Ao longo de um ano e meio de desenvolvimento, conseguimos alcançar os seguintes números:
- ≥ 2500 arquivos;
- ≥ 600 recursos;
- ≥ 160 000 .
, , 1500 xcode , , :
Unable to spawn process (Argument list too long)
SO, Swift Jira Open Radar, , . , :
- , , . - .
- . - , .
- , , . , .
SO.
, , , .
, . . , , , , . :

3rd Party Dependency – , . CocoaPods. .
Core Frameworks – , .
- Common – , . , , , extensions UI .
- Services – . , , .
- Reusable – UI- : , , .
- Analytics – , , , .
- Core – , . – , Core . .
Feature Frameworks – , . Core . .
? :
« » , . , . « », , , xcode , . , , .
, — - . .
P.S. Xcode 11 . .
, , .