Xcode11の気になる新機能をざっくりまとめる

## はじめに

本稿は[Xcode 11 Beta Release Notes](https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes)を見て、筆者が独断と偏見と**拙劣な英語の読解能力**によって気になった機能を抜粋し書いてます。もし皆さんも「こんな機能あるのにスルーなのはおかしいだろ！」と言うものがありましたらコメントしてください。
※Swiftの新機能とかは割愛してます

## SwiftUI

今回のアップデートの目玉は間違いなく**SwiftUI**でしょう。
これまでSwiftが苦手としていたUIとコーディングのデータ連携部分が一気に楽になりました。
しかもUIもSwift構文を利用して書けるのでこれまでSwiftを利用していた方は違和感なく溶け込めると思います。
それにしても公式のチュートリアルが本当に充実していますね。何よりイケてます。

### 関連サイト

- [Xcode リリースノート -General-](https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes#3318291)
- [Xcode リリースノート -SwiftUI-](https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes#3319802)
- [SwiftUI（Apple公式）](https://developer.apple.com/xcode/swiftui/)
- [SwiftUI Tutorials（Apple公式）](https://developer.apple.com/tutorials/swiftui/)

## Debugging

デバッグ機能が結構増えたみたいです。以下、一部抜粋しています。

- デバッグ時に表示される内容の強化
- デバッグする際に環境（ネットワークや温度設定）などを設定できるようになった

開発する上でデバッグは必須なので機能が増えてくれるのは非常に嬉しいところです。

### 関連サイト

- [Xcode リリースノート -Debugging-](https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes#3318282)

## Signing and Distribution

どうやらあらゆるプラットフォームで利用できる新しい証明書が発行できるみたいです。既存の証明書も引き続き使えるそうなのでとりあえず問題ないとは思います。

### 関連サイト

- [Xcode リリースノート -Signing and Distribution-](https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes#3318312)

## Source Control

Git関連の新機能のお話です。以下、一部抜粋してます。

- ブランチの切り替えがより簡単になる
- クローンする際にブランチを指定することができる
- 履歴閲覧機能の強化

リリース前のアプリだと master ブランチにはプロジェクトを作成していない状態が多いので、クローンする際にブランチが選べるようになるのは地味に嬉しいですね。
（今まではコンソールでクローンして、ブランチ切り替えてからプロジェクトを開いてました）

### 関連サイト

- [Xcode リリースノート -Source Control-](https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes#3318301)

## Testing

テスト機能は大幅にパワーアップしてきましたね。以下、一部抜粋してます。

- SwiftUIのためのテスト機能を追加
- テストの構成、設定、などができる**Test Plan**機能が追加
- パフォーマンス測定用のテスト機能を追加

iOSアプリを作っているとテストは軽視されがち（大体はアーキテクチャが良くない）ですが、
こうやってAppleがテストに対して機能を強化するならせっかくなのでリファクタリングしますかね。

### 関連サイト

- [Xcode リリースノート -Testing-](https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes#3318283)

## その他リリースノート外で知った情報

### Swift Package Manager

以下見てる感じだとどうやらあらゆるプラットフォームに対してサポートされるみたいです。

>Swift Package Manager includes a build system that can build for macOS and Linux. Xcode 11 integrates with libSwiftPM to provide support for iOS, watchOS, and tvOS platforms.

- [Swift Package Manager（Github）](https://github.com/apple/swift-package-manager)

### What's New in Xcode 11

[What's New in Xcode 11](https://developer.apple.com/videos/play/wwdc2019/401/)はWWDC2019にてXcode11に関するセッションを抜き取った動画です。
リリースノートに書いていない（または私が読み切れていないか）内容がチラホラあったので、特に気になったものだけ抜粋します。

- ドキュメントコメントの改善
    - 引数を追加した場合に「Add Documentation」を押すと自動で追加される
    - 引数名をリネームするとドキュメントコメント内の引数名も自動で修正される
- ファイルの内容を変更した場合にdiffをみることができる

## 終わりに

WWDC2018はそこまで盛り上がらなかったけど、WWDC2019はかなり盛り上がりましたね。
SwiftUIに注目されがちですが、個人的にはテストの強化も嬉しいです。
今回に関してはこの記事に書いていること以外でも新しい機能が追加されすぎて追うのが大変です...。それもまた楽しいんですが。
ってか、リリースノートあんなに長いのになんでサイドメニューないの!?何が書いてあるかわからない謎のドキドキ感あったんですが！

関連サイトについてはまだ情報があまり出回っていないのでとりあえずリリースノートだけにしてますが、随時アップデートしていこうと思います。

とりあえず読んで聞いて思ったことは英語もっと勉強しなきゃということですね。