$30 off During Our Annual Pro Sale. View Details »

Lab of WWDC19

Lab of WWDC19

帰ってきた関西モバイルアプリ研究会#2: https://kanmoba.connpass.com/event/134059/

Yutaro Muta

June 12, 2019
Tweet

More Decks by Yutaro Muta

Other Decks in Programming

Transcript

  1. WWDC19ͷLabࣄ৘
    2019/06/12 @ؼ͖ͬͯͨؔ੢ϞόΠϧΞϓϦݚڀձ#2
    Yutaro Muta @yutailang0119

    View Slide

  2. • Yutaro Muta @yutailang0119
    • Hatena Co., Ltd. @Kyoto
    • Conference Staff
    • builderscon 2017, 2018
    • try! Swift Tokyo 2019, 2020
    • WWDC19ެࣜࣸਅ "Off to a Running Start"
    ʹࡌͬͨͷͰɺ୳ͯ͠Ͷ
    Who am I ?

    View Slide

  3. WWDC/Labs

    View Slide

  4. WWDC/Labs
    • Technology΍User InterfaceΛ࢝ΊɺAppleͷΤϯδχΞɺσβΠφʔɺଞ৬
    छͷ֤ΤΩεύʔτ͕ొ৔ͯ͠ɺ࣭໰ʹ౴͑ͯ͘ΕͨΓɺఏҊͰ͖ͨΓ͢Δ
    • ͦͷ৔ʹߦ͚͹࣭໰Ͱ͖ΔLab or நબ༧໿͕ඞཁͳLab
    • WWDCݱ஍ʹߦ͘ͳΒɺઈରʹ଍ΛӡΜͩํ͕͍͍ͱݴΘΕΔ͋Ε
    • ηογϣϯͷཪͳͷͰɺ೰ΉͳΒLabʹߦ͚ (ηογϣϯ͸ಈըͰݟΕΔ)
    • ηογϣϯͱಉ͘͡ɺKeynoteޙʹ൑໌͢ΔLab΋ଟ਺͋Δ
    • ΋ͪΖΜӳޠ

    View Slide

  5. WWDC19/Labs

    View Slide

  6. WWDC19/Labs
    • [New] ࠞࡶ͍ͯ͠ΔLabͰ͸WWDCΞϓϦͷQRίʔυΛ࢖ͬͯɺLab QueuingʹೖΓɺॱ൪
    ͕དྷΔͱΞϓϦ௨஌Ͱݺͼग़ͯ͘͠ΕΔ
    • [New] Expanding to JapanͷΑ͏ͳɺϦʔδϣϯຖͷάϩʔεʹϑΥʔΧεͨ͠Lab͕ొ৔
    • SwiftUI΍iPad Apps for Mac౳ͷ৽ొ৔Lab͕ଟ͍ͨΊɺUIKit and Xxxͱ͍ͬͨUIKitͰ͢Β๊
    ͖߹Θ͕ͤଟ͘ͳͬͨ
    • ൒ެࣜʁεςοΧʔΛ഑͍ͬͯͨΓͨ͠
    • SwiftUI
    • Swift Package
    • and more

    View Slide

  7. WWDC19/Labs/Technology
    Accelerate Lab
    Accessibility Lab
    AirPlay Lab
    App Distribution and Device Management Lab
    App Store Connect and TestFlight Lab
    AppKit and Combine Lab
    AppKit Lab
    Apple Podcasts Lab
    Apple Search Ads Lab
    AR Quick Look and Reality Composer Lab
    ARKit Lab
    Audio Lab
    AVFoundation Lab
    AVKit Lab
    Building, Signing, and Distributing Lab
    Business Chat Integration and iMessage App Lab
    CallKit, VOIP Pushes and Identity Lookup Lab
    Camera Capture Lab
    CarPlay Lab
    ClassKit and Education Technologies Lab
    Contacts and EventKit Lab
    Core Animation and Quartz 2D Lab
    Core Bluetooth Lab
    Core Data and CloudKit Lab
    Core Data Lab
    Core Haptics Lab
    Core Image Lab
    Core Location Lab
    Core Motion Lab
    Core NFC Lab
    Core NFC, Apple Pay & Wallet Lab
    Core OS Lab
    Core Spotlight and Search Lab
    Documents, File Management and Quick Look Lab
    Documents, File Management and Quick Look Lab
    Feedback Assistant Lab
    File Systems Lab
    Foundation and Combine Lab
    Game Center Lab
    Game Controllers Lab
    Getting Started with Xcode Lab
    Health and Fitness Technologies Lab
    HomeKit Lab
    HTTP Live Streaming Lab
    iCloud and CloudKit Lab
    In-App Purchases & Subscriptions Lab
    Installer Lab
    Interface Builder and Auto Layout Lab
    Internationalization Lab
    iPad Apps for Mac Lab
    LLVM Compiler, Objective-C, C++, and Linking Lab
    Mac App Notarization Lab
    Machine Learning Lab
    MapKit, MapKitJS, and Indoor Location Lab
    Metal for Machine Learning and Ray Tracing Lab
    Metal for Pro Apps Lab
    Metal Lab
    Metal Optimization Lab
    Monetizing with Subscriptions
    MusicKit Lab
    Networking Lab
    New to Apple Platforms Lab
    Notifications Lab
    Performance, Power, Crashes, and Debugging Lab
    PhotoKit & Photos Extensions Lab
    Privacy Lab
    RealityKit and Reality Composer Lab
    ReplayKit Lab
    ResearchKit and CareKit Lab
    Safari, WebKit, and Authentication Services Lab
    SceneKit Lab
    Security Lab
    Sign In with Apple Lab
    Simulator, Testing, and Continuous Integration Lab
    Siri Shortcuts and SiriKit Lab
    Siri Shortcuts Lab
    SiriKit and Shortcuts Lab
    SiriKit, Shortcuts, and Siri Event Suggestions Lab
    Speech Recognition Lab
    SpriteKit Lab
    Swift Open Hours
    Swift Packages Lab
    Swift Playgrounds Lab
    SwiftUI Lab
    Text, Fonts, and SF Symbols Lab
    tvOS Lab
    UIKit and Collection Lab
    UIKit and Dark Mode Lab
    UIKit and Multitasking Lab
    UIKit and PencilKit Lab
    USD and usdz Lab
    watchOS Independence Lab
    watchOS Lab
    watchOS Runtime Lab
    Xcode Open Hours
    ܭ95
    * ׬શҰகͰॏෳআڈ

    View Slide

  8. • Accessibility Design Lab
    • App Icon and SF Symbols Design Lab
    • Design Lab
    • Sire Design Lab
    • watchOS Design Lab
    WWDC19/Labs/User Interface Design
    ܭ5
    * ׬શҰகͰॏෳআڈ

    View Slide

  9. Expanding to Japan
    Expanding to Korea
    Expanding to Taiwan
    Expanding to the Middle East
    Expanding to the United States
    Export Compliance By Appointment Lab
    Getting Started with Apple Search Ads
    Getting Started with Reporting & Analytics
    Getting Started with TestFlight
    Getting Started with the App Store Connect API
    Learn More About the Today Tab
    Monetizing with Subscriptions
    Pitch to Apple Arcade
    App Review By Appointment Lab
    App Store Commerce & Features By Appointment Lab
    App Store Connect By Appointment Lab
    Apple Developer Program Support By Appointment Lab
    Apple Marketing Communications By Appointment Lab
    Apple Search Ads By Appointment Lab
    Best Practices for Apple Search Ads
    Business & Marketing By Appointment Lab
    Commerce Engineering & Technologies By Appointment Lab
    Discuss Your App with App Review
    Expanding to Canada
    Expanding to China
    Expanding to Europe
    WWDC19/Labs/App Store
    ܭ26
    * ׬શҰகͰॏෳআڈ

    View Slide

  10. yutailang0119͕ߦ͖ͬͯͨ

    View Slide

  11. https://github.com/yutailang0119/ProgressSpinnerKit/pull/2
    • yutailang0119/ProgressSpinnerKit ͷSwift 5Խ
    • SwiftPMύοέʔδΛ swift-5.0.1-RELEASE ʹΞοϓσʔτ͢Δͱɺςετ
    ͸௨Δ͕ɺ࣮ߦ͢ΔͱΫϥογϡ͢Δ
    • SwiftPMͩ͠ɺAnkit (SwiftPMͷίΞϝϯςφʔ @Apple) ʹฉ͘ͱ͍͍Αͱ
    LabͷγϑτΛڭ͑ͯ΋Βͬͨ

    View Slide

  12. Environment
    $ swift --version
    Apple Swift version 5.0.1 (swiftlang-1001.0.82.4 clang-1001.0.46.5)
    Target: x86_64-apple-darwin18.6.0
    $ xcrun --find swift
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
    Package.swift
    // swift-tools-version:4.2
    // The swift-tools-version declares the minimum version of Swift required to build this package.
    import PackageDescription
    let package = Package(
    name: "ProgressSpinnerKit",
    products: [
    .library(name: "ProgressSpinnerKit", targets: ["ProgressSpinnerKit"]),
    ],
    dependencies: [
    .package(url: "https://github.com/apple/swift-package-manager.git", from: "0.3.0"),
    ],
    targets: [
    .target(name: "ProgressSpinnerKit", dependencies: ["Utility"]),
    .testTarget(name: "ProgressSpinnerKitTests", dependencies: ["ProgressSpinnerKit"]),
    .target(name: "Demo", dependencies: ["ProgressSpinnerKit"]),
    ]
    )
    ProgressSpinnerKit/Demo Expected Behavior

    View Slide

  13. Environment
    $ swift --version
    Apple Swift version 5.0.1 (swiftlang-1001.0.82.4 clang-1001.0.46.5)
    Target: x86_64-apple-darwin18.6.0
    $ xcrun --find swift
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
    Package.swift
    // swift-tools-version:5.0
    // The swift-tools-version declares the minimum version of Swift required to build this package.
    import PackageDescription
    let package = Package(
    name: "ProgressSpinnerKit",
    products: [
    .library(name: "ProgressSpinnerKit", targets: ["ProgressSpinnerKit"]),
    ],
    dependencies: [
    .package(url: "https://github.com/apple/swift-package-manager.git", .revision("swift-5.0.1-
    RELEASE")),
    ],
    targets: [
    .target(name: "ProgressSpinnerKit", dependencies: ["SPMUtility"]),
    .testTarget(name: "ProgressSpinnerKitTests", dependencies: ["ProgressSpinnerKit"]),
    .target(name: "Demo", dependencies: ["ProgressSpinnerKit"]),
    ]
    )
    ProgressSpinnerKit/Demo Fatal error
    bash-3.2$ make demo
    swift run Demo
    default:


    Stop
    box1:

    Fatal error: Attempted to read an unowned reference but object 0x7fd6fb40d470
    was already deallocatedmake: *** [demo] Abort trap: 6

    View Slide

  14. OutputByteStream͕ݪҼͩͱਪଌ͚ͨ͠Ͳɺ
    ৄ͘͠ͳ͍͔ΒΘ͔Βͳ͍

    View Slide

  15. Swift Open Hours

    View Slide

  16. Swift Open Hours
    • SwiftPMͷ͜ͱͩ͠ɺAnkit (SwiftPMͷίΞϝϯςφʔ @Apple) ʹฉ͘ͱ͍
    ͍ΑͱLabͷγϑτΛڭ͑ͯ΋Βͬͯɺࠓ͍Δͱͷ͜ͱͳͷͰ͙͢ʹߦͬͨ
    • SPMUtilityͷ͜ͱͰ࣭໰͕͋Δͱݴ͏ͱɺAnkitʹܨ͍Ͱ΋Β͑ͨ
    • apple/swift-package-manager Ͱ͍ͭ΋ݟΔɺ͋ͷAnkitͩ!!!

    View Slide

  17. ࠷ॳʹ࿩ͨ͜͠ͱ
    • Swift CLI༻ͷProgressSpinnerϥΠϒϥϦΛ࡞͍ͬͯΔ
    • Success/FailureͷDemoΛݟͤΔ
    • SwiftPMͷґଘόʔδϣϯΛΞοϓσʔτ͢ΔͱɺΫϥογϡ͢ΔΑ͏ʹ
    ͳͬͯ͠·ͬͯɺ͜Εͷमਖ਼ํ๏͕Θ͔Βͳ͍͔ΒΞυόΠεΛ͍ͩ͘͞
    • ͢ͰʹGitHub্ʹPull RequestΛग़͓͍ͯͨ͠΋ͷ΋ݟͤͨ

    View Slide

  18. Ankit < ͡Ό͋ɺҰॹʹݟͯΈΑ͏

    View Slide

  19. ϖΞϓϩ։࢝
    • ϖΞϓϩܗࣜͰɺ͋ͨΓΛ͚͍ͭͯͬͯ͡ΈΔ
    • ݴΘΕΔ͕··ʹλΠϓͨ͠Γɺ͜͏ʁͬͯฉ͖ͳ͕Βߟ͑Λॻ͍ͯΈͨΓ
    • 20෼͘Β͍͔͚ͯɺແࣄղܾͨ͠
    • https://github.com/yutailang0119/ProgressSpinnerKit/pull/2/commits/
    e45916ad07cae8973d2182f578c6a8e3108daeff

    View Slide

  20. ݪҼ͸ਪଌ௨ΓOutputByteStreamͰɺ
    SwiftPMͰͷInterface͕มߋ͞Ε͍ͯͨ͜ͱ
    (͍ͭͰʹผͷόά΋मਖ਼Ͱ͖ͨ)

    View Slide

  21. ͦͷଞͷLab
    • Swift Packages Lab
    • XcodeͰϩʔΧϧPackageͷґଘΛ௥Ճ͍ͨ࣌͠Ͳ͏͢Δͷʁ
    • dSYM͸Ͳ͏ʹ͔ѻ͑Δʁ
    • SwiftUI Lab, Xcode Open Hours

    View Slide

  22. ·ͱΊ

    View Slide

  23. https://twitter.com/yutailang0119/status/1137062817159307264

    View Slide

  24. https://twitter.com/yutailang0119/status/1137063999688757249

    View Slide

  25. https://twitter.com/yutailang0119/status/1136680641238409216

    View Slide

  26. &OKPZ88%$ 5IBOLT
    w NVUBZVUBSP!HNBJMDPN
    w IUUQTUXJUUFSDPNZVUBJMBOH
    w IUUQTHJUIVCDPNZVUBJMBOH

    View Slide