The art of developing
more in less time -
how to not get caught
by long build times?
@EliSawic
The art of developing
more in less time
@EliSawic
How to not get
caught by long build
times?
@EliSawic
About me
Eliasz Sawicki
Blog: www.eliaszsawicki.com
Twitter: @EliSawic
www.brightinventions.pl
@EliSawic
The beginning...
@EliSawic
Objective-C
@EliSawic
$wift
@EliSawic
Think
@EliSawic
A short story
about Love
@EliSawic
A short story about Love
1. Friendship
@EliSawic
A short story about Love
1. Friendship
2. Love
@EliSawic
A short story about Love
1. Friendship
2. Love
3. Doubt
@EliSawic
A short story about Love
1. Friendship
2. Love
3. Doubt
4. Betrayal
@EliSawic
A short story about Love
1. Friendship
2. Love
3. Doubt
4. Betrayal
5. Starting over again
@EliSawic
A short story about Love
1. Friendship
2. Love
3. Doubt
4. Betrayal
5. Starting over again
6. Rebuild the trust
@EliSawic
How does it end?
@EliSawic
Friendship
@EliSawic
Objective-C
@EliSawic
The UIKit
@EliSawic
Why do we need
UIKit?
@EliSawic
Love
@EliSawic
Swift
@EliSawic
Practice
@EliSawic
Tests!
@EliSawic
Why do we need
tests?
@EliSawic
Why do we
have brakes
in a car??
@EliSawic
To stop?
@EliSawic
To go faster!
@EliSawic
Test
Driven
Development
@EliSawic
Doubt
@EliSawic
Long
build
times
@EliSawic
Slow
feedback
loops
@EliSawic
No tests
for you today
@EliSawic
Betrayal
@EliSawic
React Native
@EliSawic
Testing feels
natural
@EliSawic
Quick reloading
@EliSawic
Not a
silver bullet
@EliSawic
Starting over again
@EliSawic
What was the
problem?
@EliSawic
Long
build
times
@EliSawic
Slow
feedback
loop
@EliSawic
Rebuild
the trust
@EliSawic
Tackling
compilation
times
@EliSawic
Type
Inference
@EliSawic
Bottleneck
@EliSawic
Warnings
-Xfrontend
-warn-long-function-bodies=200
-Xfrontend
-warn-long-expression-type-checking=100
@EliSawic
Did not work
in my case
@EliSawic
Debug
information
format
@EliSawic
With or without you?
@EliSawic
Take a look at
your build phases
@EliSawic
Build phases
@EliSawic
Build phases
@EliSawic
Build Active Architecture Only
@EliSawic
Xcode settings
defaults write com.apple.Xcode
PBXNumberOfParallelBuildSubtasks 10
defaults write com.apple.dt.Xcode
IDEBuildOperationMaxNumberOfConcurrentCompileTasks 5
@EliSawic
Whole
module
optimization
@EliSawic
Drastically decreased
time in which the
project compiles
@EliSawic
A catch
@EliSawic
A trick
@EliSawic
Why isn't it
turned on
all the time?
@EliSawic
Managing
dependencies
@EliSawic
Cocoapods
@EliSawic
Carthage
@EliSawic
Build tools
@EliSawic
Bazel, Buck
@EliSawic
Xcode
@EliSawic
Xcode
@EliSawic
Easy way to decrease
the compilation time
by half
@EliSawic
Do not compile
the other half
@EliSawic
Modularizing
the code
@EliSawic
More things to think
about...
@EliSawic
Is it bad?
@EliSawic
Nope
@EliSawic
How do we split?
@EliSawic
Don't bite off more
than you can chew
@EliSawic
Step
by
step
@EliSawic
What is the code
that I write?
@EliSawic
We
write
apps!
@EliSawic
Do we really
write apps?
@EliSawic
Tests!
@EliSawic
Why do we compile
the UI code?
@EliSawic
Separating
the UI
@EliSawic
Is it bad that we
break up
with UIKit?
@EliSawic
Nope
@EliSawic
MVC
@EliSawic
MVC
@EliSawic
MVVM
@EliSawic
MVVM
@EliSawic
Why would you
remove UIKit?
@EliSawic
Can be used
anywhere
@EliSawic
Can be tested
anywhere
@EliSawic
Passive Views
@EliSawic
Logic
@EliSawic
Why are they still
together?
@EliSawic
Multiple targets
@EliSawic
One for UIKit
@EliSawic
One for logic
@EliSawic
Two for Tests
@EliSawic
Better architecture
@EliSawic
Speeded up tests
@EliSawic
Faster builds
@EliSawic
The art of developing
more in less time -
how to not get caught
by long build times?
@EliSawic
The art of developing
more in less time
@EliSawic
How to not get
caught by long build
times?
@EliSawic
Time is not the only
issue
@EliSawic
The art of developing
more in less time
@EliSawic
It's about the
experience
@EliSawic
How does the love
story end?
@EliSawic
Stronger
relationship
@EliSawic
It depends on you
@EliSawic
@EliSawic
www.eliaszsawicki.com
@EliSawic

The art-of-developing-more-in-less-time-berlin