Logo

    04: Bridging with Objective-C

    enMarch 27, 2017
    What was the main topic of the podcast episode?
    Summarise the key points discussed in the episode?
    Were there any notable quotes or insights from the speakers?
    Which popular books were mentioned in this episode?
    Were there any points particularly controversial or thought-provoking discussed in the episode?
    Were any current events or trending topics addressed in the episode?

    About this Episode

    Swift has evolved since 1.x to have a fluctuating amount of magic/implicit bridging from ObjC and Foundation types, sometimes going in the opposite direction towards very explicit type conversions.

    We've started seeing more of what the "steady state" looks like as Swift 3.x/4.x development matures.

    In the early days, Swift users would need deep compiler internal implementation details to know which NSNumber-representable type could implicitly convert. As of SE-0139 that's a lot clearer.

    The subtleties of unenforced protocol conformance semantics: https://oleb.net/blog/2016/12/protocols-have-semantics/

    Proposals on bridging

    • New from Doug Gregor, limiting @objc inference: https://github.com/DougGregor/swift-evolution/blob/objc-inference/proposals/NNNN-objc-inference.md
    • NSNumber and NSValue: https://github.com/apple/swift-evolution/blob/master/proposals/0139-bridge-nsnumber-and-nsvalue.md
    • Optional to payload or NSNull: https://github.com/apple/swift-evolution/blob/master/proposals/0140-bridge-optional-to-nsnull.md
    • ObjC lightweight generics: https://github.com/apple/swift-evolution/blob/master/proposals/0057-importing-objc-generics.md
    • Import id as Any: https://github.com/apple/swift-evolution/blob/master/proposals/0116-id-as-any.md
    • NSError bridging: https://github.com/apple/swift-evolution/blob/master/proposals/0112-nserror-bridging.md
    • Fully eliminate implicit bridging: https://github.com/apple/swift-evolution/blob/master/proposals/0072-eliminate-implicit-bridging-conversions.md
    • Remove bridging conversion behavior from dynamic casts: https://github.com/apple/swift-evolution/blob/master/proposals/0083-remove-bridging-from-dynamic-casts.md
    • Ole Begemann on "Protocols are more than Bags of Syntax": https://oleb.net/blog/2016/12/protocols-have-semantics/
    • No protocol for non-user constructable types (e.g. library-vendored types) :(
    • Conventions are useful, even if not for technical reasons. Case study with Realm trying to buck NSError ObjC conventions: https://github.com/realm/realm-cocoa/pull/1123

    Recent Episodes from Swift Unwrapped

    91: Concurrency, 3 years later

    91: Concurrency, 3 years later

    Links

    Sponsors

    • AWS Amplify - AWS Amplify is a suite of tools and services for iOS developers to build full stack serverless and cloud-based mobile apps. Check out our getting started Tutorial for iOS! Go to awsamplify.info/IOS

    Get in Touch

    If you're enjoying the show and want to say thank you, the best way to do that is by leaving us a review on iTunes! It lets us know what you think of the show and helps us climb the charts so other people can find the show.

    90: Swift Atomics

    90: Swift Atomics

    Links

    Sponsors

    • AWS Amplify - AWS Amplify is a suite of tools and services for iOS developers to build full stack serverless and cloud-based mobile apps. Check out our getting started Tutorial for iOS! Go to awsamplify.info/IOS

    Get in Touch

    If you're enjoying the show and want to say thank you, the best way to do that is by leaving us a review on iTunes! It lets us know what you think of the show and helps us climb the charts so other people can find the show.

    We've also got a channel set up on Spectrum.chat! If you want to talk about today's episode, ask us a question or just follow the conversation, jump in anytime at spectrum.chat/specfm/swift-unwrapped.

    89: Implementing the Swift Runtime in Swift, with Jordan Rose

    89: Implementing the Swift Runtime in Swift, with Jordan Rose

    What’s in a Swift runtime?

    Other links

    About Jordan

     

    Sponsors

    • Instabug - Get Application Performance Monitoring built for mobile apps and stay on top of your app quality with Instabug. Check them out and them them know we sent you at https://try.instabug.com/SwiftUnwrapped

     

    • AWS Amplify - AWS Amplify is a suite of tools and services for iOS developers to build full stack serverless and cloud-based mobile apps. Check out our getting started Tutorial for iOS! Go to awsamplify.info/IOS

     

    Get in Touch

    If you're enjoying the show and want to say thank you, the best way to do that is by leaving us a review on iTunes! It lets us know what you think of the show and helps us climb the charts so other people can find the show.

    We've also got a channel set up on Spectrum.chat! If you want to talk about today's episode, ask us a question or just follow the conversation, jump in anytime at spectrum.chat/specfm/swift-unwrapped.

    88: Swift 5.3

    88: Swift 5.3

    Get in Touch

    If you're enjoying the show and want to say thank you, the best way to do that is by leaving us a review on iTunes! It lets us know what you think of the show and helps us climb the charts so other people can find the show.

    We've also got a channel set up on Spectrum.chat! If you want to talk about today's episode, ask us a question or just follow the conversation, jump in anytime at spectrum.chat/specfm/swift-unwrapped

    87: Package Registries and Indexes

    87: Package Registries and Indexes

    Get in Touch

    If you're enjoying the show and want to say thank you, the best way to do that is by leaving us a review on iTunes! It lets us know what you think of the show and helps us climb the charts so other people can find the show.

    We've also got a channel set up on Spectrum.chat! If you want to talk about today's episode, ask us a question or just follow the conversation, jump in anytime at spectrum.chat/specfm/swift-unwrapped

    86: Tuples

    86: Tuples

    SE-0282 Tuples conform to Equatable, Comparable, and Hashable

    Bow: https://bow-swift.io

    👋 Get in Touch

    We are @swift_unwrapped on twitter. Follow us, ask us a question, let us know what you think of the show! If you want to follow us individually, we're @jesse_squires and @simjp.

    🖤 Leave A Review

    If you're enjoying the show. The best and easiest way to show your support is by heading over to iTunes and leaving us a review! Not only do you let us know what you like about the show, but you're also helping other Swift language folks find the show.

    Head over to our iTunes page to share your opinion of the show!

    85: Swift on Windows and other news

    85: Swift on Windows and other news
    • Foundation on Windows: https://forums.swift.org/t/swift-soars-ever-higher/34036
    • Interoperability between Swift and C++: https://forums.swift.org/t/manifesto-interoperability-between-swift-and-c/33874
    • Swift playgrounds for mac: https://apps.apple.com/us/app/swift-playgrounds/id1496833156?mt=12
    • Swift crypto: https://swift.org/blog/crypto/
    • Standard Library Preview Package: https://swift.org/blog/preview-package/
    • Update on SE-0110 and SE-0155: https://forums.swift.org/t/update-on-se-0110-and-se-0155/33948

    🙏 Thanks to today's sponsor: Square

    Check out the tutorial for Square’s In-App Payments SDK for iOS on their new developer YouTube channel: youtube.com/squaredev

    👋 Get in Touch

    We are @swift_unwrapped on twitter. Follow us, ask us a question, let us know what you think of the show! If you want to follow us individually, we're @jesse_squires and @simjp.

    🖤 Leave A Review

    If you're enjoying the show. The best and easiest way to show your support is by heading over to iTunes and leaving us a review! Not only do you let us know what you like about the show, but you're also helping other Swift language folks find the show.

    Head over to our iTunes page to share your opinion of the show!

    84: Swift World Tour 2020

    84: Swift World Tour 2020
    • Magic file names: https://github.com/apple/swift-evolution/blob/master/proposals/0274-magic-file.md
    • Multi-pattern catch clauses
      • https://github.com/apple/swift-evolution/blob/master/proposals/0276-multi-pattern-catch-clauses.md
      • https://forums.swift.org/t/se-0276-multi-pattern-catch-clauses/32620
    • Road to Swift 6: https://forums.swift.org/t/on-the-road-to-swift-6/32862

    👋 Get in Touch

    We are @swift_unwrapped on twitter. Follow us, ask us a question, let us know what you think of the show! If you want to follow us individually, we're @jesse_squires and @simjp.

    🖤 Leave A Review

    If you're enjoying the show. The best and easiest way to show your support is by heading over to iTunes and leaving us a review! Not only do you let us know what you like about the show, but you're also helping other Swift language folks find the show.

    Head over to our iTunes page to share your opinion of the show!

    83: Modify Accessors

    83: Modify Accessors

    Get in Touch

    If you're enjoying the show and want to say thank you, the best way to do that is by leaving us a review on iTunes! It lets us know what you think of the show and helps us climb the charts so other people can find the show.

    We've also got a channel set up on Spectrum.chat! If you want to talk about today's episode, ask us a question or just follow the conversation, jump in anytime at spectrum.chat/specfm/swift-unwrapped