Slide 1

Slide 1 text

2024-06-26 Ebisu.mobile #6 STORES 株式会社 榎本健太 What's new in Xcode 16 ダイジェスト

Slide 2

Slide 2 text

自己紹介 2 榎本 健太 STORES 株式会社 STORES ブランドアプリチーム iOS エンジニア x.com/enomotok_ github.com/enomoto

Slide 3

Slide 3 text

この LT について 3 ● この LT では WWDC24 の What's new in Xcode 16 のセッション動画の概 要を簡単に紹介します ● 興味が湧いたらセッションを見てみてください! ● この資料の全ての情報はセッション動画の内容をリファレンスとしています ● https://developer.apple.com/videos/play/wwdc2024/10135/

Slide 4

Slide 4 text

Summary ● Edit ○ Code completion ○ Swift 6 ○ Previews ● Build ○ Explicit modules ● Debug ○ Thread performance checker ○ Unified backtrace view ● Test ○ Swift Testing ● Profile ○ Flame Graph 4

Slide 5

Slide 5 text

Edit

Slide 6

Slide 6 text

Code completion ● コード補完 ● Swift と Apple SDK 向けに特別にトレーニングされたモデルを使用している ため、より精度の高い補完が可能になる ● OS 組み込みのため高速。オフラインでも利用できる ● Xcode 16 を macOS Sequoia で使用する場合に利用可能 ● Apple Silicon が必須 ( Intel Mac では使えない) ● Xcode による自動更新で最新の SDK と言語仕様の変更に追従する 6 0:32

Slide 7

Slide 7 text

Swift 6 ● データ競合のコンパイル時のチェック ● Swift 6 language mode ● 機能を段階的に適用していくことが可能 7 1:01 Migrate your app to Swift 6 https://developer.apple.com/videos/play/wwdc2024/10169

Slide 8

Slide 8 text

Swift 6 ● Swift Compiler - Upcoming Features セクション 8 1:01 ref: https://developer.apple.com/videos/play/wwdc2024/10135/

Slide 9

Slide 9 text

@Previewable ● State など Property Wrappers に直接アタッチできるため、 Preview ブロッ クで直接使用できる ● これまで Preview を利用するためにラッパーの View を作っていたような シーンで、ラッパーが不要になる 9 3:07 Previewing your app’s interface in Xcode https://developer.apple.com/documentation/Xcode/previewing-your-apps-interface-in-xcode

Slide 10

Slide 10 text

@Previewable 10 3:07 ref: https://developer.apple.com/videos/play/wwdc2024/10135/

Slide 11

Slide 11 text

PreviewModifier ● プレビュー用のデータを定義・共有 ● キャッシュできる 11 4:00 Previewing your app’s interface in Xcode https://developer.apple.com/documentation/Xcode/previewing-your-apps-interface-in-xcode

Slide 12

Slide 12 text

PreviewModifier 12 4:00 ref: https://developer.apple.com/videos/play/wwdc2024/10135/

Slide 13

Slide 13 text

new execution engine Previewエンジンが新しくなって、高速になった 製品版と同じビルドを利用することで、preview 用のコピーを作る必要がなくなっ た 13 4:00

Slide 14

Slide 14 text

Build

Slide 15

Slide 15 text

Explicit modules ● 並行処理の向上 ● コンパイラの診断(Diagnostic)の向上 ● デバッグの高速化 ● C/Objective-C: デフォルトで有効 ● Swift: 設定を有効化する必要がある 15 6:21 Demystify explicitly built modules https://developer.apple.com/videos/play/wwdc2024/10171

Slide 16

Slide 16 text

Debug

Slide 17

Slide 17 text

Thread performance checker ● 新機能 ● 過剰なディスクへの書き込み検知 ● アプリ起動の遅延の検知 17 9:06 ref: https://developer.apple.com/videos/play/wwdc2024/10135/

Slide 18

Slide 18 text

Thread performance checker   18 9:06 ref: https://developer.apple.com/videos/play/wwdc2024/10135/

Slide 19

Slide 19 text

Unified backtrace view ● ブレークポイントから呼び出し元を追跡しやすくするための機能 ● スタックを追跡し、周囲のコードを見やすい UI で確認できる 19 10:33

Slide 20

Slide 20 text

Unified backtrace view   20 10:33 ref: https://developer.apple.com/videos/play/wwdc2024/10135/

Slide 21

Slide 21 text

New RealityKit Debugger 実行中のアプリのエンティティ階層のスナップショットをキャプチャし Xcode 内 で 3D で調査できるようになった 21 12:17 Break into the RealityKit debugger https://developer.apple.com/videos/play/wwdc2024/10172

Slide 22

Slide 22 text

New RealityKit Debugger 22 12:17 ref: https://developer.apple.com/videos/play/wwdc2024/10135/

Slide 23

Slide 23 text

Test

Slide 24

Slide 24 text

Swift Testing ● 新しいテスティングフレームワーク ● @Test アノテーションをつけることでテストケースと認識される ● #expect を使って期待値を記述する ● assert でテストが失敗した内容を詳しく調査できる ● テストを tag でグルーピングして、実行対象から除外したりできる 24 12:55 Meet Swift Testing https://developer.apple.com/videos/play/wwdc2024/10179/

Slide 25

Slide 25 text

Swift Testing 25 12:55 ref: https://developer.apple.com/videos/play/wwdc2024/10135/

Slide 26

Slide 26 text

Profile

Slide 27

Slide 27 text

Flame Graph Instruments で Time Profiler のログを解析するときに、スタックトレースを高度 に視覚化できる 27 18:41

Slide 28

Slide 28 text

Flame Graph 28 18:41 ref: https://developer.apple.com/videos/play/wwdc2024/10135/

Slide 29

Slide 29 text

Summary ● Edit ○ Code completion ○ Swift 6 ○ Previews ● Build ○ Explicit modules ● Debug ○ Thread performance checker ○ Unified backtrace view ● Test ○ Swift Testing ● Profile ○ Flame Graph 29

Slide 30

Slide 30 text

Thank you!