基礎から学ぶSwiftUI Xcode 12, iOS 14対応

Chapter 1, Section 2, Page 18, 「iOSアプリのプロジェクトを作成する」の手順2

  1. シートの上部のプラットフォーム選択肢から「iOS」を選択し、「Application」の「Single View App」を選択し、「Next」ボタンをクリックします。

Xcode 12では、「Single View App」テンプレートの名前が変更されました。Xcode 12では「Application」の「App」を選択してください。

プロジェクトテンプレートの選択

Chapter 1, Section 2, Page 18, 「iOSアプリのプロジェクトを作成する」の手順3

以下の様にプロジェクトのオプションが変更されています。

Xcode 11 Xcode 12
User Interface Interface
Include UI Tests Include Tests に統合
Include Unit Tests Include Tests に統合

「Life Cycle」は「UIKit App Delegate」を選択してください。

Life Cycle について

iOS 14からアプリ全体をすべてSwiftUIだけで記述できるようになりました。 iOS 13で導入されたSwiftUIは、 ContentView を表示する処理はUIKitで実装されています。この処理もSwiftUIだけで実装できるようにしたのが「SwiftUI App」です。

ライフサイクルによって、プロジェクトの初期構成が変わります。

UIKit App Delegate SwiftUI App
AppDelegate.swift 使いません。 HelloSwiftUIApp.swift を使います
SceneDelegate.swift 使いません。HelloSwiftUIApp.swift を使います
ContentView.swift 同じです
Assets.xcassets 同じです
LaunchScreen.storyboard 使いません
Info.plist 一部変わります(LaunchScreenに関する定義など)
Preview Assets.xcassets 同じです

生成される ContentView.swift の内容も少し異なります。次のように padding() モディファイアが使われたコードになります。

import SwiftUI struct ContentView: View { var body: some View { Text("Hello, world!") .padding() } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }

Chapter 1, Section 2, Page 22, 「アトリビュートインスペクタで文字列を編集する」の手順2

「Show Attributes Inspector」は「Attributes」というタイトルに変わっています。

Chapter 2, Section 3, Page 51

Xcode 12のプレビューやiOS 14では、ピッカーのラベルは表示されない動作に変わりました。

Pickerの表示例

Chapter 2, Section 3, Page 52

iOS 14では DatePicker のデザインが変わっています。

DatePickerの表示例

Chapter 2, Section 5, Page 75

iOS 14では「文字サイズを変更」が「テキストサイズを変更」に変わっています。

Chapter 2, Section 5, Page 76-77, ダイナミックタイプの指定方法

iOS 14には以下のプロパティが追加されています。

Chapter 2, Section 6, Page 85, 「ビューの背景色を変更する」の手順4

生成されるコードが変わっています。 View を任意の色に変更してください。

.background(Color.blue)

.background(View)

Chapter 2, Section 6, Page 86, 手順4

Xcode 12ではデフォルトで「Any, Dark」が選択されています。

Chapter 4, Section 19, Page 187, COLUMN

Xcode 12ではこの問題は修正されています。