[iOS] Swift Data์— ๋Œ€ํ•˜์—ฌ [๊ณต์‹๋ฌธ์„œ ๊ธฐ๋ฐ˜]

2023. 7. 4. 14:49ยท๐ŸŽ iOS
728x90
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

 

๋ฐ˜์‘ํ˜•

 

์ตœ๊ทผ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ 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/

 

SwiftUI Overview - Xcode - Apple Developer

SwiftUI is an innovative, exceptionally simple way to build user interfaces across all Apple platforms with the power of Swift.

developer.apple.com

 

728x90
๋ฐ˜์‘ํ˜•

 

 

728x90
๋ฐ˜์‘ํ˜•

 

728x90
๋ฐ˜์‘ํ˜•

'๐ŸŽ iOS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[iOS] didSet ์ด๋ž€?  (0) 2024.01.18
[iOS] xcode์—์„œ ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ ๋ณด๊ธฐ  (2) 2023.10.01
[swiftUi] Text align ์œ„์น˜ ์ •ํ•˜๊ธฐ  (0) 2023.06.03
[iOS] ๋””์ž์ธ ํŒจํ„ด์ด๋ž€ !! - by ์•ผ๊ณฐ๐Ÿป  (0) 2023.04.10
Doit [swift] ์ฒซ์งธ ๋งˆ๋‹น  (0) 2023.02.28
'๐ŸŽ iOS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [iOS] didSet ์ด๋ž€?
  • [iOS] xcode์—์„œ ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ ๋ณด๊ธฐ
  • [swiftUi] Text align ์œ„์น˜ ์ •ํ•˜๊ธฐ
  • [iOS] ๋””์ž์ธ ํŒจํ„ด์ด๋ž€ !! - by ์•ผ๊ณฐ๐Ÿป
coram22
coram22
  • coram22
    ram2 ๐Ÿš—
    coram22
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (79)
      • ๐Ÿ’ง flutter (22)
      • ๐ŸŽ iOS (18)
      • ๐Ÿฉต CosPro (4)
        • python 2๊ธ‰ (4)
      • ๐Ÿˆ‍โฌ› git (3)
      • ๐Ÿ–ฅ๏ธ react (6)
      • ๐Ÿพ OS (1)
      • ๐Ÿ›œ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (6)
      • ๐ŸŒƒ computer vision (6)
      • ๐Ÿ“š ๋ฐฑ์ค€ (4)
      • ๐Ÿฃ My Story (1)
      • ๐Ÿ’ป else (8)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐Ÿˆโ€โฌ› github ๐Ÿˆโ€โฌ›
    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • ๐Ÿฑ Github ๐Ÿฑ
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Swift
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    Git
    SwiftUI
    ๊ณต์‹๋ฌธ์„œ
    Xcode
    Python
    dart
    ์ค‘๋„ํœดํ•™
    ์˜ค๋ธ”์™„
    IOS
    ์ •๋‹ต ๋ฐ ํ•ด์„ค
    OpenCV
    UIKit
    Flutter codelab
    FLUTTER
    2๊ธ‰
    Computer Vision
    React
    ์ปด๋„ค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
coram22
[iOS] Swift Data์— ๋Œ€ํ•˜์—ฌ [๊ณต์‹๋ฌธ์„œ ๊ธฐ๋ฐ˜]
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”