S1E13: Bizarre but legal

An episode of Swift over Coffee

By Paul Hudson and Sean Allen

Swift over Coffee is a podcast that helps you keep your Swift skills up to date the easy way, hosted by Paul Hudson and Sean Allen. Each episode has news, our picks of the week, plus an open ballot where you can share your views on important topics.

Follow us on Twitter at @swiftovercoffee.

Note: all the discussion from Sean and Paul is licensed under CC BY-SA 3.0. Our regular intro/outro music is also licensed under CC BY-SA 3.0, and is called "Dropping out of School" by Brad Sucks.

In this episode: the Swift style guide marches on to formal review, we pick out our favorite events at iOSCon, and discuss whether it's important for iOS developers to be skilled in more than one platform.
- WWDC ticket winners – who got lucky? (Spoiler: it was Paul.) (And not Sean.)
- SE-0250: Swift Code Style Guidelines and Formatter – https://github.com/apple/swift-evolution/blob/master/proposals/0250-swift-style-guide-and-formatter.md
- SE-0249: Key Path Expressions as Functions – https://github.com/apple/swift-evolution/blob/master/proposals/0249-key-path-literal-function-expressions.md
- Paul’s first pick: Gwendolyn Weston's talk "The Business Case For Your Code" – https://skillsmatter.com/skillscasts/11749-keynote-the-business-case-for-your-code
- Gwen's book, Intentional Friendships: https://gumroad.com/l/friendsyay
- Paul’s second pick: Being able to do some coding with Connie, a young coder, at iOSCon.
- Sean’s first pick: Niamh Power's talk "Better Together" – https://skillsmatter.com/skillscasts/13385-better-together
- Sean's second pick: Getting to attend his first major conference and meeting lots of other Swift developers.
- Open ballot: Should mobile developers be skilled in more than one platform, e.g. Android or React as well as iOS?
Thanks to Skillsmatter in London for hosting our first live podcast episode!

In this episode: the first sighting of Swift 5.1, a Swift style guide is on the cards, we talk about toast (the user interface kind!), and look for where there’s still money to be made on the App Store.
- Swift 5.1 Release Process: https://swift.org/blog/5-1-release-process/
- Pitch for Official Swift Style Guide: https://forums.swift.org/t/pitch-an-official-style-guide-and-formatter-for-swift/21025
- Apple allowing developers to offer subscription discounts: https://developer.apple.com/news/?id=02222019a
- Paul’s pick – Loaf: https://github.com/schmidyy/Loaf
- Sean's pick – A Best in Class iOS App by Jordan Morgan: https://www.swiftjectivec.com/a-best-in-class-app/
- Open Ballot: Is there still money to be made on the App Store? If so, how?

In this episode: Codable conformance for Range types, string interpolation in Swift 5.0, Paul and Sean discuss their work over 2018 and plans for 2019, and we ask: what would you change about Xcode?
- SE-0235: Add Result to the Standard Library – https://github.com/apple/swift-evolution/blob/master/proposals/0235-add-result.md - SE-0239: Add Codable conformance to Range types
– https://github.com/apple/swift-evolution/blob/master/proposals/0239-codable-range.md
- Is gifting in-app purchases coming soon? https://www.macrumors.com/2018/12/19/app-store-in-app-purchase-gifting/
- String interpolation changes in Swift 5.0: https://ericasadun.com/2018/12/16/swift-5-interpolation-part-3-dates-and-number-formatters/ and http://alisoftware.github.io/swift/2018/12/15/swift5-stringinterpolation-part1/
- Because this is the end-of-year episode, our picks this time were replaced with looking back on 2018, and looking forward to 2019.
- Open ballot: What would you change about Xcode?

