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
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Modularizing your iOS apps
CocoaHeads Kyiv #14 Workshop
https://youtu.be/TfOLDo-fp7k
Oleksandr Voronov
October 06, 2018
More Decks by Oleksandr Voronov
See All by Oleksandr Voronov
Controllable Randomness in Unit Tests
alexandervoronov
1
80
TDD in Real World
alexandervoronov
1
280
Building CLI with Swift
alexandervoronov
1
350
Stanfy MadCode 10: From Java to Kotlin, from Objective-C to Swift
alexandervoronov
0
260
Alexander Voronov
alexandervoronov
2
1.2k
ReactiveCocoa
alexandervoronov
0
190
Other Decks in Programming
See All in Programming
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
460
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
130
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
250
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
120
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
560
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
180
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
670
プロポーザルを書いてもらう
pvcresin
0
600
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
130
Hono + Inertia + React で LP を構築した話
oukayuka
2
190
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
270
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
510
How GitHub (no longer) Works
holman
316
150k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The SEO identity crisis: Don't let AI make you average
varn
0
550
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Marketing to machines
jonoalderson
1
5.7k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
640
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
270
Become a Pro
speakerdeck
PRO
31
6.2k
Un-Boring Meetings
codingconduct
0
400
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