Code Completion

Code Completion

By Code CompletionTechnologyEducation
Download on the App Store

Code Completion episodes

  • 11: Fernandos Going to Eat His Hat

    Welcome to Code Completion, Episode {{insert episode number here}}! We are a group of iOS developers and educators hoping to share what we love most about development, Apple technology, and completing your code!

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

    Today, we discuss:

    • If 5G is as useful a feature as Apple made it out to be
    • 5G: Explained by MKBHD,
    • The new HomePod mini
    • The new iPhone 12
    • Which device we'll all be getting
    • 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:

      • Ben Gohlke
      • Dimitri Bouniol
      • Fernando Olivares
      • 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.

        Sponsor

        This week's episode of Code Completion is brought to you by Super Easy Timer. Search for Super Easy Timer on the Mac App Store to give it a try. https://apps.apple.com/app/apple-store/id1525104124?mt=12

        Complete the Code

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

        Compiler Error

        1 - Just introduced this month, swift-algorithms is a new package that makes complex sequence and collection algorithm implementations available which wouldn’t otherwise fit in with the standard library.

        • swift-algorithms: https://swift.org/blog/swift-algorithms/
        • Swift Algorithm Club: https://github.com/raywenderlich/swift-algorithm-club)
        2 - A foundational library to many server-side swift initiatives, swift-nio exposes high level building blocks for interacting with non-blocking IO, such as files, streams, and datagrams.
        • swift-nio: https://github.com/apple/swift-nio)
        3 - Built on top of swift-nio, swift-metrics is a package primarily intended for web analytics that makes it easy to collect data from your server application in a privacy conscious way.
        • swift-metrics: https://github.com/apple/swift-metrics)
        4 - Re-implementing much of the functionality URLSession provides, async-http-client is a high performance HTTP client for Swift actively maintained by the Swift Server Work Group.
        • async-http-client: https://github.com/swift-server/async-http-client)

        53 min
      • 10: I Don't Want to be the Negative Nancy...

        Welcome to Code Completion, Episode 10! We are a group of iOS developers and educators hoping to share what we love most about development, Apple technology, and completing your code!

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

        Today, we discuss:

        • The “Hi, Speed” event
        • New iPhone predictions
        • The hypothetical HomePod mini
        • Whether we all want AirTags or not
        • 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:

          • Ben Gohlke
          • Dimitri Bouniol
          • Fernando Olivares
          • 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.

            Sponsor

            This week's episode of Code Completion is brought to you by Pennant. Check it out on the App Store today!

            30 min
          • 9: Just Enough Research

            Welcome to Code Completion, Episode 9! 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!

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

            Today, we discuss:

            • New A14 performance leaks
            • Integrating Accessibility in your apps
            • Testing your apps with real users.
            • 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:

              • Spencer Curtis
              • Ben Gohlke
              • Dimitri Bouniol
              • 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.

                Sponsor

                This week's episode of Code Completion is brought to you by Sticky Widgets. Check it out in the App Store today!

                Complete the Code

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

                Compiler Error
                1. By using extended delimiters for string literals, all special characters including the backslash will be represented as normal characters.

                2. Not limited to optionals, any type can conform to ExpressibleByNilLiteral to have a special initializer called if nil is used along with that type.

                3. Like integer literals, floating point literals can be expressed in binary, octal, decimal, or hexadecimal forms.

                4. Although Dictionaries prohibit it, ExpressibleByDictionaryLiteral allows for multiple entries with the same key.

                5. 56 min
                6. 8: Is Two Wins a Streak?

                  Welcome to Code Completion, Episode 8! 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!

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

                  Today, we discuss:

                  • What it’s like launching an app in 2020 compared to 2008
                  • How the process of app review has changed
                  • How developers are more on the hook than ever to provide their own marketing as App Store features don’t weigh as heavily as they did in the past
                  • 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:

                    • Spencer Curtis
                    • Ben Gohlke
                    • Dimitri Bouniol
                    • 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.

                      Sponsor

                      This week's episode of Code Completion is brought to you by Fernando and his new book: From Junior to Senior for sponsoring Code Completion. Go to https://gumroad.com/l/QutHw today to learn more!

                      Complete the Code

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

                      Compiler Error
                      1. Early versions of iPhone OS were limited to a black home screen background, but iOS 3.2 added the capability to finally change it.

                      2. iOS 4 brought emoji support to the iPhone and iPad for the first time via a built-in keyboard.

                      3. Although available since the very beginning, iPhone OS 2 brought a scientific calculator to the base feature set when the device was in landscape.

                      4. Notification Center finally made its debut in iOS 5, allowing users to manage notifications.

                      5. 47 min
                      6. 7: Code Completion SE

                        Welcome to Code Completion, Episode 7! 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!

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

                        Today, we discuss:

                        • iOS 14's rushed release
                        • New Features in Swift 5.3
                        • The A14 making it's debut on iPad before iPhone
                        • The return of Touch ID on the iPad's top button
                        • The new Apple One subscription service
                        • 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:

                          • Ben Gohlke
                          • Dimitri Bouniol
                          • Fernando Olivares
                          • Johnny Hicks
                          • 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.

                            Sponsor

                            This week's episode of Code Completion is brought to you by Super Easy Timer. Search for Super Easy Timer on the Mac App Store to give it a try.

                            Complete the Code

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

                            Compiler Error
                            1. Introduced in 1987, the Macintosh SE was a Special Edition of the 128k Mac that was the first Mac to offer a color display as an option, although limited to 8 bits.

                            2. Introduced 2 years later as a processor update of its predecessor, the Macintosh SE/30 was unofficially expandable to a whopping 128 MB of RAM, an amount that was greater than many future models, and its board and front panel were available as official upgrades for the original Macintosh SE.

                            3. A surprise to many, the SE naming made a comeback in 2016 as the iPhone SE, a Special Edition of iPhone 6S that used the iPhone 5S case, and would mark a new tier of low-cost iPhones with up-to-date components.

                            4. Available today, the Apple Watch SE follows in the footsteps of the iPhone SE, but rather than use the internals of the flagship Series 6, it is instead closer to a limited variant of the Series 5, with an S5 package on a chip, but without an always-on display and electrocardiogram sensor.

                            5. 1 hr
                            6. 6: I Hate This Game

                              Welcome to Code Completion, Episode 6! 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!

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

                              Today, we discuss:

                              • Different App Store Pricing models,
                              • The benefits of paid up front with the ever-elusive charts, and
                              • Subscription vs In app Purchase for unlocking functionality in an app.
                              • 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:

                                • Ben Gohlke
                                • Dimitri Bouniol
                                • Fernando Olivares
                                • Special thanks to Tyler Hillsman and Josh Holtz for joining us this week! Be sure to follow them on Twitter at @joshdholtz and @thillsman.

                                  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.

                                  Sponsor

                                  This week's episode of Code Completion is brought to you by Fernando and his new book: From Junior to Senior. Go to @FromJrToSr today to learn more!

                                  Complete the Code

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

                                  Compiler Error
                                  1. Streaming game services may offer a catalog app on the App Store to help users sign up for the service and find the games on the App Store, provided that the app adheres to all guidelines, including offering users the option to pay for a subscription with in-app purchase and use Sign in with Apple.
                                  2. Apps in the Kids category must not include links out of the app, purchasing opportunities, or other distractions to kids unless guarded behind a parental gate.
                                  3. Screenshots should not include text and image overlays other than to illustrate the app in use, and they must not use any Apple devices or products for marketing purposes.
                                  4. If your app displays Activity rings, they should not visualize Move, Exercise, or Stand data in a way that resembles the Activity control.
                                  5. 1 hr 14 min
                                  6. 5: Emacs Should Die a Fiery Death

                                    Welcome to Code Completion, Episode 5! 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!

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

                                    Today, we discuss:

                                    • When to rewrite a project from scratch, when to buckle down and conquer technical debt, and when to do a little something in between
                                    • The importance of documenting code, and how the lack of documentation stifles newcomers from becoming established developers
                                    • 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:

                                      • Spencer Curtis
                                      • Ben Gohlke
                                      • Dimitri Bouniol
                                      • Fernando Olivares
                                      • 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.

                                        Sponsor

                                        This week's episode of Code Completion is brought to you by Not Phở. Search for Not Phở on the iOS and macOS App Stores today to give it a try.

                                        Complete the Code

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

                                        Review the following code — what might the developer have overlooked?

                                        class DateCell: UITableViewCell {
                                        private static let dateFormatter: DateFormatter = {
                                        let dateFormatter = DateFormatter()
                                        dateFormatter.dateFormat = "YYYY-MM-dd"
                                        return dateFormatter
                                        }()
                                        var date: Date? {
                                        didSet {
                                        switch date {
                                        case .some(let date):
                                        textLabel?.text = Self.dateFormatter.string(from: date)
                                        case .none:
                                        textLabel?.text = "N/A"
                                        }
                                        }
                                        }
                                        }

                                        ### Compiler Error

                                        The theme for this week is Emacs key bindings in Cocoa:

                                        1. Although the same can be done using modifier and arrow keys, the text cursor can be quickly moved to the beginning and to the end of a document by using ⌃A to go to the beginning, and ⌃Z to go to the end.

                                        2. You may know of the ⌘⌫ command to delete the entire line to the left of the text cursor, but ⌃K can be used to delete the line to the right of the text cursor.

                                        3. Available as an alternate clipboard, ⌃K and ⌃Y represent the kill and yank operations that let you cut and copy text without overriding your main clipboard. The clipboard they use is called the kill ring.

                                        4. ⌃T is a useful command for transposing two letters that were typed out of order, by flipping the characters on each side of the text cursor.

                                        5. Can you spot which one is the Compiler Error?

                                          1 hr 17 min
                                        6. 4: Clocking in at 392 charact...

                                          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:

                                            • Ben Gohlke
                                            • Dimitri Bouniol
                                            • 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.

                                              Sponsor

                                              This week's episode of Code Completion is brought to you by JohnnyB's Bon Voyage eCommerce App course. Visit bon-voyage.app/course 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.

                                              5. 1 hr 11 min
                                              6. 3: What's Clascal?

                                                Welcome to Code Completion, Episode 3! 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!

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

                                                Today, we discuss:

                                                • Transitioning between Xcode toolchains when you want to use new SDK features, but still be able to compile from an older version of Xcode.
                                                • Doing web development using Swift, by making use of John Sundell's Publish and Vapor.
                                                • How to get out of tutorial hell, and what next steps a fledgling developer could take.
                                                • 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!

                                                  This week's Complete the Code question:

                                                  override func tableView(_ tableView: UITableView,
                                                  cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                                                  guard let cell = tableView.dequeueReusableCell(withIdentifier: "DateCell",
                                                  for: indexPath) as? DateCell
                                                  else { return DateCell() }
                                                  cell.date = dates[indexPath.row]
                                                  return cell
                                                  }

                                                  This week's episode of Code Completion is brought to you by Huuungry. Click here to check it out on the App Store.

                                                  Your hosts for this week:

                                                  • Spencer Curtis
                                                  • Dimitri Bouniol
                                                  • Fernando Olivares
                                                  • Johnny Hicks
                                                  • 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.

                                                    50 min
                                                  • 2: Available in Human Sizes

                                                    Note: The first episode is available here, but unfortunately has pretty broken audio, so please don't listen to it first 😅

                                                    Welcome to Code Completion! 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!

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

                                                    Today, we discuss:

                                                    • Finding your niche and the benefits in specializing when looking for new opportunities, and
                                                    • How beneficial would it be to consider the App Store as simply a provider, much like an ISP.

                                                    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!

                                                    This week's episode of Code Completion is brought to you by Mystiko. Check it out on the App Store.

                                                    This week's Compiler Error has a theme: Obscure Apple Products:

                                                    1 - A key player in pioneering the digital publishing space, Apple made several printer models in 80s and 90s such as the popular ImageWriter and LaserWriter, but they also made the Apple 410 Color Plotter, a printer that used a stylus along with a selection of inks to literally draw shapes and text on the page.
                                                    2 - Available for sale for just a couple years, iPod Socks were a series of pouches for iPods woven like socks, and came as a package with six colors: grey, orange, pink, blue, green, and purple. For a limited time, they were also available in human sizes at the Apple Company Store in Cupertino.
                                                    3 - Known now as a feature that allows videos to be quickly taken by pressing and holding the shutter button on modern iPhones, the Apple QuickTake was a line of video cameras that could be used tethered to a Mac, or on the go thanks to AA batteries.
                                                    4 - Released in 2006, the iPod Radio Remote was an attachment for then-new iPods that was shaped like a then-unreleased clip-style iPod Shuffle, that allowed compatible iPod users to use their iPods as an FM Radio tuner.

                                                    Your hosts for this week:

                                                    • Ben Gohlke
                                                    • Dimitri Bouniol
                                                    • Fernando Olivares
                                                    • Johnny Hicks
                                                    • Be sure to also sign up to our monthly newsletter on our website at https://codecompletion.io/, 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.

                                                      Recorded on Friday, August 14th, 2020.

                                                      53 min

                                                    About Code Completion

                                                    From the publisher's feed

                                                    Welcome to Code Completion! We are a group of iOS developers and educators hoping to share what we love most about development, Apple technology, and the life of a developer in today's marketplace.…