忙しい人向けの What's new in Swift - #WWDC20
パフォーマンス関連
バイナリサイズ減ったよ。
ランタイムが使用するメモリ減ったよ。
Swiftの標準ライブラリをFoundationより下の層に移動したよ。(であってる?)
改善点
より親切な修正提案・エラーメッセージになったよ。
コード補完がさらに賢くなって、
高速にもなったんだよ。
Xcodeでのインデント改善されたよ(guard-let とか)。
デバッグ時の型情報がより取得できて、変数ビューの信頼性が上がったよ。
プラットフォームサポート
5.3 で Windows が公式サポートされるよ。
AWS Lambda の公式ランタイムできたよ。
言語機能
SE-0279:Trailing Closure を末尾以外でも書けるようになったよ。
SE-0249:KeyPath を関数として渡せるようになったよ。
SE-0281:ライブリ提供者は static な main 関数を実装することで、
@main でエントリポイントを用意できるようになったよ。
SE-0269:Lifecycle的に問題ない場合、クロージャで self を省略できるようになったよ。
SE-0276:catch で複数のパターンにマッチできるようになったよ。
SE-0266:enum で Comparable も自動実装できるようになったよ。
SE-0280:Protocol 上の static な var / func について、enum の case でも実装できるようになったよ。
SwiftUI の Function Builders で if / if-else に加え、if-let / switch も利用できるようになったよ。
Protocol から推論できる場合、Builder 用の属性(ここでは@SceneBuilder)を省略可能になったよ。
Float16 がサポートされたよ。
Frameworks
System は OS の低レベルAPIをラップしたものだよ。
OSLog は高速になって、API も改善されたよ。
Swift Numerics は算術計算用のライブラリだよ。
ArgumentParser は CLI を作る時に便利だよ。
StandardLibraryPreview は公式リリースされてない Swift の機能を利用できる仕組みで、SE-0270 から対応してるよ。
免責
・本記事は公開情報のみに基づいて作成されています。
・要約(意訳)のみなので、詳細はセッション動画をご確認ください。