Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Swift 4

Bas Broek
February 15, 2017

Swift 4

We will be taking a look at the two stages in which Swift 4.0 will be developed and what we can expect from that. We will also take a look at the evolution proposals that are awaiting us in Stage 2.

This talk was presented at CocoaHeads NL.

Bas Broek

February 15, 2017
Tweet

More Decks by Bas Broek

Other Decks in Programming

Transcript

  1. SWIFT � BAS BROEK @BASTHOMAS 1

  2. SWIFT ɣ BAS BROEK @BASTHOMAS 2

  3. EXPECTED RELEASE DATE: LATE 2017 3

  4. STAGE 1 & 2 4

  5. STAGE 1 5

  6. STRINGS 6

  7. ! 7

  8. NO 8

  9. STRINGS IN SWIFT 4 RE-EVALUATE THE API1 2 Localization &

    internationalization itself are planned for Swift 5 1 https://github.com/apple/swift/blob/master/docs/StringManifesto.md 9
  10. STRINGS IN SWIFT 4 RE-EVALUATE THE API1 > How to

    use internationalization API's correctly2 2 Localization & internationalization itself are planned for Swift 5 1 https://github.com/apple/swift/blob/master/docs/StringManifesto.md 9
  11. STRINGS IN SWIFT 4 RE-EVALUATE THE API1 > How to

    use internationalization API's correctly2 > Better unicode support 2 Localization & internationalization itself are planned for Swift 5 1 https://github.com/apple/swift/blob/master/docs/StringManifesto.md 9
  12. STRINGS IN SWIFT 4 RE-EVALUATE THE API1 > How to

    use internationalization API's correctly2 > Better unicode support > No more .characters for most operations 2 Localization & internationalization itself are planned for Swift 5 1 https://github.com/apple/swift/blob/master/docs/StringManifesto.md 9
  13. STRINGS IN SWIFT 4 RE-EVALUATE THE API1 > How to

    use internationalization API's correctly2 > Better unicode support > No more .characters for most operations > Supporting Range in favor of NSRange 2 Localization & internationalization itself are planned for Swift 5 1 https://github.com/apple/swift/blob/master/docs/StringManifesto.md 9
  14. STRINGS IN SWIFT 4 RE-EVALUATE THE API1 > How to

    use internationalization API's correctly2 > Better unicode support > No more .characters for most operations > Supporting Range in favor of NSRange > Improved string interpolation & formatting 2 Localization & internationalization itself are planned for Swift 5 1 https://github.com/apple/swift/blob/master/docs/StringManifesto.md 9
  15. STRINGS IN SWIFT 4 RE-EVALUATE THE API1 > How to

    use internationalization API's correctly2 > Better unicode support > No more .characters for most operations > Supporting Range in favor of NSRange > Improved string interpolation & formatting > Regex 2 Localization & internationalization itself are planned for Swift 5 1 https://github.com/apple/swift/blob/master/docs/StringManifesto.md 9
  16. ! 10

  17. ! 11

  18. WHAT ABOUT SOURCE STABILITY? 12

  19. SE-01413 TO THE RESCUE @available(swift 4, *) extension Collection {

    func index(offset: IndexDistance) -> Index { return index(startIndex, offsetBy: offset) } func offset(of i: Index) -> IndexDistance { return distance(from: startIndex, to: i) } } 3 https://github.com/apple/swift-evolution/blob/master/proposals/0141-available-by-swift-version.md 13
  20. ! 14

  21. STAGE 2 "SOME TIME IN SPRING 2017" 15

  22. SWIFT-EVOLUTION4 4 https://apple.github.io/swift-evolution/ 16

  23. WHAT IS UPON US?5 5 https://github.com/apple/swift-evolution/pulls? utf8=✓&q=label%3A%22out%20of%20scope%20for%20current%20release%22 17

  24. WHAT IS UPON US?5 > Enforce calling super 5 https://github.com/apple/swift-evolution/pulls?

    utf8=✓&q=label%3A%22out%20of%20scope%20for%20current%20release%22 17
  25. WHAT IS UPON US?5 > Enforce calling super > Multi-line

    string literals 5 https://github.com/apple/swift-evolution/pulls? utf8=✓&q=label%3A%22out%20of%20scope%20for%20current%20release%22 17
  26. WHAT IS UPON US?5 > Enforce calling super > Multi-line

    string literals > User-provided warning diagnostics at compile time 5 https://github.com/apple/swift-evolution/pulls? utf8=✓&q=label%3A%22out%20of%20scope%20for%20current%20release%22 17
  27. WHAT IS UPON US?5 > Enforce calling super > Multi-line

    string literals > User-provided warning diagnostics at compile time > The pipeline (|>) operator 5 https://github.com/apple/swift-evolution/pulls? utf8=✓&q=label%3A%22out%20of%20scope%20for%20current%20release%22 17
  28. WHAT IS UPON US?5 > Enforce calling super > Multi-line

    string literals > User-provided warning diagnostics at compile time > The pipeline (|>) operator > Increased Objective-C & Swift interoperability 5 https://github.com/apple/swift-evolution/pulls? utf8=✓&q=label%3A%22out%20of%20scope%20for%20current%20release%22 17
  29. WHAT IS UPON US?5 > Enforce calling super > Multi-line

    string literals > User-provided warning diagnostics at compile time > The pipeline (|>) operator > Increased Objective-C & Swift interoperability > Much more once Stage 2 starts... 5 https://github.com/apple/swift-evolution/pulls? utf8=✓&q=label%3A%22out%20of%20scope%20for%20current%20release%22 17
  30. AND OF COURSE... 7 https://github.com/swift-server 6 https://lists.swift.org/pipermail/swift-evolution-announce/2017-January/000307.html 18

  31. AND OF COURSE... > Swift Package Manager improvements6 7 https://github.com/swift-server

    6 https://lists.swift.org/pipermail/swift-evolution-announce/2017-January/000307.html 18
  32. AND OF COURSE... > Swift Package Manager improvements6 > Swift

    on the server7 7 https://github.com/swift-server 6 https://lists.swift.org/pipermail/swift-evolution-announce/2017-January/000307.html 18
  33. AND OF COURSE... > Swift Package Manager improvements6 > Swift

    on the server7 > ??? 7 https://github.com/swift-server 6 https://lists.swift.org/pipermail/swift-evolution-announce/2017-January/000307.html 18
  34. WORLD DOMINATION 19

  35. @BASTHOMAS @SWIFTLYBRIEF8 8 https://swiftweekly.github.io 20