(Translated by https://www.hiragana.jp/)
SwiftUI - Wikipedia コンテンツにスキップ

SwiftUI

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

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

概要がいよう

[編集へんしゅう]

Swift利用りようして、すべてのAppleプラットフォームデバイスけのアプリを単一たんいつのコードベースで開発かいはつできることを目的もくてきとして開発かいはつされた。SwiftUIが登場とうじょうするまえは、macOSけにはCocoa/AppKitを、そしてiOSなどのモバイルプラットフォームけにはCocoa Touch/UIKitを使つかけなければならなかった。画面がめん設計せっけい(UIデザイン)には、GUI部品ぶひん生成せいせい配置はいち画面がめん遷移せんいObjective-CやSwiftのようなプログラミング言語げんごによってコードベースで記述きじゅつする原始げんしてき方法ほうほうのほかに、Interface BuilderやStoryboardといった専用せんようのツールを使つかうこともできたが[2]前者ぜんしゃ外観がいかんのプレビューができずコードりょうえるため生産せいさんせいなんがあり、後者こうしゃ管理かんりすべきファイルの種類しゅるいかずえてさい利用りようせい移植いしょくせい低下ていかする、といった問題もんだいかかえていた。Interface Builderが自動じどう生成せいせいするレイアウト管理かんりファイルはXML形式けいしきだが、プログラマーが直接ちょくせつ編集へんしゅうするのにはいておらず、複数ふくすうじん共同きょうどう開発かいはつするさいのコンフリクト解消かいしょうむずかしいという問題もんだいもあった[3]

SwiftUIの動作どうさ環境かんきょうをサポートするオペレーティングシステムは、macOS Catalina 10.15以降いこうiOS/iPadOS/tvOS 13.0以降いこうwatchOS 6.0以降いこう、およびvisionOSである[4]。またMac Catalyst利用りようしてmacOSじょう動作どうさするiPadけアプリを開発かいはつするさいにSwiftUIを使用しようすることもできる。

宣言せんげんがたシンタックスにより、ユーザーインターフェイスの動作どうさをシンプルに記述きじゅつすることができる[5]相対そうたいてきなレイアウト方式ほうしき採用さいようしており、またすべてのデバイスで自動的じどうてきかくウィジェットのデザインが変更へんこうされるため、同一どういつのコードでのプラットフォームに移植いしょくすることが容易よういになる。

SwiftUIがカバーしきれない、プラットフォームごとにささやかなカスタマイズが必要ひつよう部分ぶぶんは、適宜てきぎプラットフォームのネイティブUI部品ぶひんやフレームワークをわせるといった相互そうご運用うんよう可能かのうである[6]

Swift PlaygroundsもSwiftUIに対応たいおうしている[7]

サンプルコード

[編集へんしゅう]

Hello, World

[編集へんしゅう]

以下いかはSwiftUIで単純たんじゅんなテキストラベルを表示ひょうじするだけのView記述きじゅつするプログラムである(Hello world)。ViewはSwiftUIにおいてUIの一部いちぶ表現ひょうげんするためのプロトコル英語えいごばんである[8]実際じっさいのアプリケーションとして動作どうささせるには、ホスティングコードが必要ひつようとなる。

import SwiftUI

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

プレビューようPreviewProviderプロトコルを採用さいようした構造こうぞうたい別途べっと定義ていぎしておくことで、Xcodeじょう実際じっさい表示ひょうじ結果けっか確認かくにんしながらコーディングすることもできるようになる[9]

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

macOS Big Sur 11.0以降いこうiOS/iPadOS/tvOS 14.0以降いこうwatchOS 7.0以降いこうでは、共通きょうつうのライフサイクル管理かんりようプロトコルとしてApp導入どうにゅうされ、コードベースの統一とういつがさらにすすんだ[10]

import SwiftUI

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

脚注きゃくちゅう

[編集へんしゅう]

関連かんれん項目こうもく

[編集へんしゅう]