Problemas de herramientas en grandes proyectos


La herramienta principal de cualquier programador es un lenguaje de programación. Cuando comenzó el proyecto, elegimos Swift. Decidimos mantenernos al día con los viejos, pero tan queridos Objective-C se quedaron sin trabajo. Sin embargo, Swift tiene un pequeño problema y se vuelve especialmente notable cuando el proyecto comienza a crecer; este es un problema del tiempo de construcción del proyecto. Para comprender el problema y el tamaño del proyecto, intentemos comparar el tiempo de construcción promedio por semana para todos los proyectos de estudio.


imagen


Como puede ver en el gráfico, el tiempo medio de construcción del proyecto ZenitOnline es varias veces mayor que todos los presentados. Y créeme, otros proyectos no son tan pequeños. De particular interés es el proyecto Objective-C, que a su vez es comparable en tamaño a nuestro proyecto. Ambos contienen más de 100 pantallas. Durante un año y medio de desarrollo, logramos las siguientes cifras:


  • ≥ 2500 archivos;
  • ≥ 600 recursos;
  • ≥ 160 000 .

, , 1500 xcode , , :


Unable to spawn process (Argument list too long)

SO, Swift Jira Open Radar, , . , :


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

SO.
, , , .


, . . , , , , . :


imagen


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