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

WWDC Speedrun - AppDevCon, Amsterdam, June 2022

WWDC Speedrun - AppDevCon, Amsterdam, June 2022

Speedrunning a video game is trying to beat the game as quickly as possible. In WWDC terms, this means I shoved as much of WWDC into my face as time allowed in the 2.5 weeks between WWDC and AppDevCon. I share some of the neatest stuff that *didn’t* get mentioned in the Developer Tools State of the Union, and go a little deeper on some stuff that did.

Ellen Shapiro
PRO

June 24, 2022
Tweet

More Decks by Ellen Shapiro

Other Decks in Technology

Transcript

  1. WWDC SPEEDRUN
    APPDEVCON | AMSTERDAM | JUNE 2022
    ELLEN SHAPIRO | DESIGNATEDNERD.COM | @DESIGNATEDNERD

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. MACOS

    View Slide

  12. !

    View Slide

  13. ! ⛰

    View Slide

  14. VENTURA

    View Slide

  15. View Slide

  16. View Slide

  17. View Slide

  18. View Slide

  19. View Slide

  20. View Slide

  21. BRIEF META DIVERSION

    View Slide

  22. PLAN A: WATCH AS MANY
    WWDC VIDEOS AS I COULD

    View Slide

  23. PLAN A: WATCH AS MANY
    WWDC VIDEOS AS I COULD
    *- In three weeks without giving up my life

    View Slide

  24. I WAS FUNEMPLOYED

    View Slide

  25. I WAS FUNEMPLOYED
    I HAD PLENTY OF TIME

    View Slide

  26. View Slide

  27. !
    DO NOT
    TRY THIS AT HOME

    View Slide

  28. 35

    View Slide

  29. 35 / 120

    View Slide

  30. View Slide

  31. PLAN B: WATCH THE SESSIONS
    I WOULD NORMALLY WATCH WAY LATER

    View Slide

  32. FIND SOME
    !
    HIDDEN GEMS

    View Slide

  33. !

    View Slide

  34. OPINONS ARE MINE

    View Slide

  35. OPINONS ARE MINE
    (TAKE THEM WITH A BIG GRAIN OF SALT)

    View Slide

  36. !
    WEATHERKIT

    View Slide

  37. MEET WEATHERKIT
    https://developer.apple.com/wwdc22/10003

    View Slide

  38. HISTORICAL WEATHER
    https://developer.apple.com/wwdc22/10003

    View Slide

  39. View Slide

  40. View Slide

  41. View Slide

  42. View Slide

  43. SWIFT

    View Slide

  44. View Slide

  45. MEET DISTRIBUTED
    ACTORS IN SWIFT
    https://developer.apple.com/wwdc22/110356

    View Slide

  46. https://developer.apple.com/wwdc22/110356

    View Slide

  47. START WITH LOCAL
    DISTRIBUTED ACTORS
    https://developer.apple.com/wwdc22/110356

    View Slide

  48. ACTOR SYSTEM
    https://developer.apple.com/wwdc22/110356

    View Slide

  49. ACTOR SYSTEM?
    https://developer.apple.com/wwdc22/110356

    View Slide

  50. https://developer.apple.com/wwdc22/110356

    View Slide

  51. Holy shit, this seems complicated and full
    of giant holes where stuff can fail or
    block if you're not careful
    https://developer.apple.com/wwdc22/110356

    View Slide

  52. WHAT'S NEW IN
    SWIFT-DOCC
    https://developer.apple.com/wwdc22/110368

    View Slide

  53. STATIC PUBLISHING
    https://developer.apple.com/wwdc22/110368

    View Slide

  54. View Slide

  55. !

    View Slide

  56. https://developer.apple.com/wwdc22/110368

    View Slide

  57. https://developer.apple.com/wwdc22/110368

    View Slide

  58. https://developer.apple.com/wwdc22/110368

    View Slide

  59. https://developer.apple.com/wwdc22/110368

    View Slide

  60. !
    SPM PLUGINS

    View Slide

  61. View Slide

  62. View Slide

  63. MEET SWIFT PACKAGE PLUGINS
    +
    CREATE SWIFT PACKAGE PLUGINS
    https://developer.apple.com/wwdc22/110359 || https://developer.apple.com/wwdc22/110401

    View Slide

  64. CUSTOM COMMAND PLUGINS
    https://developer.apple.com/wwdc22/110359 || https://developer.apple.com/wwdc22/110401

    View Slide

  65. func performCommand(context: PluginContext,
    arguments: [String]) async throws
    https://developer.apple.com/wwdc22/110359 || https://developer.apple.com/wwdc22/110401

    View Slide

  66. View Slide

  67. BUILD TOOL PLUGINS

    View Slide

  68. LIMITATIONS

    View Slide

  69. LIMITATIONS
    ▸ No network access

    View Slide

  70. LIMITATIONS
    ▸ No network access
    ▸ Cannot write outside the plugin's work directory by default

    View Slide

  71. LIMITATIONS
    ▸ No network access
    ▸ Cannot write outside the plugin's work directory by default
    ▸ Can ask permission to write within package's root directory

    View Slide

  72. View Slide

  73. View Slide

  74. LIMITATIONS
    ▸ No network access
    ▸ Cannot write outside the plugin's work directory by default
    ▸ Can ask permission to write within package's root directory

    View Slide

  75. LIMITATIONS
    ▸ No network access
    ▸ Cannot write outside the plugin's work directory by default
    ▸ Can ask permission to write within package's root directory
    ▸ Cannot show UI

    View Slide

  76. View Slide

  77. View Slide

  78. TESTING

    View Slide

  79. View Slide

  80. AUTHOR FAST AND RELIABLE TESTS
    FOR XCODE CLOUD
    https://developer.apple.com/wwdc22/110361

    View Slide

  81. XCODE CLOUD-SPECIFIC TIPS
    https://developer.apple.com/wwdc22/110361

    View Slide

  82. XCODE CLOUD-SPECIFIC TIPS
    ▸ Variables set in Xcode Cloud take precedence
    https://developer.apple.com/wwdc22/110361

    View Slide

  83. https://developer.apple.com/wwdc22/110361

    View Slide

  84. XCODE CLOUD-SPECIFIC TIPS
    ▸ Variables set in Xcode Cloud take precedence
    ▸ Tests are run on a fresh simulator every time
    https://developer.apple.com/wwdc22/110361

    View Slide

  85. XCODE CLOUD-SPECIFIC TIPS
    ▸ Variables set in Xcode Cloud take precedence
    ▸ Tests are run on a fresh simulator every time
    ▸ Xcode itself is tested on Xcode Cloud
    https://developer.apple.com/wwdc22/110361

    View Slide

  86. AUTHOR FAST AND RELIABLE TESTS
    FOR XCODE CLOUD ANY CI
    https://developer.apple.com/wwdc22/110361

    View Slide

  87. https://developer.apple.com/wwdc22/110361

    View Slide

  88. TESTING PROTIPS
    https://developer.apple.com/wwdc22/110361

    View Slide

  89. TESTING PROTIPS
    ▸ Do all configuration in setUp, don't rely on tearDown
    https://developer.apple.com/wwdc22/110361

    View Slide

  90. TESTING PROTIPS
    ▸ Do all configuration in setUp, don't rely on tearDown
    ▸ Prefer mocking tests of external services to retry on failure
    https://developer.apple.com/wwdc22/110361

    View Slide

  91. TESTING PROTIPS
    ▸ Do all configuration in setUp, don't rely on tearDown
    ▸ Prefer mocking tests of external services to retry on failure
    ▸ Create separate test plans for PRs vs full test suite
    https://developer.apple.com/wwdc22/110361

    View Slide

  92. TESTING PROTIPS
    ▸ Do all configuration in setUp, don't rely on tearDown
    ▸ Prefer mocking tests of external services to retry on failure
    ▸ Create separate test plans for PRs vs full test suite
    ▸ Prefer async/await to waitForExpectations
    https://developer.apple.com/wwdc22/110361

    View Slide

  93. TESTING PROTIPS
    ▸ Do all configuration in setUp, don't rely on tearDown
    ▸ Prefer mocking tests of external services to retry on failure
    ▸ Create separate test plans for PRs vs full test suite
    ▸ Prefer async/await to waitForExpectations
    ▸ Add execution time allowances to kill infinite loops
    https://developer.apple.com/wwdc22/110361

    View Slide

  94. View Slide

  95. WHAT'S NEW IN THE
    PHOTOS PICKER
    https://developer.apple.com/wwdc22/10023

    View Slide

  96. https://developer.apple.com/wwdc22/10023

    View Slide

  97. https://developer.apple.com/wwdc22/10023

    View Slide

  98. View Slide

  99. View Slide

  100. View Slide

  101. DESIGN

    View Slide

  102. View Slide

  103. ADOPT VARIABLE COLOR
    IN SF SYMBOLS
    https://developer.apple.com/wwdc22/10158

    View Slide

  104. https://developer.apple.com/wwdc22/10158

    View Slide

  105. View Slide

  106. View Slide

  107. WRITING FOR INTERFACES
    https://developer.apple.com/wwdc22/10037

    View Slide

  108. WRITING FOR INTERFACES
    HOW TO MAKE YOUR APP'S LANGUAGE LESS MADDENINGLY VERBOSE
    https://developer.apple.com/wwdc22/10037

    View Slide

  109. WRITING FOR INTERFACES
    HOW TO MAKE YOUR APP'S TEXT EASIER TO READ
    https://developer.apple.com/wwdc22/10037

    View Slide

  110. WRITING FOR INTERFACES
    HOW TO WRITE SIMPLE, CLEAR
    COPY
    https://developer.apple.com/wwdc22/10037

    View Slide

  111. QUICK HITS

    View Slide

  112. WHAT'S NEW IN WKWEBVIEW
    https://developer.apple.com/wwdc22/10049

    View Slide

  113. WHAT'S NEW IN WKWEBVIEW
    ▸ Remote debugger now works with all browser types
    https://developer.apple.com/wwdc22/10049

    View Slide

  114. WHAT'S NEW IN APP STORE CONNECT
    https://developer.apple.com/wwdc22/10043

    View Slide

  115. WHAT'S NEW IN APP STORE CONNECT
    ▸ Version 2.0 of the App Store Connect API
    https://developer.apple.com/wwdc22/10043

    View Slide

  116. View Slide

  117. DISCOVER BENCHMARKS
    IN APP ANALYTICS
    https://developer.apple.com/wwdc22/10044

    View Slide

  118. DISCOVER BENCHMARKS IN APP ANALYTICS
    ▸ Compare your app's performance to other ones in your category.
    https://developer.apple.com/wwdc22/10044

    View Slide

  119. WHAT'S NEW IN APP CLIPS
    https://developer.apple.com/wwdc22/10097

    View Slide

  120. https://developer.apple.com/wwdc22/10097

    View Slide

  121. MEET TRANSFERABLE
    https://developer.apple.com/wwdc22/10062

    View Slide

  122. MEET TRANSFERABLE
    ▸ Specify how data is passed between apps
    https://developer.apple.com/wwdc22/10062

    View Slide

  123. !
    APPLE KREMLINOLOGY

    View Slide

  124. https://developer.apple.com/wwdc22/10049

    View Slide

  125. AUGMENTED
    REALITY

    View Slide

  126. View Slide

  127. View Slide

  128. View Slide

  129. CREATE PARAMETRIC
    3D ROOM SCANS WITH ROOMPLAN
    https://developer.apple.com/wwdc22/10127

    View Slide

  130. https://developer.apple.com/wwdc22/10127

    View Slide

  131. https://developer.apple.com/wwdc22/10127

    View Slide

  132. !

    View Slide

  133. ! "

    View Slide

  134. !

    View Slide

  135. BRING YOUR WORLD
    INTO AUGMENTED REALITY
    https://developer.apple.com/wwdc22/10128

    View Slide

  136. https://developer.apple.com/wwdc22/10128

    View Slide

  137. View Slide

  138. View Slide

  139. !

    View Slide

  140. !
    AWARDS

    View Slide

  141. !
    MOST PUNS

    View Slide

  142. !
    MOST PUNS
    GET MORE MILEAGE OUT OF
    YOUR APP WITH CARPLAY
    https://developer.apple.com/videos/play/wwdc2022/10016/

    View Slide

  143. !
    BEST JOKE DELIVERY

    View Slide

  144. BEST JOKE DELIVERY
    https://developer.apple.com/videos/play/wwdc2022/110354/

    View Slide

  145. View Slide

  146. !
    BEST EXAGGERATED PAUSE

    View Slide

  147. !
    BEST EXAGGERATED PAUSE
    WRITING FOR INTERFACES
    https://developer.apple.com/wwdc22/10037

    View Slide

  148. BEST EXAGGERATED PAUSE
    https://developer.apple.com/wwdc22/10037

    View Slide

  149. !
    BEST EXCUSE TO WORK
    YOUR HOBBY INTO A VIDEO

    View Slide

  150. View Slide

  151. View Slide

  152. !
    BEST EXCUSE TO WORK
    YOUR HOBBY INTO A VIDEO

    View Slide

  153. !
    BEST EXCUSE TO WORK YOUR HOBBY INTO A VIDEO
    https://developer.apple.com/wwdc22/10128

    View Slide

  154. !
    BEST EXCUSE TO WORK YOUR HOBBY INTO A VIDEO
    https://developer.apple.com/wwdc22/10128

    View Slide

  155. !
    BEST EMOJI ABUSE

    View Slide

  156. !
    BEST EMOJI ABUSE
    CREATE SWIFT PACKAGE MANAGER PLUGINS
    https://developer.apple.com/wwdc22/110401

    View Slide

  157. https://developer.apple.com/wwdc22/110401

    View Slide

  158. https://developer.apple.com/wwdc22/110401

    View Slide

  159. View Slide

  160. OBLIGATORY SUMMARY SLIDE

    View Slide

  161. OBLIGATORY SUMMARY SLIDE
    ▸ Trying to watch 120 WWDC videos in 2.5 weeks is not possible

    View Slide

  162. OBLIGATORY SUMMARY SLIDE
    ▸ Trying to watch 120 WWDC videos in 2.5 weeks is not possible
    ▸ There's tons of things never mentioned in the SOTU that will make
    your life easier

    View Slide

  163. OBLIGATORY SUMMARY SLIDE
    ▸ Trying to watch 120 WWDC videos in 2.5 weeks is not possible
    ▸ There's tons of things never mentioned in the SOTU that will make
    your life easier
    ▸ Apple is definitely trying to send messages through WWDC videos, if
    you know what to look for.

    View Slide

  164. View Slide

  165. DANK JULLIE WEL!

    View Slide