SwiftUI

SwiftUIでは、Swiftを利用してすべてのAppleプラットフォーム向けに、驚くほど少ないコードで美しいアプリを構築できます。1つにまとまったツールとAPIを使用するだけで、あらゆるAppleデバイス向けに優れたユーザー体験を提供できます。

SwiftUIインターフェイスが表示されたMacBook Pro、iPad、iPhone。

SwiftUIの新機能

高度なアニメーション制御

アニメーションサポートが拡張され、洗練されたアニメーションを作成できます。フェーズを使用してアニメーションのシーケンスを作成したり、キーフレームを使用して複数のアニメーショントラックを作成したりできます。SwiftUIはユーザーのジェスチャーの速度をアニメーションに自動的に伝えるため、アプリでは自然で滑らかな動作を実現できます。

シンプルになったデータフロー

@Observableを使うと、ビューによってアクセスされているフィールドをSwiftUIが自動的に検出し、必要な場合のみ再描画を行うことでレンダリングを高速化します。

空間アプリの構築

visionOS向けにSwiftUIアプリを再コンパイルすると、ウインドウに奥行きや3Dオブジェクトを追加したり、ボリュームを表示できます。RealityViewを使うと、ビューやコントロールと一緒にRealityKitコンテンツを追加できます。SwiftUIとRealityKitを組み合わせることで、臨場感あるフルスペース体験を作り上げることもできます。

インタラクティブウィジェット

ButtonToggleを使ってインタラクティブなウィジェットを作成できます。ウィジェットはiPhoneのスタンバイ画面、iPadのロック画面、Macのデスクトップなど新しい場所に表示できます。SwiftUIにより、各種プラットフォームのコンテキストに合わせてウィジェットの色と間隔を調整できます。

SwiftDataのサポート

SwiftUIを使えば、わずか1行のコードでSwiftDataを簡単に使い始めることができます。@Modelを使ってモデル化されたデータは、SwiftUIで自動的に認識されます。@Queryは、ビューでフィルタリングされたデータやソートされたデータを効率的にフェッチし、データの変更に応じてビューを更新します。

拡張されたwatchOS API

watchOSアプリでSwiftUIコードをさらに活用しましょう。デジタルクラウンを使ったTabViewの縦方向スクロール、アダプティブバックグラウンドコンテナによる色の一致、新しいToolbarItemの配置によるエッジからエッジまでの表示を取り入れたり、NavigationSplitViewを活用して詳細なリストビューを構築したりできます。

新しいMapKit API

MapKitカメラ、注釈、地図モードなどを思いのままにコントロールできます。ウィジェット内にMapKitビューを配置することもできます。

新タイプのグラフとインタラクティブな機能

円グラフやドーナツグラフを使って情報を表示できます。バンド選択とスクロールの機能を使って、グラフを詳しく調べ、ユーザーがデータの理解を深めることができます。

APIの拡張

SwiftUIではAPIが引き続き拡張されており、プログラムによるスクロールとページングのための新しいフック、アニメーションを使ったスクロールトランジション、新しいインスペクタコンポーネント、きめの細かいフォーカスコントロール、新しいキーボード入力のサポートなどが追加されました。

宣言型シンタックス

SwiftUIは宣言型シンタックスを使用しているため、ユーザーインターフェイスの動作をシンプルに記述することができます。たとえば、テキストフィールドからなるアイテムのリストを作成すると書いてから、各フィールドの配置、フォント、色を記述するといった具合です。これにより、コードがかつてないほどシンプルで読みやすくなり、時間の節約と保守作業の負担軽減につながります。

import SwiftUI struct AlbumDetail: View { var album: Album var body: some View { List(album.songs) { song in HStack { Image(album.cover) VStack(alignment: .leading) { Text(song.title) Text(song.artist.name) .foregroundStyle(.secondary) } } } } }

この宣言型のスタイルは、アニメーションなどの複雑な概念にも適用されます。わずか数行のコードを書くだけで、ほとんどすべてのコントロールに簡単にアニメーションを追加し、すぐに使用できるエフェクトのコレクションを選択することができます。実行時には、スムーズな動きを生み出すために必要な手順を、すべてシステムが処理してくれます。また、アニメーション中に発生するユーザーの操作や状態の変更にも対処します。このように簡単にアニメーションを追加できるため、生き生きとしたアプリを創る新たな方法が見つかることでしょう。

デザインツール

Xcodeには直感的に使用できるデザインツールが含まれており、SwiftUIでインターフェイスを簡単に構築できます。デザインキャンバスでの編集内容と、隣接するエディタ内のコードはすべて完全に同期されます。コードを入力するとすぐにプレビューで確認でき、ライトモードやダークモードなど、複数の構成でUIを確認することもできます。変更内容はXcodeによって瞬時に再コンパイルされ、実行中のアプリに挿入されるため、いつでも確認、編集できます。

ダイナミックリプレースメント:SwiftのコンパイラとランタイムはXcode全体に完全に埋め込まれているため、アプリは常にビルドされ実行されます。表示されるデザインキャンバスは、単にユーザーインターフェイスに似せたものではなく、実際のAppそのものです。また、ダイナミックリプレースメントを使って、Xcodeは編集したコードを実際のアプリに直接組み入れることができます。

プレビュー:SwiftUIビューのプレビューを1つまたは複数作成して、サンプルデータを取得できるようになりました。これにより、ユーザーに表示されるほとんどすべての要素(ラージフォント、ローカリゼーション、ダークモードなど)をそれぞれに設定することができます。さらに、プレビューでは、作成したUIをどのデバイスのどの向きでも表示することができます。

UIKitおよびAppKitとの連携

SwiftUIはUIKitおよびAppKitと連係するよう設計されているため、既存のアプリに段階的に導入していくことができます。新しいユーザーインターフェイスを構築したり、既存のインターフェイスを再構築したりする場合は、他のコードベースはそのまま維持しながら、SwiftUIを使用することができます。

また、使用したいインターフェイス要素がSwiftUIに含まれていない場合は、SwiftUIとUIKit、AppKitを自由に組み合わせて、 それぞれの良さを有効活用できます。

今すぐ始める

Xcodeをダウンロードし、以下のリソースを活用して、すべてのAppleプラットフォーム向けにSwiftUIでアプリを構築しましょう。

Xcodeをダウンロードする