Episode 4

Clocking in at 392 charact...


August 31st, 2020

1 hr 10 mins 59 secs

Season 1

Your Hosts

About this Episode

Welcome to Code Completion, Episode 4! We are a group of iOS developers and educators hoping to share what we love most about development, Apple technology, and completing your code on this brand new show! This time, we are joined by special guest Dan Morse.

Follow us @CodeCompletion on Twitter to hear about our upcoming livestreams, videos, and other content.

Today, we discuss:

  • What interviews are like in 2020 when everything is remote.
  • How to get acclimated to a new team as a junior developer.
  • The pros and cons of Test Driven Development.

Also, join us for #CompleteTheCode and Compiler Error, two segments that test both your knowledge and our knowledge on Swift, Apple, and all things development!

Your hosts for this week:

Be sure to also sign up to our monthly newsletter, where we will recap the topics we discussed, reveal the answers to #CompleteTheCode, and share even more things we learned in between episodes.

You are what makes this show possible, so please be sure to share this with your friends and family who are also interested in any part of the app development process.


This week's episode of Code Completion is brought to you by JohnnyB's Bon Voyage eCommerce App course. Visit and be sure to follow Bon Voyage's instructor @jonnybcodes on Twitter to learn more and stay up to date with all his courses!

Complete the Code

Invert and reduce the following if statement without introducing any new variables or statements:
 let boolA, boolB, boolC: Bool
 let intA, intB, intC: Int

 // TODO: Invert this statement so we don't need an else block:
 if boolA && !boolB || (boolC && intA == intB || intC > intA) {
     // Do Nothing
 } else {
     print("The condition above was not met. Do the thing!")

 // !(boolA && !boolB || (boolC && intA == intB || intC > intA))
 // ... is not a solution!

Be sure to tweet us with hashtag #CompleteTheCode if you know the answer!

### Compiler Error

  1. Clocking in at 392 characters, encodeReprojectionToCommandBuffer:sourceTexture:previousTexture:destinationTexture:previousLuminanceMomentsTexture:destinationLuminanceMomentsTexture:sourceTexture2:previousTexture2:destinationTexture2:previousLuminanceMomentsTexture2:destinationLuminanceMomentsTexture2:previousFrameCountTexture:destinationFrameCountTexture:motionVectorTexture:depthNormalTexture:previousDepthNormalTexture: is the longest public method name as of iOS 13, and surely does something, but it’s documentation is still marked as No Overview Available.

  2. The smallest on this list, convolveWithDestination:tempBuffer:sourceOffsetToRegionOfInterestX:sourceOffsetToRegionOfInterestY:kernel:kernelHeight:kernelWidth:divisor:backgroundColor:options: is one of many related Objective-C methods in the Accelerate framework for manipulating images.

  3. A private Method on UIViewController, attentionClassDumpUser:yesItsUsAgain:althoughSwizzlingAndOverridingPrivateMethodsIsFun:itWasntMuchFunWhenYourAppStoppedWorking:pleaseRefrainFromDoingSoInTheFutureOkayThanksBye: is actually a no-op, though is used by some third party libraries.

  4. Related to CarPlay, initWithEnableFan:enableAirConditioner:enableClimateControl:enableAutoMode:airCirculationMode:fanSpeedIndex:fanSpeedPercentage:relativeFanSpeedSetting:temperature:relativeTemperatureSetting:climateZone: is a public method with full online documentation, though now deprecated.