Toolkit issues in large projects


The main tool of any programmer is a programming language. When the project started, we chose Swift. We decided to keep up with the times, the old, but so beloved Objective-C was left out of work. However, Swift has a small problem, and it becomes especially noticeable when the project begins to grow - this is the problem of the project’s build time. To understand the problem and the size of the project, let's try to compare the average build time per week for all studio projects.


image


As you can see from the graph, the median build time of the ZenitOnline project is several times larger than all the ones presented. And believe me, other projects are not so small. Of particular interest is the Objective-C project, which in turn is comparable in size to our project. Both contain 100+ screens. Over a year and a half of development, we managed to achieve the following figures:


  • β‰₯ 2500 files;
  • β‰₯ 600 resources;
  • β‰₯ 160 000 .

, , 1500 xcode , , :


Unable to spawn process (Argument list too long)

SO, Swift Jira Open Radar, , . , :


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

SO.
, , , .


, . . , , , , . :


image


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