์ต๊ทผ ์งํ ์ค์ธ ํ๋ก์ ํธ์์ swift data๋ฅผ ์ฌ์ฉํ ์ง, realm์ ์ฌ์ฉํ ์ง ๊ณ ๋ฏผํด์ค๊ธฐ๋ก ํ๋ค.
swift์ ์ ๋ฌธํ์ง ์ผ๋ง ๋์ง ์์ ๋๋ ์ฌ์ค ๋ ๋ค ์ ๋ชจ๋ฅธ๋ค...
swift Data์ ๋ํ ๊ณต์ ๋ฌธ์์ ์งง๊ฒ ํ๊ตญ์ด๋ก, ๋ด๊ฐ ์ดํดํ ๋ฐ๋ฅผ ํ์ด์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
์์!
๐ Swift Data
swiftData๋ ์ ์ธํ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ data๋ฅผ ์ฝ๊ฒ ์ ์งํ ์ ์๊ฒ ํด์ค๋ค.
์ฐ๋ฆฌ๋ swift ์ฝ๋๋ฅผ ์ฌ์ฉํด์ data๋ฅผ query๋ฅผ ์ฌ์ฉ, filterํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ swiftUi์ ์ํํ๊ฒ ํตํฉ๋๋๋ก ์ค๊ณ๋์๋ค๊ณ ํ๋ค.
๐ swift๋ก ๋ชจ๋ธ ์์ฑํ๊ธฐ
์ถ๊ฐ๋ก ํ์ผ์ ์์ฑํ๊ฑฐ๋, ๊ด๋ฆฌํ๊ธฐ ์ํ tool์ ์ฌ์ฉํ์ง ์์๋ @Model ์ ์ฌ์ฉํด์ data๋ฅผ ๊ตฌ์กฐํ ํ๊ณ ํํํ ์ ์๋ค.
swiftData๋ ์๋์ผ๋ก ๋ง์ ๊ด๊ณ๋ค์ ์ถ๋ก ํ ์ ์๋ค. ๋ํ, ์ฐ๋ฆฌ๋ @Attribute(.unique)์ ๊ฐ์ ๊ฐ๋จํ ์ ์ธ์ ํตํด ์ ์ฝ๋ค์ ์ค๋ช ํ ์ ์๋ค.
๋ค์์ SwiftUI์์ ์ด๋ฅผ ์ ์ฉํ ์ฝ๋ ์์์ด๋ค.
@Model
class Recipe {
@Attribute(.unique) var name: String
var summary: String?
var ingredients: [Ingredient]
}
๐ Automatic persistence
swiftData๋ ์ฐ๋ฆฌ์ ๋ชจ๋ธ์ ์ฌ์ฉํด์ ์ฌ์ฉ์ ์ ์ ์คํค๋ง๋ฅผ ๊ตฌ์ถํด์ฃผ๊ณ , ํด๋น ๋ชจ๋ธ์ fields๋ฅผ ๊ธฐ๋ฐ ์คํ ๋ฆฌ์ง์ ํจ์จ์ ์ผ๋ก ๋งคํํด์ค๋ค.
์ฆ, ๋ชจ๋ธ์ ํ๋๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์ด๋ก ๋งคํํ ์ ์๋ค๋ ๊ฒ!
swiftData๋ก ๊ด๋ฆฌ๋๋ ๊ฐ์ฒด๋ค์ ํ์ํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฉฐ, ์ถ๊ฐ์ ์ธ ์์ ์์ด ์ํ๋ ์ ์ ํ ์์ ์ ์๋์ผ๋ก ์ ์ฅ๋๋ค. ๋ํ, ModelContext API๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒด์ ์ธ ์ ์ด๋ฅผ ํ ์๋ ์๋ค.
๐ Integrates with SwiftUI
SwiftUI view์์ @Query๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
SwiftData์ SwiftUI๋ ํจ๊ป ๋์ํ๊ธฐ ๋๋ฌธ์, ๊ธฐ๋ณธ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๋ ์๋์ผ๋ก ์๋ก๊ณ ์นจ์ ํ์ง ์์๋ ์ค์๊ฐ ์ ๋ฐ์ดํธ ๋๋ค.
@Query var recipes: [Recipe]
var body: some View {
List(recipes) { recipe in
NavigationLink(recipe.name, destination: RecipeView(recipe))
}
}
๐ Swift-native predicates
์ปดํ์ผ๋ฌ์ ์ํด ๊ฒ์ฌํ ํน์ ํํ์์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ๊ณ , ํํฐ๋งํ ์ ์๋ค.
์ด๋ ๊ฒ ํ๋ฉด, ๊ฐ๋ฐ ์ค ์๊ธฐ๋ ์คํ์ ์ค์๋ฅผ ๊ฐ์งํ ์ ์๋ค.
let simpleFood = #Predicate<Recipe> { recipe in
recipe.ingredients.count < 3
}
๐ CloudKit syncing
ClounKit์ ์ฐ๋ํ ์ ์๋ค.
๐ Compatible with Core Data
๊ธฐ์กด์ core data๋ฅผ ํตํด ๊ฐ๋ฐํ๋ค๋ฉด, swift data๋ก ์ ํํ ์ ์๋ค.
์ผ๋ฅธ ํ ๋ฒ ์จ๋ณด๊ณ ์ถ๋ค !
์ฐธ๊ณ ๋ฌธ์ : https://developer.apple.com/xcode/swiftdata/
'๐ Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] didSet ์ด๋? (0) | 2024.01.18 |
---|---|
[swift] xcode์์ ์์ ํ๋ ํธ ๋ณด๊ธฐ (2) | 2023.10.01 |
[swiftUi] Text align ์์น ์ ํ๊ธฐ (0) | 2023.06.03 |
[swift] ๋์์ธ ํจํด์ด๋ !! - by ์ผ๊ณฐ๐ป (0) | 2023.04.10 |
Doit [swift] ์ฒซ์งธ ๋ง๋น (0) | 2023.02.28 |