コンテンツにスキップ

SwiftUI

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。2404:7a84:5021:2000:d193:7cb7:1ddb:2a49 (会話) による 2023年6月6日 (火) 19:02個人設定で未設定ならUTC)時点の版 (概要)であり、現在の版とは大きく異なる場合があります。

SwiftUIとは、Appleが開発した、アプリケーショングラフィカルユーザーインターフェイス (GUI) を構築するためのフレームワークである。WWDC 2019で発表され[1]Xcode 11以降で利用可能となった。

概要

Swiftを利用して、すべてのAppleプラットフォームデバイス向けのアプリを単一のコードベースで開発できることを目的として開発された。SwiftUIが登場する前は、macOS向けにはCocoa/AppKitを、そしてiOSなどのモバイルプラットフォーム向けにはCocoa Touch/UIKitを使い分けなければならなかった。

SwiftUIの動作環境をサポートするオペレーティングシステムは、macOS Catalina 10.15以降、iOS/iPadOS/tvOS 13.0以降、watchOS 6.0以降、及びrealityOSである[2]。またMac Catalystを利用してmacOS上で動作するiPad向けアプリを開発する際にSwiftUIを使用することもできる。

宣言型シンタックスにより、ユーザーインターフェイスの動作をシンプルに記述することができる[3]。相対的なレイアウト方式を採用しており、またすべてのデバイスで自動的に各ウィジェットのデザインが変更されるため、同一のコードで他のプラットフォームに移植することが容易になる。

SwiftUIがカバーしきれない、プラットフォームごとに細やかなカスタマイズが必要な部分は、適宜プラットフォームのネイティブUI部品やフレームワークを組み合わせるといった相互運用も可能である[4]

Swift PlaygroundsもSwiftUIに対応している[5]

サンプルコード

Hello, World

以下はSwiftUIで単純なテキストラベルを表示するだけのViewを記述するプログラムである(Hello world)。ViewはSwiftUIにおいてUIの一部を表現するためのプロトコル英語版である[6]。実際のアプリケーションとして動作させるには、ホスティングコードが必要となる。

import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("Hello, World!")
    }
}

プレビュー用のPreviewProviderプロトコルを採用した構造体を別途定義しておくことで、Xcode上で実際の表示結果を確認しながらコーディングすることもできるようになる[7]

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

macOS Big Sur 11.0以降、iOS/iPadOS/tvOS 14.0以降、watchOS 7.0以降では、共通のライフサイクル管理用プロトコルとしてAppが導入され、コードベースの統一がさらに進んだ[8]

import SwiftUI

@main
struct HelloWorldApp: App {
    var body: some Scene {
        WindowGroup {
            Text("Hello, World!")
            //ContentView()
        }
    }
}

脚注

関連項目