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

Current Topics CocoaCoders 2018-03-02

Patrick Weigel
March 02, 2018
19

Current Topics CocoaCoders 2018-03-02

Current Topics in iOS and Apple 2018-03-02

Patrick Weigel

March 02, 2018
Tweet

Transcript

  1. • WWDC 2018 June 4 - 8 • Core ML

    + IBM Watson • Strings Gonna String • Swift 4.1, 4.2, 5.0 Current Developer Topics Cocoa Coders 2018-03-22 Closures • Contributing to Swift • France Rescues Developers • iPhone SDK Ten Years Old
  2. WWDC 2018 • June 4 - 8 (Monday - Friday)

    • McEnery Convention Center, San Jose, California • Lottery closed 3/22 (Th) at 12 noon central • Winners announced 3/23 (F) 7 pm central • The Use of Augury to Divine the Future by Examination of the Entrails Provided to Us by: https://developer.apple.com/wwdc/ Cocoa Coders 2018-03-22 Closures
  3. Core ML + IBM Watson Apple: https://developer.apple.com/news/?id=03202018a IBM Deep Learning:

    https://www.ibm.com/blogs/watson/2018/03/deep-learning- service-ibm-makes-advanced-ai-accessible-users- everywhere/ Computerworld: https://www.computerworld.com/article/3263447/apple-ios/ now-every-swift-developer-can-build-ai-apps-thanks-to- apple-and-ibm.html Cocoa Coders 2018-03-22 Closures
  4. Strings Gonna String “Supplemental Update 10.13.3 fixes an issue where

    using certain character sequences could cause apps to crash” The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data. https://github.com/minimaxir/big-list-of-naughty-strings/ Cocoa Coders 2018-03-22 Closures
  5. 1. All The Changes, Overview Podcast: https://github.com/apple/swift/blob/master/ CHANGELOG.md https://spec.fm/podcasts/swift-unwrapped/ 125759

    2. Codable (JSON snake_case) 3. Compiler option to optimize for code size 4. flatMap deprecated in certain instances 5. Conditional Conformance Swift 4.1 Cocoa Coders 2018-03-22 Closures
  6. • Final branch April 20, 2018 https://swift.org/blog/4-2-release-process/ • Stabilize ABI,

    Bug Fixes, Improve Compile Time • Not Source Compatible with 4.1 for “Corner Cases” Swift 4.2 (1 of 4) Cocoa Coders 2018-03-22 Closures
  7. Dynamic Member Lookups: SE-0195: Provide "dot" syntax for arbitrary names

    which are resolved at runtime in a completely type safe way. https://www.hackingwithswift.com/articles/55/how- to-use-dynamic-member-lookup-in-swift https://github.com/apple/swift-evolution/blob/ master/proposals/0195-dynamic-member- lookup.md Cocoa Coders 2018-03-22 Closures Swift 4.2 (2 of 4)
  8. Dynamic Member Lookups: WHAT: “it’s syntactic sugar that turns a

    custom subscript into simple dot syntax.” WHY: 1) more safety 2) Swift World Domination interact with Python, Javascript, others Cocoa Coders 2018-03-22 Closures Swift 4.2 (3 of 4)
  9. Dynamic Member Lookups: HOW: Tag a struct/class/enum/protocol with “@dynamicMemberLookup” e.g.:

    @dynamicMemberLookup struct Person { } Create a “subscript” method to allow access, e.g.: subscript(dynamicMember member: String) -> String { } Later in the code, acess elements of struct via dot notation, e.g.: somePerson = Person() a = somePerson.name Cocoa Coders 2018-03-22 Closures Swift 4.2 (4 of 4)
  10. • ABI Stability
 Guaranteed for 5.0+ • Generics
 Features needed

    for standard library conditional conformances and recursive protocol requirements • API resilience Allow public APIs for a library to evolve over time while maintaining a stable ABI • Memory ownership model Tackle the pieces of the ownership model that are key to ABI stability Swift 5.0 (1 of 2) Cocoa Coders 2018-03-22 Closures
  11. • Source Stability Source compatibility mode for Swift 4 and

    possibly Swift 3 • String ergonomics Make String easier to use and more performant • Foundation improvements Make the Cocoa SDK work seamlessly in Swift • Improvements to existing standard library facilities Minor additions only • Syntactic additions Changes must be extremely well-motivated and will be subject to additional scrutiny • Laying groundwork for a new concurrency model Finalizing this is a non-goal for Swift 5 Swift 5.0 (2 of 2) Cocoa Coders 2018-03-22 Closures
  12. Contributing to Swift https://swift.org/contributing/#answering-question https://apple.github.io/swift-evolution/ 1. Answering Questions 2. Code

    Review 3. Testing 4. Reporting Bugs 5. Triaging Bugs 6. Contributing Code Cocoa Coders 2018-03-22 Closures
  13. France Rescues Developers https://www.bloomberg.com/news/articles/2018-03-14/france-to- take-action-v-google-apple-for-commercial-practices • France: “when developers develop

    their applications, and sell to Google and Apple, their prices are imposed, Google and Apple take all their data, Google and Apple can unilaterally rewrite their contracts” • Seeking two million euro fine • Not seeking change in abusive practices (?) • Apple: Nothing to see here, move along Cocoa Coders 2018-03-22 Closures