Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Modularizing your iOS apps
Search
Oleksandr Voronov
October 06, 2018
Programming
0
160
Modularizing your iOS apps
CocoaHeads Kyiv #14 Workshop
https://youtu.be/TfOLDo-fp7k
Oleksandr Voronov
October 06, 2018
Tweet
Share
More Decks by Oleksandr Voronov
See All by Oleksandr Voronov
Controllable Randomness in Unit Tests
alexandervoronov
1
63
TDD in Real World
alexandervoronov
1
250
Building CLI with Swift
alexandervoronov
1
340
Stanfy MadCode 10: From Java to Kotlin, from Objective-C to Swift
alexandervoronov
0
240
Alexander Voronov
alexandervoronov
2
1.2k
ReactiveCocoa
alexandervoronov
0
180
Other Decks in Programming
See All in Programming
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
4
370
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.2k
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
160
AIに任せる範囲を安全に広げるためにやっていること
fukucheee
0
110
Head of Engineeringが現場で回した生産性向上施策 2025→2026
gessy0129
0
210
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
300
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
210
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
240
AIコーディングの理想と現実 2026 | AI Coding: Expectations vs. Reality 2026
tomohisa
0
1k
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
190
浮動小数の比較について
kishikawakatsumi
0
380
TipKitTips
ktcryomm
0
150
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
280
Art, The Web, and Tiny UX
lynnandtonic
304
21k
From π to Pie charts
rasagy
0
150
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Designing for humans not robots
tammielis
254
26k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
200
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
110
The Language of Interfaces
destraynor
162
26k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Transcript
MODULARIZING YOUR IOS APPS WORKSHOP @aleks_voronov • CocoaHeadsKyiv#14
AGENDA @aleks_voronov • CocoaHeadsKyiv#14
REASONS @aleks_voronov • CocoaHeadsKyiv#14
TARGET TEAMS @aleks_voronov • CocoaHeadsKyiv#14
QUICKLY INTRODUCE NEW TEAM MEMBERS !" @aleks_voronov • CocoaHeadsKyiv#14
INDEPENDENT FEATURES @aleks_voronov • CocoaHeadsKyiv#14
COMPLEX CONTEXT @aleks_voronov • CocoaHeadsKyiv#14
REUSABLE COMPONENTS @aleks_voronov • CocoaHeadsKyiv#14
COMPILATION TIME* * Analyze your code first: -Xfrontend -warn-long-expression-type-checking=200 @aleks_voronov
• CocoaHeadsKyiv#14
! BENEFITS @aleks_voronov • CocoaHeadsKyiv#14
YOUR TEAM – YOUR RULES ▸ Own processes ▸ Own
development flow ▸ Less merge conflicts ▸ Only your changes @aleks_voronov • CocoaHeadsKyiv#14
SMALLER FEEDBACK CYCLE ⏱ @aleks_voronov • CocoaHeadsKyiv#14
EASIER TO TEST @aleks_voronov • CocoaHeadsKyiv#14
EASIER TO REASON ABOUT @aleks_voronov • CocoaHeadsKyiv#14
EASIER TO INTEGRATE IN DIFFERENT ENVIRONMENT @aleks_voronov • CocoaHeadsKyiv#14
! EXPERIMENTING ▸ Language ▸ System Design ▸ Technologies @aleks_voronov
• CocoaHeadsKyiv#14
DRAWBACKS @aleks_voronov • CocoaHeadsKyiv#14
INTEGRATIONS @aleks_voronov • CocoaHeadsKyiv#14
LESS INVOLVEMENT IN OTHER MODULES ! " @aleks_voronov • CocoaHeadsKyiv#14
HOT-PATCHING @aleks_voronov • CocoaHeadsKyiv#14
RESOURCES MANAGEMENT @aleks_voronov • CocoaHeadsKyiv#14
TIPS & TRICKS @aleks_voronov • CocoaHeadsKyiv#14
! 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
WALKING SKELETON FIRST ☠ @aleks_voronov • CocoaHeadsKyiv#14
SLOWLY INTRODUCE IT TO YOUR TEAM @aleks_voronov • CocoaHeadsKyiv#14
LOCAL ⚔ REPO @aleks_voronov • CocoaHeadsKyiv#14
VERSIONING @aleks_voronov • CocoaHeadsKyiv#14
CODE REVIEW @aleks_voronov • CocoaHeadsKyiv#14
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
@aleks_voronov • CocoaHeadsKyiv#14
TOOLKIT @aleks_voronov • CocoaHeadsKyiv#14
GIT SUBMODULES @aleks_voronov • CocoaHeadsKyiv#14
SWIFT PACKAGE MANAGER @aleks_voronov • CocoaHeadsKyiv#14
CARTHAGE @aleks_voronov • CocoaHeadsKyiv#14
COCOAPODS @aleks_voronov • CocoaHeadsKyiv#14
! MONOLITH? @aleks_voronov • CocoaHeadsKyiv#14
SMALL PROJECT @aleks_voronov • CocoaHeadsKyiv#14
SMALL FEATURE ... @aleks_voronov • CocoaHeadsKyiv#14
SMALL FEATURE NOT REUSABLE UTILITY @aleks_voronov • CocoaHeadsKyiv#14
FEATURE & PROJECT ARE TIGHTLY COUPLED ! @aleks_voronov • CocoaHeadsKyiv#14
FEATURE STAGE DEVELOPMENT → SUPPORTING ! @aleks_voronov • CocoaHeadsKyiv#14
YOU’RE A SMALL STARTUP IN ITS EARLY STAGE @aleks_voronov •
CocoaHeadsKyiv#14
LET'S CODE! GITHUB.COM/COCOAHEADS-KYIV-14-WORKSHOP @aleks_voronov • CocoaHeadsKyiv#14
THANKS! @ALEKS_VORONOV @aleks_voronov • CocoaHeadsKyiv#14