LoginSignup
62
42

More than 3 years have passed since last update.

【WWDC20】SwiftUIの新規追加要素まとめ

Last updated at Posted at 2020-06-23

公開差分から新規追加になってるものだけ引っ張って来て、概要だけをDeepLにかけて記載整理している記事です。

「へ〜そんなもの追加されてるんだ〜」と3分ぐらいでざっくり眺めて、要素の詳細は各種ドキュメントを参照するような読み方を想定しています。かなり要素は増えていますね。40以上あります。

※「各種ドキュメントの情報は一般公開されているのでNDAに抵触しない」という解釈のもの記載しています。
※ beta1時点での情報です。

App Structure and Behavior

App

アプリの構造や動作を表す型

protocol App
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

Scene

システムが管理するライフサイクルを持つアプリのユーザーインターフェースの一部

protocol Scene
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

WindowGroup

同じように構成されたWindowの群を提示するScene

struct WindowGroup<Content> where Content : View
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

DocumentGroup

ドキュメントの開封・作成・保存をサポートできるシーン

struct DocumentGroup<Document, Content> where Content : View
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+

Settings

アプリの設定を閲覧・変更するためのインターフェースを提示するシーン

struct Settings<Content> where Content : View
Availavitity
iOS 14.0+
Mac Catalyst 14.0+

WKNotificationScene

指定されたカテゴリのリモート通知またはローカル通知を受信した際に表示されるシーン

struct WKNotificationScene<Content, Controller> where Content : View, Controller : WKUserNotificationHostingController<Content>
Availavitity
watchOS 7.0+

Widget

ホーム画面や通知センターに表示するウィジェットの設定と内容

protocol Widget
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+

WidgetBundle

1つのウィジェット拡張機能から複数のウィジェットを公開するために使われるコンテナ

Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+

ImportFilesAction

ファイルのインポート機能を提供

struct ImportFilesAction
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+

ExportFilesAction

ファイルをエクスポートする機能を提供

struct ExportFilesAction
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+

OpenURLAction

URL を開く機能を提供

struct OpenURLAction
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

Views and Controls

TextEditor

長文テキストを表示・編集できるビュー

struct TextEditor
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+

SignInWithAppleButton

ユーザーがApple IDを使ってサインインできるようにするためにインターフェースに追加するコントロール

struct SignInWithAppleButton
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+

Menu

アクションのメニューを表示するためのコントロール

struct Menu<Label, Content> where Label : View, Content : View
Availavitity
macOS 11.0+

ColorPicker

システムカラーピッカーのUIから色を選択するためのコントロール。

struct ColorPicker<Label> where Label : View
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+

ProgressView

タスクの完了に向けての進捗状況を示すビュー

struct ProgressView<Label> where Label : View
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

Gauge(ゲージ)

範囲内の値を表示するビュー

struct Gauge<Label, CurrentValueLabel, BoundsLabel, MarkedValueLabels> where Label : View, CurrentValueLabel : View, BoundsLabel : View, MarkedValueLabels : View
Availavitity
watchOS 7.0+

Label

ユーザーインターフェース項目の標準的なラベルで、タイトル付きのアイコンで構成されている

struct Label<Title, Icon> where Title : View, Icon : View
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

Link

URL に遷移するためのコントロール

struct Link<Label> where Label : View
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

ScaledMetric

数値をスケーリングする動的プロパティ(DynamicProperty protocolではない)

@propertyWrapper struct ScaledMetric<Value> where Value : BinaryFloatingPoint
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

View Layout and Presentation

LazyHStack

水平方向に成長するラインに子を配置し、必要に応じてアイテムを作成するビュー

struct LazyHStack<Content> where Content : View
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

LazyVStack

縦方向に成長するラインに子を配置し、必要に応じてアイテムを作成するビュー

struct LazyVStack<Content> where Content : View
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

LazyHGrid

水平方向に成長するグリッドに子ビューを配置し、必要に応じてアイテムを作成するコンテナビュー

struct LazyHGrid<Content> where Content : View
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

