!
WHERE TO START?
▸ Non Vital
▸ Least Dependent (Analytics, Logging, Utils, Networking)
▸ Just Copy-Paste
▸ Gradually Integrate alongside Original Implementation
▸ Deprecating vs Removing
@aleks_voronov • CocoaHeadsKyiv#14
Slide 24
Slide 24 text
WALKING SKELETON FIRST
☠
@aleks_voronov • CocoaHeadsKyiv#14
Slide 25
Slide 25 text
SLOWLY
INTRODUCE IT
TO YOUR TEAM
@aleks_voronov • CocoaHeadsKyiv#14
Slide 26
Slide 26 text
LOCAL
⚔
REPO
@aleks_voronov • CocoaHeadsKyiv#14
Slide 27
Slide 27 text
VERSIONING
@aleks_voronov • CocoaHeadsKyiv#14
Slide 28
Slide 28 text
CODE REVIEW
@aleks_voronov • CocoaHeadsKyiv#14
Slide 29
Slide 29 text
S O L I D
▸ Private / Internal by Default
▸ Add / Open things ONLY when needed
▸ Composition vs Inheritance
▸ Invert Dependencies
▸ Extending vs Changing
@aleks_voronov • CocoaHeadsKyiv#14
Slide 30
Slide 30 text
@aleks_voronov • CocoaHeadsKyiv#14
Slide 31
Slide 31 text
TOOLKIT
@aleks_voronov • CocoaHeadsKyiv#14
Slide 32
Slide 32 text
GIT SUBMODULES
@aleks_voronov • CocoaHeadsKyiv#14
Slide 33
Slide 33 text
SWIFT PACKAGE MANAGER
@aleks_voronov • CocoaHeadsKyiv#14
Slide 34
Slide 34 text
CARTHAGE
@aleks_voronov • CocoaHeadsKyiv#14
Slide 35
Slide 35 text
COCOAPODS
@aleks_voronov • CocoaHeadsKyiv#14
Slide 36
Slide 36 text
!
MONOLITH?
@aleks_voronov • CocoaHeadsKyiv#14
Slide 37
Slide 37 text
SMALL PROJECT
@aleks_voronov • CocoaHeadsKyiv#14
Slide 38
Slide 38 text
SMALL FEATURE
...
@aleks_voronov • CocoaHeadsKyiv#14
Slide 39
Slide 39 text
SMALL FEATURE
NOT REUSABLE UTILITY
@aleks_voronov • CocoaHeadsKyiv#14
Slide 40
Slide 40 text
FEATURE & PROJECT
ARE TIGHTLY COUPLED !
@aleks_voronov • CocoaHeadsKyiv#14
Slide 41
Slide 41 text
FEATURE STAGE
DEVELOPMENT → SUPPORTING
!
@aleks_voronov • CocoaHeadsKyiv#14
Slide 42
Slide 42 text
YOU’RE A SMALL STARTUP
IN ITS EARLY STAGE
@aleks_voronov • CocoaHeadsKyiv#14