この記事はWWDC 2019、What's New in Xcode 11 のセッションを聞いて、新しいXcodeの特徴をざっくりまとめたものです。NDAの関係でXcodeのスクショは載せてません。セッションスライドが公開されたら、補助的にスライドのスクショを貼る予定ではいます。
※Xcode 11 betaを動かすにはmacOS10.14.4以上、すべての機能を試すためにはbeta版Catalinaが必要なようです。
ツール系ボタンのリニューアル
画面右上にあるボタンが追加、再編成されました。
![スクリーンショット 2019-06-23 18.40.37.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F100736%2Fb57a2c58-4e88-ebe0-3c2e-73351cd947bd.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=66bdf30d5552a5e0f9f553dc00af1c48)
このエリアでは
SwiftUIで組んだレイアウトのプレビューを見る
![スクリーンショット 2019-06-23 19.17.41.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F100736%2F535e7a4e-ee29-76df-c88a-4d5aac3c59bb.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=736b4b1badb9e0d5a202fd0309dad331)
コード画面を横や縦に分割して表示する(≠タブを増やす)
![スクリーンショット 2019-06-24 9.35.07.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F100736%2F6b939682-b32d-40a5-62db-9f197e97ba06.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=be6f64437ad18215b21c469f9043ef44)
minimapを表示する
![スクリーンショット 2019-06-24 9.35.52.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F100736%2F0d31fefa-40a9-eb79-4244-e8597a82ac2b.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=4990dd40d827979221f3f51518729f4e)
などをしたいときに触れることになります。minimapにマウスオーバーすると、メソッド名が表示されます。
リファクタ
メソッドの引数を増やした時、Add Documentationをクリックすると、ドキュメントコメントにその定義が自動で挿入される(下では引数にduratonを追加)
![スクリーンショット 2019-06-24 9.39.28.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F100736%2F9ee02679-e3c9-5a66-d9bf-3bbd4ce62e4a.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e491090e3bfc83cb7db83cbcdaecfdb2)
![スクリーンショット 2019-06-24 9.40.56.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F100736%2Fa5708dd6-b0d7-bc1d-00a4-b97d9a3994d6.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=54a31fbc8b87e9699d0fcc30048c8f2a)
変数名をrenameすると、その変数を使っている部分はもちろん、ドキュメントコメント内の変数名もリファクタされる
![スクリーンショット 2019-06-24 9.41.32.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F100736%2F36f124f3-d2e4-d2ee-cc8b-16953d5efaa3.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=41a635e69b4a137ea151195be0426b22)
今までは変更が入ると左に青いバーが表示されるだけだったが、Show changeを選択することで、変更前と変更後が上下に並列して表示される
![スクリーンショット 2019-06-24 9.42.31.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F100736%2Fecbc73c5-d0ec-5553-4832-256c2f03880d.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=653e9d7c1690db8ba735d1792e2dacae)
![スクリーンショット 2019-06-24 9.42.47.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F100736%2F6c655c85-9661-d09a-a4e2-1791f11d3b14.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=12d1246db833682d696103b6d79a26e7)
Swift Packageサポート
- XcodeのPROJECTにSwift Packagesタブが登場
- Swift Package内に限定して検索を行うことが可
その他Git関連
- Xcode上でStashができる
- Stashの差分もXcode上で確認可能
- その他History系の機能もパワーアップ
Storyboard
- (おそらくMac対応のチェックを入れていれば)Storyboard上でプレビューにMacが選べるように
- Dark Modeのプレビューが表示できる
- SFSymbolsの選択を右ペインで設定できる
- weight, sizeなどもGUIで設定可能
- ローカライズに応じたプレビュー表示が可能
- 例えば右ペインのImage Viewのimage欄は、今まで文字列しかプルダウンされなかったが、そこにサムネイルが表示されるようになる
- ダークモード用の画像を別で設定することができる(画像の1x, 2xのようなイメージ)
- ダークモード用にボタンの色を変えたいという場合も設定可
デバッグ
- Xcode上のGUIをいじって、リアルタイムにアクセシビリティの設定を変更、その動作確認が行える
- ネットワーク状態、端末の温度状態を設定して動作確認が行える
- シミュレータ上でMetalの動作確認が行える
- インストルメントで把握することができる項目が増えた