LazyVGrid

子ビューを縦方向に成長するグリッドに配置し、必要に応じてアイテムを作成するコンテナビュー

struct LazyVGrid<Content> where Content : View
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

GridItem

行や列などの単一のグリッド項目の説明

struct GridItem
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

ScrollViewReader

その子が、その子の中のスクロール可能なビューをターゲットとする ScrollViewProxy の関数として定義されているビュー

@frozen struct ScrollViewReader<Content> where Content : View
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

ScrollViewProxy

ビュー階層内のスクロール可能なビューをプログラムでスクロールできるようにするプロキシ値

struct ScrollViewProxy
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

OutlineGroup

ツリー構造化された識別されたデータの基礎となるコレクションから、オンデマンドでビューと開示グループを計算する構造

struct OutlineGroup<Data, ID, Parent, Leaf, Subgroup> where Data : RandomAccessCollection, ID : Hashable
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+

DisclosureGroup

開示制御の状態に基づいて、別のコンテンツビューを表示または非表示にするビュー

struct DisclosureGroup<Label, Content> where Label : View, Content : View
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+

Drawing and Animation

ContainerRelativeShape

現在のコンテナ形状のインセット版に置き換えられる形状。コンテナ形状が定義されていない場合は、矩形に置き換えられる

@frozen struct ContainerRelativeShape
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

BackgroundStyle

現在のコンテキストに基づいて背景の正しい塗りつぶしを表示するスタイル

@frozen struct BackgroundStyle
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

Framework Integration

NSApplicationDelegateAdaptor

AppKitからデリゲートを提供するためにAppで使用されるプロパティラッパー

@propertyWrapper struct NSApplicationDelegateAdaptor<DelegateType> where DelegateType : NSObject, DelegateType : NSApplicationDelegate
Availavitity
macOS 11.0+

UIApplicationDelegateAdaptor

UIKitからデリゲートを提供するためにAppで使用されるプロパティラッパー

@propertyWrapper struct UIApplicationDelegateAdaptor<DelegateType> where DelegateType : NSObject, DelegateType : UIApplicationDelegate
Availavitity
iOS 14.0+
Mac Catalyst 14.0+
tvOS 14.0+

WKExtensionDelegateAdaptor

WatchKitからのデリゲートを提供するためにAppで使われるプロパティラッパー

@propertyWrapper struct WKExtensionDelegateAdaptor<DelegateType> where DelegateType : NSObject, DelegateType : WKExtensionDelegate
Availavitity
watchOS 7.0+

State and Data Flow

StateObject

観測可能なオブジェクトをインスタンス化するプロパティラッパー型

@frozen @propertyWrapper struct StateObject<ObjectType> where ObjectType : ObservableObject
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

FocusedBinding

フォーカスされたビューやその祖先の一つから状態バインディングを観察し、自動的にアンラップするための便利なプロパティラッパー

@propertyWrapper struct FocusedBinding<Value>
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

FocusedValue

フォーカスされたビューやその祖先の一つから値を観測するためのプロパティラッパー

@propertyWrapper struct FocusedValue<Value>
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

FocusedValues

フォーカスされたビューとその祖先によってエクスポートされた状態のコレクション

Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

FocusedValueKey

フォーカスされた値を公開したり、観測したりする際に使用する識別子型のプロトコル

protocol FocusedValueKey
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

AppStorage

UserDefaultsの値を反映し、そのユーザーデフォルトの値の変更に対するビューを無効にするプロパティのラッパー型

@frozen @propertyWrapper struct AppStorage<Value>
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

SceneStorage

シーンごとに永続的なストレージへの読み書きを行うプロパティラッパー型

@propertyWrapper struct SceneStorage<Value>
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+

Gestures

新規追加なし

Previews

PreviewContext

PreviewContext のコンテキストの指定

protocol PreviewContext
Availavitity
iOS 14.0+
macOS 11.0+
Mac Catalyst 14.0+
tvOS 14.0+
watchOS 7.0+
62
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
62
42