UIKit در مقابل SwiftUI
UIKit یک فریمورک قدیمی و imperative برای ساخت UI در iOS است که رابط کاربری با کد دستوری یا Storyboard و مدیریت صریح چرخهحیات View ساخته میشود؛ SwiftUI یک فریمورک اعلانی (declarative) جدیدتر است که UI را بهصورت تابعی از state توصیف میکند و بهصورت خودکار با تغییر state، رابط را بهروزرسانی میکند.
| ویژگی | UIKit | SwiftUI |
|---|---|---|
| سبک برنامهنویسی | Imperative (دستوری) | Declarative (اعلانی) |
| بهروزرسانی UI با تغییر state | دستی | خودکار |
| حداقل نسخه پشتیبانی iOS | از نسخههای قدیمیتر | iOS 13 به بعد |
| پیشنمایش زنده در Xcode | ندارد | دارد (Live Preview) |
کِی از UIKit استفاده کنیم؟
برای پروژههای قدیمی موجود، نیاز به کنترل بسیار دقیق و سطحپایین روی رفتار View یا پشتیبانی از نسخههای خیلی قدیمی iOS، از UIKit استفاده کنید.
کِی از SwiftUI استفاده کنیم؟
برای پروژههای جدید که میخواهند کد UI کمتر، خواناتر و declarative بنویسند و از پیشنمایش زنده Xcode بهره ببرند (و حداقل نسخه iOS 13+ کافی است)، از SwiftUI استفاده کنید.
مثال UIKit
let label = UILabel()
label.text = "Hello"
label.textAlignment = .center
view.addSubview(label)
// Manually manage layout constraints and updates
مثال SwiftUI
struct GreetingView: View {
var body: some View {
Text("Hello")
.multilineTextAlignment(.center)
}
}
اشتباه رایج
تلاش برای بازنویسی کامل و آنی یک اپلیکیشن بزرگ UIKit به SwiftUI بدون برنامه تدریجی، در حالی که راهکار عملیتر معمولاً ادغام تدریجی (با UIHostingController یا UIViewRepresentable) است، نه جایگزینی یکباره.
جمعبندی
پروژه جدید و سادهتر → SwiftUI؛ پروژه قدیمی یا نیاز به کنترل دقیق سطحپایین → UIKit (یا ترکیب تدریجی هر دو).
