Problemas do kit de ferramentas em grandes projetos


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.


imagem


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, , . , :


  1. , , . - .
  2. . - , .
  3. , , . , .

SO.
, , , .


, . . , , , , . :


imagem


3rd Party Dependency – , . CocoaPods. .


Core Frameworks – , .


  • Common – , . , , , extensions UI .
  • Services – . , , .
  • Reusable – UI- : , , .
  • Analytics – , , , .
  • Core – , . – , Core . .

Feature Frameworks – , . Core . .



? :


  • .
  • .

« » , . , . « », , , xcode , . , , .


, — - . .


P.S. Xcode 11 . .


, , .


All Articles