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

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.

C4861b1dfdf3bbb21faec4a1acdf183d?s=128

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
  2. None
  3. None
  4. None
  5. None
  6. None
  7. None
  8. None
  9. None
  10. None
  11. MACOS

  12. !

  13. ! ⛰

  14. VENTURA

  15. None
  16. None
  17. None
  18. None
  19. None
  20. None
  21. BRIEF META DIVERSION

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

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

    *- In three weeks without giving up my life
  24. I WAS FUNEMPLOYED

  25. I WAS FUNEMPLOYED I HAD PLENTY OF TIME

  26. None
  27. ! DO NOT TRY THIS AT HOME

  28. 35

  29. 35 / 120

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

    LATER
  32. FIND SOME ! HIDDEN GEMS

  33. !

  34. OPINONS ARE MINE

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

    SALT)
  36. ! WEATHERKIT

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

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

  39. None
  40. None
  41. None
  42. None
  43. SWIFT <GENERICS>

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

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

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

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

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

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

  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
  52. WHAT'S NEW IN SWIFT-DOCC https://developer.apple.com/wwdc22/110368

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

  54. None
  55. !

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

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

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

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

  60. ! SPM PLUGINS

  61. None
  62. None
  63. MEET SWIFT PACKAGE PLUGINS + CREATE SWIFT PACKAGE PLUGINS https://developer.apple.com/wwdc22/110359

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

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

  66. None
  67. BUILD TOOL PLUGINS

  68. LIMITATIONS

  69. LIMITATIONS ▸ No network access

  70. LIMITATIONS ▸ No network access ▸ Cannot write outside the

    plugin's work directory by default
  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
  72. None
  73. None
  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
  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
  76. None
  77. None
  78. TESTING

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

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

  82. XCODE CLOUD-SPECIFIC TIPS ▸ Variables set in Xcode Cloud take

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

  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
  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
  86. AUTHOR FAST AND RELIABLE TESTS FOR XCODE CLOUD ANY CI

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

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

  89. TESTING PROTIPS ▸ Do all configuration in setUp, don't rely

    on tearDown https://developer.apple.com/wwdc22/110361
  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
  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
  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
  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
  94. None
  95. WHAT'S NEW IN THE PHOTOS PICKER https://developer.apple.com/wwdc22/10023

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

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

  98. None
  99. None
  100. None
  101. DESIGN

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

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

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

  108. WRITING FOR INTERFACES HOW TO MAKE YOUR APP'S LANGUAGE LESS

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

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

  111. QUICK HITS

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

  113. WHAT'S NEW IN WKWEBVIEW ▸ Remote debugger now works with

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

  115. WHAT'S NEW IN APP STORE CONNECT ▸ Version 2.0 of

    the App Store Connect API https://developer.apple.com/wwdc22/10043
  116. None
  117. DISCOVER BENCHMARKS IN APP ANALYTICS https://developer.apple.com/wwdc22/10044

  118. DISCOVER BENCHMARKS IN APP ANALYTICS ▸ Compare your app's performance

    to other ones in your category. https://developer.apple.com/wwdc22/10044
  119. WHAT'S NEW IN APP CLIPS https://developer.apple.com/wwdc22/10097

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

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

  122. MEET TRANSFERABLE ▸ Specify how data is passed between apps

    https://developer.apple.com/wwdc22/10062
  123. ! APPLE KREMLINOLOGY

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

  125. AUGMENTED REALITY

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

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

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

  132. !

  133. ! "

  134. !

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

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

  137. None
  138. None
  139. !

  140. ! AWARDS

  141. ! MOST PUNS

  142. ! MOST PUNS GET MORE MILEAGE OUT OF YOUR APP

    WITH CARPLAY https://developer.apple.com/videos/play/wwdc2022/10016/
  143. ! BEST JOKE DELIVERY

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

  145. None
  146. ! BEST EXAGGERATED PAUSE

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

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

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

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

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

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

    https://developer.apple.com/wwdc22/10128
  155. ! BEST EMOJI ABUSE

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

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

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

  159. None
  160. OBLIGATORY SUMMARY SLIDE

  161. OBLIGATORY SUMMARY SLIDE ▸ Trying to watch 120 WWDC videos

    in 2.5 weeks is not possible
  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
  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.
  164. None
  165. DANK JULLIE WEL!