Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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
IDEBui...
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
Upcoming SlideShare
Loading in …5
×

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

88 views

Published on

The art of developing more in less time - how to not get caught by long build times? - Berlin 27.11.2017

Published in: Mobile
  • Be the first to comment

  • Be the first to like this

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

  1. 1. The art of developing more in less time - how to not get caught by long build times? @EliSawic
  2. 2. The art of developing more in less time @EliSawic
  3. 3. How to not get caught by long build times? @EliSawic
  4. 4. About me Eliasz Sawicki Blog: www.eliaszsawicki.com Twitter: @EliSawic www.brightinventions.pl @EliSawic
  5. 5. The beginning... @EliSawic
  6. 6. Objective-C @EliSawic
  7. 7. $wift @EliSawic
  8. 8. Think @EliSawic
  9. 9. A short story about Love @EliSawic
  10. 10. A short story about Love 1. Friendship @EliSawic
  11. 11. A short story about Love 1. Friendship 2. Love @EliSawic
  12. 12. A short story about Love 1. Friendship 2. Love 3. Doubt @EliSawic
  13. 13. A short story about Love 1. Friendship 2. Love 3. Doubt 4. Betrayal @EliSawic
  14. 14. A short story about Love 1. Friendship 2. Love 3. Doubt 4. Betrayal 5. Starting over again @EliSawic
  15. 15. A short story about Love 1. Friendship 2. Love 3. Doubt 4. Betrayal 5. Starting over again 6. Rebuild the trust @EliSawic
  16. 16. How does it end? @EliSawic
  17. 17. Friendship @EliSawic
  18. 18. Objective-C @EliSawic
  19. 19. The UIKit @EliSawic
  20. 20. Why do we need UIKit? @EliSawic
  21. 21. Love @EliSawic
  22. 22. Swift @EliSawic
  23. 23. Practice @EliSawic
  24. 24. Tests! @EliSawic
  25. 25. Why do we need tests? @EliSawic
  26. 26. Why do we have brakes in a car?? @EliSawic
  27. 27. To stop? @EliSawic
  28. 28. To go faster! @EliSawic
  29. 29. Test Driven Development @EliSawic
  30. 30. Doubt @EliSawic
  31. 31. Long build times @EliSawic
  32. 32. Slow feedback loops @EliSawic
  33. 33. No tests for you today @EliSawic
  34. 34. Betrayal @EliSawic
  35. 35. React Native @EliSawic
  36. 36. Testing feels natural @EliSawic
  37. 37. Quick reloading @EliSawic
  38. 38. Not a silver bullet @EliSawic
  39. 39. Starting over again @EliSawic
  40. 40. What was the problem? @EliSawic
  41. 41. Long build times @EliSawic
  42. 42. Slow feedback loop @EliSawic
  43. 43. Rebuild the trust @EliSawic
  44. 44. Tackling compilation times @EliSawic
  45. 45. Type Inference @EliSawic
  46. 46. Bottleneck @EliSawic
  47. 47. Warnings -Xfrontend -warn-long-function-bodies=200 -Xfrontend -warn-long-expression-type-checking=100 @EliSawic
  48. 48. Did not work in my case @EliSawic
  49. 49. Debug information format @EliSawic
  50. 50. With or without you? @EliSawic
  51. 51. Take a look at your build phases @EliSawic
  52. 52. Build phases @EliSawic
  53. 53. Build phases @EliSawic
  54. 54. Build Active Architecture Only @EliSawic
  55. 55. Xcode settings defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 10 defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 5 @EliSawic
  56. 56. Whole module optimization @EliSawic
  57. 57. Drastically decreased time in which the project compiles @EliSawic
  58. 58. A catch @EliSawic
  59. 59. A trick @EliSawic
  60. 60. Why isn't it turned on all the time? @EliSawic
  61. 61. Managing dependencies @EliSawic
  62. 62. Cocoapods @EliSawic
  63. 63. Carthage @EliSawic
  64. 64. Build tools @EliSawic
  65. 65. Bazel, Buck @EliSawic
  66. 66. Xcode @EliSawic
  67. 67. Xcode @EliSawic
  68. 68. Easy way to decrease the compilation time by half @EliSawic
  69. 69. Do not compile the other half @EliSawic
  70. 70. Modularizing the code @EliSawic
  71. 71. More things to think about... @EliSawic
  72. 72. Is it bad? @EliSawic
  73. 73. Nope @EliSawic
  74. 74. How do we split? @EliSawic
  75. 75. Don't bite off more than you can chew @EliSawic
  76. 76. Step by step @EliSawic
  77. 77. What is the code that I write? @EliSawic
  78. 78. We write apps! @EliSawic
  79. 79. Do we really write apps? @EliSawic
  80. 80. Tests! @EliSawic
  81. 81. Why do we compile the UI code? @EliSawic
  82. 82. Separating the UI @EliSawic
  83. 83. Is it bad that we break up with UIKit? @EliSawic
  84. 84. Nope @EliSawic
  85. 85. MVC @EliSawic
  86. 86. MVC @EliSawic
  87. 87. MVVM @EliSawic
  88. 88. MVVM @EliSawic
  89. 89. Why would you remove UIKit? @EliSawic
  90. 90. Can be used anywhere @EliSawic
  91. 91. Can be tested anywhere @EliSawic
  92. 92. Passive Views @EliSawic
  93. 93. Logic @EliSawic
  94. 94. Why are they still together? @EliSawic
  95. 95. Multiple targets @EliSawic
  96. 96. One for UIKit @EliSawic
  97. 97. One for logic @EliSawic
  98. 98. Two for Tests @EliSawic
  99. 99. Better architecture @EliSawic
  100. 100. Speeded up tests @EliSawic
  101. 101. Faster builds @EliSawic
  102. 102. The art of developing more in less time - how to not get caught by long build times? @EliSawic
  103. 103. The art of developing more in less time @EliSawic
  104. 104. How to not get caught by long build times? @EliSawic
  105. 105. Time is not the only issue @EliSawic
  106. 106. The art of developing more in less time @EliSawic
  107. 107. It's about the experience @EliSawic
  108. 108. How does the love story end? @EliSawic
  109. 109. Stronger relationship @EliSawic
  110. 110. It depends on you @EliSawic
  111. 111. @EliSawic www.eliaszsawicki.com @EliSawic

×