در رویکرد قدیمی ابتدا ویوها ساخته و سپس دستی به‌روز می‌شدند. در رویکرد اعلانی شما می‌گویید «با این state، رابط چه شکلی است» و فریم‌ورک تغییرات را اعمال می‌کند.

Jetpack Compose (اندروید)

@Composable
fun Counter() {
    var count by remember { mutableStateOf(0) }
    Button(onClick = { count++ }) {
        Text("Clicked $count times")
    }
}

SwiftUI (iOS)

struct Counter: View {
    @State private var count = 0
    var body: some View {
        Button("Clicked \(count) times") { count += 1 }
    }
}
  • کد کمتر و خواناتر نسبت به XML یا Storyboard.
  • تغییر state خودکار رابط را به‌روز می‌کند.
  • پیش‌نمایش زنده در محیط توسعه.

اگر پروژهٔ جدید می‌سازید، هر دو انتخاب‌های اصلی پلتفرم خود هستند.