Lab of WWDC19

Lab of WWDC19

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

D36d6bab8f1e0ff4bb3377571e5f7dcd?s=128

Yutaro Muta

June 12, 2019
Tweet

Transcript

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

  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 ?
  3. WWDC/Labs

  4. WWDC/Labs • Technology΍User InterfaceΛ࢝ΊɺAppleͷΤϯδχΞɺσβΠφʔɺଞ৬ छͷ֤ΤΩεύʔτ͕ొ৔ͯ͠ɺ࣭໰ʹ౴͑ͯ͘ΕͨΓɺఏҊͰ͖ͨΓ͢Δ • ͦͷ৔ʹߦ͚͹࣭໰Ͱ͖ΔLab or நબ༧໿͕ඞཁͳLab •

    WWDCݱ஍ʹߦ͘ͳΒɺઈରʹ଍ΛӡΜͩํ͕͍͍ͱݴΘΕΔ͋Ε • ηογϣϯͷཪͳͷͰɺ೰ΉͳΒLabʹߦ͚ (ηογϣϯ͸ಈըͰݟΕΔ) • ηογϣϯͱಉ͘͡ɺKeynoteޙʹ൑໌͢ΔLab΋ଟ਺͋Δ • ΋ͪΖΜӳޠ
  5. WWDC19/Labs

  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
  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 * ׬શҰகͰॏෳআڈ
  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 * ׬શҰகͰॏෳআڈ
  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 * ׬શҰகͰॏෳআڈ
  10. yutailang0119͕ߦ͖ͬͯͨ

  11. https://github.com/yutailang0119/ProgressSpinnerKit/pull/2 • yutailang0119/ProgressSpinnerKit ͷSwift 5Խ • SwiftPMύοέʔδΛ swift-5.0.1-RELEASE ʹΞοϓσʔτ͢Δͱɺςετ ͸௨Δ͕ɺ࣮ߦ͢ΔͱΫϥογϡ͢Δ

    • SwiftPMͩ͠ɺAnkit (SwiftPMͷίΞϝϯςφʔ @Apple) ʹฉ͘ͱ͍͍Αͱ LabͷγϑτΛڭ͑ͯ΋Βͬͨ
  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
  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
  14. OutputByteStream͕ݪҼͩͱਪଌ͚ͨ͠Ͳɺ ৄ͘͠ͳ͍͔ΒΘ͔Βͳ͍

  15. Swift Open Hours

  16. Swift Open Hours • SwiftPMͷ͜ͱͩ͠ɺAnkit (SwiftPMͷίΞϝϯςφʔ @Apple) ʹฉ͘ͱ͍ ͍ΑͱLabͷγϑτΛڭ͑ͯ΋Βͬͯɺࠓ͍Δͱͷ͜ͱͳͷͰ͙͢ʹߦͬͨ •

    SPMUtilityͷ͜ͱͰ࣭໰͕͋Δͱݴ͏ͱɺAnkitʹܨ͍Ͱ΋Β͑ͨ • apple/swift-package-manager Ͱ͍ͭ΋ݟΔɺ͋ͷAnkitͩ!!!
  17. ࠷ॳʹ࿩ͨ͜͠ͱ • Swift CLI༻ͷProgressSpinnerϥΠϒϥϦΛ࡞͍ͬͯΔ • Success/FailureͷDemoΛݟͤΔ • SwiftPMͷґଘόʔδϣϯΛΞοϓσʔτ͢ΔͱɺΫϥογϡ͢ΔΑ͏ʹ ͳͬͯ͠·ͬͯɺ͜Εͷमਖ਼ํ๏͕Θ͔Βͳ͍͔ΒΞυόΠεΛ͍ͩ͘͞ •

    ͢ͰʹGitHub্ʹPull RequestΛग़͓͍ͯͨ͠΋ͷ΋ݟͤͨ
  18. Ankit < ͡Ό͋ɺҰॹʹݟͯΈΑ͏

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

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

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

    SwiftUI Lab, Xcode Open Hours
  22. ·ͱΊ

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

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

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

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