Dans le développement Badoo iOS, nous construisons des modules depuis plusieurs années maintenant, et la plupart du nouveau code est développé en dehors de la base de code de l'application. Nous avons maintenant plus de 100 modules pour Badoo et Bumble. Dans cet article, je partagerai notre expérience et répondrai aux questions les plus courantes sur la modularisation:
par quel principe attribuer les modules;
comment organiser les connexions entre eux;
;
;
;
;
.
, 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 , .
, , âŠ
. !