0
2

SwiftUIとCombine: ObservableObjectの基本

Posted at

Combine,ObservableObjectとかよく分からなかったのでメモします。

SwiftUIとCombine: ObservableObjectの基本

SwiftUIとは?

SwiftUIは、SwiftによるネイティブUIの作成のための新しいフレームワークです。SwiftUIは、iOS、macOS、watchOS、そしてtvOS向けのアプリケーションのUIを簡単に構築することができます。

Combineとは?

Combineは、Swiftでの非同期プログラミングとストリームの処理をサポートするフレームワークです。Combineを使用すると、イベントやデータの流れをオブザーバブルなシーケンスとして扱い、変化に応じてUIを更新することができます。

ObservableObjectとは?

ObservableObjectはCombineフレームワークに属するプロトコルで、クラスのインスタンスの変更を監視可能にするものです。このプロトコルに従ったオブジェクトは、そのオブジェクト内で@Publishedプロパティラッパーがマークしたプロパティが変更されたときに変更を通知します。

簡単な具体例:
以下は、ObservableObjectと@Publishedを使用した簡単な例です。

qiita.swift
import SwiftUI
import Combine

class UserData: ObservableObject {
    @Published var username = ""
    @Published var isLoggedIn = false
}

struct UserView: View {
    @ObservedObject var userData = UserData()

    var body: some View {
        VStack {
            Text("Username: \(userData.username)")
            Toggle(isOn: $userData.isLoggedIn) {
                Text("ログインステータス")
            }
        }
    }
}

上記の例で、UserDataクラスはObservableObjectプロトコルに準拠しており、usernameとisLoggedInの2つの@Publishedプロパティを持っています。これにより、これらのプロパティが変更されると、関連するUI部分が自動的に更新されます。

0
2
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
0
2