In this episode: Result comes to the standard library, the App Store is going down for Christmas, Paul replaces Reachability at last, and we discuss how best to contribute to the community.
- Sean's book, It's Only Crazy Until You Do It: https://gumroad.com/l/sean-allen-origin
- SE-0235, Add Result to the Standard Library: https://github.com/apple/swift-evolution/blob/master/proposals/0235-add-result.md
- How to game the App Store: http://davidbarnard.com/post/180568817995/how-to-game-the-app-store
- App Store Connect shutdown schedule: https://developer.apple.com/news/?id=11272018
- Contributing to the Swift Benchmark Suite: https://patrickbalestra.com/blog/2018/11/12/contributing-to-the-swift-benchmark-suite.html
- Pointfree’s new snapshot library: https://github.com/pointfreeco/swift-snapshot-testing
- Paul's pick: NWPathMonitor – https://developer.apple.com/documentation/network/nwpathmonitor
- Sean's pick: Programming Sucks – https://www.stilldrinking.org/programming-sucks
- Open Ballot: what's the best way to contribute to the Swift community?

In this episode: flattening nested optionals is accepted as optional iteration is being reviewed, Apple works on a project to support the language server protocol, Sean talks about Airbnb's Lottie framework, and we discuss the importance of good testing.
- SE-0230: Flatten nested optionals resulting from 'try?' – https://github.com/apple/swift-evolution/blob/master/proposals/0230-flatten-optional-try.md
- SE-0231: Optional Iteration – https://github.com/apple/swift-evolution/blob/master/proposals/0231-optional-iteration.md
- New LSP language service supporting Swift and C-family languages for any editor and platform – https://forums.swift.org/t/new-lsp-language-service-supporting-swift-and-c-family-languages-for-any-editor-and-platform/17024
- App Bundles Now Support Mac Apps and Free Apps with Subscriptions – https://developer.apple.com/news/?id=10162018
- Paul's Pick: "Boy, Have I Been Misusing SCNetworkReachability" – http://blog.jaredsinclair.com/post/179083065595/til-boy-have-i-been-misusing
- Sean's Pick: Lottie, from Airbnb – https://airbnb.design/lottie/
- Open Ballot: What’s the best way to make sure your code is thoroughly tested?
- The iOS testing pyramid: http://cleanswifter.com/proposed-ios-testing-pyramid/

In this episode: iOS 12.0 is picking up speed while 12.1 is already on the way, we dive into DispatchGroup and font metrics, and talk about the many challenges of learning and implementing the latest Swift features.
- Add your nominations to the Swift Community Awards: https://www.hackingwithswift.com/awards
- iOS 12 adoption is already past 50%: https://www.macrumors.com/2018/10/11/ios-12-installed-on-53-percent-of-devices/
- More than 70 new emoji in iOS 12.1: https://www.apple.com/newsroom/2018/10/apple-brings-more-than-70-new-emoji-to-iphone-with-ios-12-1/
- SE-0230: Flatten nested optionals resulting from 'try?' – https://github.com/apple/swift-evolution/blob/master/proposals/0230-flatten-optional-try.md
- We can now delete old apps from App Store Connect: https://itunespartner.apple.com/en/apps/news/100002355
- Paul's pick of the week: DispatchGroup – https://developer.apple.com/documentation/dispatch/dispatchgroup
- Sean's pick of the week: UIFontMetrics – https://developer.apple.com/documentation/uikit/uifontmetrics
- Open Ballot: How do you keep up with the evolution of Swift?

In this episode: raw strings are back in review, Dynamic Type is more popular than you realize, and we look at ways to fix massive view controllers.
- Raw strings: https://github.com/apple/swift-evolution/blob/master/proposals/0200-raw-string-escaping.md
- xkcd backslashes: https://xkcd.com/1638
- 40% of users use Dynamic Type: https://twitter.com/browgrammer/status/1031630345551065089
- The Swift team are working on Docker support: https://forums.swift.org/t/kickstarting-new-official-docker-support-for-swift/15487
- Paul's pick: SE-0225 shows that Swift Evolution is working well.
- Sean's pick: SpriteKit is awesome!
- Dave DeLong's talk at App Builders: https://youtu.be/YWVzCd5FYbs
- Soroush Khanlou, The Coordinator: http://khanlou.com/2015/01/the-coordinator
- How to use the coordinator pattern in iOS apps: https://www.hackingwithswift.com/articles/71/how-to-use-the-coordinator-pattern-in-ios-apps