En el desarrollo de Badoo iOS, hemos estado creando mĂłdulos durante varios años y la mayor parte del nuevo cĂłdigo se desarrolla fuera del cĂłdigo base de la aplicaciĂłn. Ahora tenemos más de 100 mĂłdulos para Badoo y Bumble. En este artĂculo, compartirĂ© nuestra experiencia y responderĂ© las preguntas más populares sobre modularizaciĂłn:
por qué principio asignar módulos;
cĂłmo organizar las conexiones entre ellos;
;
;
;
;
.
, iOS- Core- , FunCorp « ». .
— , , . , . :
. , — , . .
. , , - . — , , .
, . ?
. : .
. , , .
. , .
. , , , , . .
, , , - .
? , , , : , , . . : ? :
— : «», «», «». .
() , - (, ) .
, . ( ). , - “” -.
— - iOS, Apple ID. , iOS, Apple Apple ID. . ?
.
.
Apple ID .
…
!
, . .
, ?
, :
. - , (, , . .), -.
. view- . UIKit -.
, UI. . .
, ( ). :
(, ), — . , , , UI .
, UI- . : ?
UIGallery, UI-. - — :
, Badoo Bumble:
110 ;
- , ;
;
;
: .
, , . , , . .
, . Badoo, .
, , , , . .
— : . ( 100), , , . , . . , .
, , 1, , . , , , , . . , , . , . «» , , .
, , — . , , .
, . , . - , , , , , — , . . , - , , .
?
Badoo ( Chat, ChatUI ChatService).
Bumble. , , Badoo, Bumble. , Bumble, Badoo. , .
, . — . , , .
, .
. , .
. , , .
, . : , , , - , , . . , .
, . , QA, — , . .
iOS-, .
, , — . , , 50 - Swift , . Build Settings . , , , .
, : ? Swift? / Bitcode? . . , . .
, : , debug-, Bitcode debug- . . ?
. ( ) CocoaPods. Development-, , post_install- . , , CocoaPods, , . , , , - . , CocoaPods — Enterprise- , . .
. — xcconfig’. . xcconfig:
, Xcode (xcodeproj/project.pbxproj).
. #include.
, .
, , , build- (Debug, Release, Production ). .
: Bundle ID, Info.plist, modulemap:
xcconfig , , :
.
.
.
.
, Git pre-commit hooks Build Settings .
, , — . , , , . Xcode .
, , , build- . — , CocoaPods, , Xcodeproj « , , xcworkspace».
, , . . .
- « », : ? .
-, , . , , .
-, . , Xcode : Framework Search Paths Derived Data.
(, ).
-, — . , , .
, , . , , . . .
— . , , . :
Xcode . .
— . , .
- , - . . .
. , — . , , , , , .
? — Swift-, , . Standalone- XcodeGen. Deps, . :
, , xcconfig. :
, .
.
xcconfig’.
.
.
, . xcconfig, . , Swift , .
, , …
. !