16.0๋ถํฐ presentationDetents ๋ก ์ํธ์ ๋์ด๋ฅผ ๊ณ ์ ํ ์ ์์๋ค.๊ทธ๋์ ์ด์์ค์ธ ์ฑ์์ ์ ! ์ฌ์ฉํ๊ณ ์์๋๋ฐ, ์ต๊ทผ์ ๋์ด๊ฐ ๊ฐํ์ ์ผ๋ก ๊ณ ์ ํด๋ ์ฌ์ด์ฆ๋ก ๋ณด์ฌ์ง์ง ์๊ณ , ๊ธธ๊ฒ ๋ณด์ฌ์ง๋ค๋ ๋ฒ๊ทธ๋ฅผ ์ ๋ณด๋ฐ์๋ค. ๋ฌธ์ ๊ฐ๋ฐํ๊ฒฝ์์ ์ฑ์ ์คํํ์ฌ ๋ฐ์ดํฐ๊ฐ ์ ๋ชจ์์ด๋ค..!๋ฌธ์ ๋ ์๋์ ๊ฐ์ ์ํฉ์์ ์ฌํ๊ฐ๋ฅํ๋ค.- ์ค๊ธฐ๊ธฐ (์๋ฎฌ๋ ์ดํฐ์์ ์ฌํ ๋ถ๊ฐ)- ์ํธ๋ฅผ ๋๋๊ทธ๋ก ๋ด๋ฆฌ๊ณ ๋ค์ ์ฌ๋ฆฐ ๊ฒฝ์ฐ ์ํธ ๊ด๋ จํ ๋ก์ง๋ง ํ์ธํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.์๋์ฒ๋ผ ์๋ฌด ๋ฌธ์ ์์ด๋ณด์ด๋ ์ฝ๋์ง๋ง, ์์น์๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.464๋ก ๊ณ ์ ํด๋ ์ํธ ์ฌ์ด์ฆ๊ฐ ๊ฐ๋ ๊ธธ๊ฒ ๋ณด์ฌ์ง๋ ๋ฌธ์ ์ด๋ค!struct SheetTestView: View { @State var showQuestSheet: Bool = false ..
RedactionReasons ์์๋ณด๊ธฐ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ํด๋น redactionReason๋ฅผ ์ฌ์ฉํ๋ฉด ์ข์ต๋๋ค! invalidated- ๋ฐ์ดํฐ๊ฐ ์๋ชป๋์๊ฑฐ๋ ๋ฌดํจ์ผ ๋ ์๋ก์ด ์
๋ฐ์ดํธ๊ฐ ํ์ํจ์ ๋ํ๋ผ ๊ฒฝ์ฐ- API ์๋ต์ด ๋ณ๊ฒฝ๋๊ฑฐ๋, ์ฝํ
์ธ ๊ฐ ์ต์ ์ํ๊ฐ ์๋์ด์ ์
๋ฐ์ดํธ๊ฐ ํ์ํ ๊ฒฝ์ฐ placeholder- ๋ฐ์ดํฐ๊ฐ ๋ก๋ ์ค์ผ ๋ ๋ก๋ฉ ์ํ๋ฅผ ํ์ํ๋ ๊ฒฝ์ฐ privacy- ๊ฐ์ธ์ ๋ณด๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฆด ๊ฒฝ์ฐ- ์ฌ์ฉ์์ ๊ณ์ข ์ ๋ณด๋ ๊ฑฐ๋ ๋ด์ญ์ ๊ฐ๋ฆด ๊ฒฝ์ฐ- ์ฑ์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ ํํ๊ฑฐ๋ ์บก์ฒ๊ฐ ๊ฐ์ง๋ ๋ ์ ๋ณด๋ฅผ ๊ฐ๋ฆด ๊ฒฝ์ฐ ๋ด์ฉ์ด ๋ง์ง ์์์, ์ฝ๋์ ์ฃผ์์ผ๋ก ๋ฐ๋ก ์์ํ๊ฒ ์ต๋๋ค !!// MARK: - privacy redaction VStack(alignment: .leading) {..
์ด์ ์ ํญ์ ProgressVew๋ก ๋ก๋ฉ์ค์ธ ํ๋ฉด์ ๊ตฌํํ์๋๋ฐ, ํ ํญ์ ๊ตฌํํ๋ฉด์ .redacted๋ฅผ ์ฌ์ฉํด๋ณด๊ณ ์ถ์๋ค.์ฑ์ ์ ์ฉํ ์ง๋ ํ์คํ์ง ์์ง๋ง,, ๊ฐ๋จํ๊ฒ ๊ธฐ๋กํ๊ณ ์ ์์ฑํ๋ค. redacted๋?๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด, redacted๋ ์ปจํ
์ธ ๋ฅผ ๊ฐ๋ ค์ฃผ๋ ๋ฉ์๋์
๋๋ค. ๊ณต์ ๋ฌธ์๋ฅผ ๋ณด๊ธฐ ์ ์ ์ค๋ช
์ด ์๋ฟ๋์?(์๋์!!!!?) ๋จ์ด๋ถํฐ ์ดํดํ๊ณ ๊ฐ์๋ฉด, ์ด ๊ธ์์ ์ค๋ช
๋์ด์๋ ๊ฒ ์ฒ๋ผ ๊ธฐ๋ฐ ๋๋ ๋ฏผ๊ฐํ ๋ด์ฉ์ ์ง์ฐ๋ค๋ผ๋ ๋ป์ ๊ฐ๊ณ ์์ต๋๋ค.๊ทธ๋์ reason์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฆฌ๊ธฐ ์ํ ์ด์ ๋ฅผ ๊ฐ์ด ์์ฑํด์ฃผ๋ ๊ฑฐ๊ฒ ์ฃ ? redacted ์ฌ์ฉํด๋ณด๊ธฐ์ผ๋จ RedactionReasons์๋ ํ์ฌ 3๊ฐ์ง๊ฐ ์กด์ฌํฉ๋๋ค. ๊ฐ๊ฐ ์ฌ์ฉ์ ๋ํด์๋ ์ฌ๊ธฐ์ ๋ ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค!!3๊ฐ์ง ์ค์์ placeholder๋ฅผ..
1. ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ฑ์ ์ ์ฉํด๋ณด๊ณ ์ถ์ iOS์ ์ฌ๋ฌ ๊ธฐ๋ฅ~์ ๋ง๋๋ก ์ถ๊ฐํ ์ ์๋ค๋ ์ ์ด ์์ฌ์ ๋ค. (ํํ๋ก์ ํธ๋๊น..)2. ํผ์ ์ฑ์ ๋ง๋ค๋ฉด์ ๊ฐ๋ฐํ๊ณ ์ถ์ ๊ธฐ๋ฅ์ ๋ง๊ป ์๋ํด๋ณด์~ 3. ๊ธฐํ&๋์์ธ์ ์๊ฐ์ ์๊ฐ๋ณด๋ค ์ฐ๊ฒ๋๋ค.4. ๊ธฐ๋ฅ/ํ๋ฉด ๋จ์๋ก ๊ตฌํํด๋ณด์ ! (์ธ์ ๊ฐ ๋์์ด ๋๊ฒ ์ง !)์ด์ฐ์ ์ฐ ์๊ฐ์ ๋ณด๋ด๋ค๋ณด๋ ํ์ฌ 4๋ฒ์ ๊ฒฐ๋ก ์ ๋๋ฌํ๋ค.๊ทธ๋ฌ๋ค ๋ฌธ๋ ์คํ๋ฒ
์ค ์ฑ์ ์ฌ์ฉํ๋ฉด์ ์ ๋~ํ ์ฑ์ Inactive ์ํ๋ก ๋ง๋ค๋ฉด Active์ ์ํ์ ํ๋ฉด์ด ์๋ ์ด๋ก ๋ฐฐ๊ฒฝ์ ์คํ๋ฒ
์ค ๋ก๊ณ ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฑธ ๋ฐ๊ฒฌํ๋ค.์ด๋ฐ ๊ธฐ๋ฅ(?)์ ๋ณดํต ์ํ ์ฑ์์ ์์ฃผ ๋ณด์ด๋ ํจํด์ธ๋ฐ ์คํ๋ฒ
์ค์์ ๋ณด์ฌ์ ๋
ํนํ๋จ ์๊ฐ์ ํ๋ค.๊ตฌํ์ ํด๋ณด์ScenePhase์๋ .active, inactive, backg..
SwiftData ์์ธํ ์ดํด๋ณด๊ธฐ WWDC ์์ ๋ฒ์ญ/์ ๋ฆฌ๋ณธ์
๋๋ค. ๋ชฉ์ฐจ00:00 Intro03:42 Configuring persistence | ์ฑ์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๋๋ก ๋ชจ๋ธ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ07:21 Track and persist changes | ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ ์ง์ํ๋ ๋ฐฉ๋ฒ(ModelContext)11:20 Modeling at scale | ๊ฐ์ฒด๋ฅผ ๋ค๋ฃฐ ๋ SwiftData๋ฅผ ์ต๋ํ ํ์ฉํ๋ ๋ฐฉ๋ฒ14:54 Wrap-updocSwiftData ๊ณต์ ๋ฌธ์Adopting SwiftData for a core Data app ์ํ ํ๋ก์ ํธ์ ์์ฒญSwiftData ์์๋ณด๊ธฐSwiftData๋ก ์คํค๋ง ๋ชจ๋ธ๋งํ๊ธฐ0. Intro์ด๋ฒ์๋ SampleTrips ์ฑ์ ํตํด SwiftData์ ๋ํด ์์๋ณผ ๊ฒ..
SwiftData๋ก ์คํค๋ง ๋ชจ๋ธ๋งํ๊ธฐ WWDC ์์ ๋ฒ์ญ/์ ๋ฆฌ๋ณธ์
๋๋ค. ๋ชฉ์ฐจ00:00 Intro01:41 Utilizing schema macros | ์คํค๋ง ๋งคํฌ๋ก๋ฅผ ์ต๋ํ ํ์ฉํ๋ ๋ฒ(@Attribute, @Relationship, @Transient)05:30 Evolving schemas | ์ฑ์ด ๋ณ๊ฒฝ๋ ๋ ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์
์ผ๋ก ์คํค๋ง๋ฅผ ๊ฐ์ ํ๋ ๋ฒ08:56 Wrap-updocSwiftData ๊ณต์ ๋ฌธ์Adopting SwiftData for a core Data app ์ํ ํ๋ก์ ํธ์ ์์ฒญSwiftData ์์๋ณด๊ธฐSwiftData๋ก ์ฑ ๋น๋ํ๊ธฐ 0. IntroSwiftData๋ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํ ํ๋ ์์ํฌ์
๋๋ค.SwiftUI์ฒ๋ผ ์ธ๋ถ ํ์ผ ํ์ ์์ด ์ค๋ก์ง ์ฝ๋์๋ง ์ง์คํ ์ ์์ผ..
SwiftData ๋ง๋๋ณด๊ธฐ WWDC ์์ ๋ฒ์ญ/์ ๋ฆฌ๋ณธ์
๋๋ค. ๋ชฉ์ฐจ00:00 Intro01:07 Using the model macro | Swift์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ชจ๋ธ๋งํ๋ ์๋ก์ด @Model ๋งคํฌ๋ก03:17 Working with your data | SwiftData๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์์ ํ๋ ๋ฒ07:02 Use SwiftData with SwiftUI | SwiftData์ ๋งค๋๋ฝ๊ฒ ์๋ํ๋ ๋ค๋ฅธ ํ๋ซํผ ํ๋ ์์ํฌ ์๊ฐ08:10 Wrap-updocSwiftData ๊ณต์ ๋ฌธ์Adopting SwiftData for a core Data app ์ํ ํ๋ก์ ํธ 0. IntroSwiftData๋ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋ฐ ๊ด๋ฆฌ ํ๋ ์์ํฌ๋ก ์ต์ Swift ์ฑ์ ๋ ์
๊ทธ๋ ์ด๋์์ผ ์ค๋๋ค.SwiftUI์ ..
๋ค์ด๊ฐ๊ธฐ ์ ์๋ค์ด๊ฐ๊ธฐ ์์์ ๋จผ์ ๋ฉ์๋์ ํจ์์ ์ฐจ์ด๋ฅผ ์๊ณ ๊ณ์ ๊ฐ์?ํจ์์ ๋ฉ์๋๋ ๋น์ทํด๋ณด์ด์ง๋ง ์ฐจ์ด๊ฐ ์๋ต๋๋ค. ๋ฉ์๋๋ ํน์ ์์
์ ์ํํ๋ ํจ์์ ๋น์ทํ์ง๋ง, ๊ฐ์ฒด ๋ด๋ถ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ค๋ ์ ์์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ํจ์๋ ๋
๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๋ฉฐ, ํน์ ํ์
์ ์ํ์ง ์์ต๋๋ค.๋ฐ๋ฉด์ ๋ฉ์๋๋ ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ๋ฑ์ ํน์ ํ์
์ ์ํด ์์ผ๋ฉฐ, ํด๋น ํ์
์ ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋์ด ์ฌ์ฉ๋ฉ๋๋ค. ๋์ ์ฐจ์ด๋ฅผ ์ดํดํ๋ค๋ฉด, ์ด์ ๋ฉ์๋์ ๋ํด ์์๋ด
์๋ค. Swift์ ๋ฉ์๋Swift๋ ๋ค์๊ณผ ๊ฐ์ ๋ค ๊ฐ์ง ์ฃผ์ ๋ฉ์๋ ์ ํ์ ์ ๊ณตํฉ๋๋ค: ์ธ์คํด์ค ๋ฉ์๋, ํ์
๋ฉ์๋(ํด๋์ค ๋ฉ์๋, ์ ์ ๋ฉ์๋)์
๋๋ค. ๊ฐ๊ฐ์ ํน์ฑ๊ณผ ์ฌ์ฉ ์์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. 1. ์ธ์คํด์ค ๋ฉ์๋ (Instance Meth..
์ฝ๋ฉํ
์คํธ์์ ํ
์คํธ์ผ์ด์ค๋ ๋ค ๋ง์๋๋ฐ ํ๋ ์ผ์ด์ค์์ ๋ค ๋ฐํ์ ์๋ฌ๋ฅผ ๋ด๋ฒ๋ฆฐ ๊ฒฝํ!!!!!์ด ์๋ค.. ํ
์ผ๋ฅผ ์กฐ๊ธ์ด๋ผ๋ ๋งํ์ผ๋๊น,, ์ผ๋จ ๋ค์๋ฌธ์ ๋ก ๋์ด๊ฐ๋ค๊ฐ ๋ค์ ํด๋น ๋ฌธ์ ๋ฅผ ๊ณ ๋ฏผํ๋๋ฐ,10๋ถ๋ ์ฑ ๋จ์ง ์์ ์ํ์ฌ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฌธ์ ๊ฐ ์๋๋ง ์๊ฐํ๋ค๊ฐ ์ํ์ด ์ข
๋ฃ๋์๋ค. ํ
์คํธ๊ฐ ๋๋ ํ ์ป์ผ๋ฉด์ ์๊ฐ์ ํ๋๋ฐ, ์๋ฃํ์ ๊ณ ๋ คํ์ง ๋ชปํด์ ์๋ฌ๋ ๊ฒ ๊ฐ๋ค!!!๋ผ๋ ์๊ฐ์ ๊ทธ์ ์์ผ ํ๋ค.ํด๋น ๋ฒ์๊ฐ -10^9 ~ 10^9 ์ด์๋๋ฐ,, ์ฐ์ ํ ๋ ๋ฒ์๋ฅผ ๊ณ ๋ คํ์ด์ผ ์์ ํ์๊ฒ ๋ค๋ ์๊ฐ... Int ์๋ฃํ์ ๋ํด ๋จธ๋ฆฌ์ ๋ฃ์ด๋์ผ ๋ ์ค์๋ฅผ ์ํ ๊ฒ ๊ฐ์์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค ! ๐ฅ ๋ค๋ค ์์๊ฒ ์ง๋ง !Int ๋ค์ ๋ถ์ ์ซ์๋ ๋นํธ๋ฅผ ์๋ฏธํฉ๋๋ค.์ค์ํํธ์์์ Int๋ Int8, Int16, Int32..
1. Reactorkit ์๊ฐReactorkit์ Swift๋ก ์์ฑ๋ ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ์ฃผ๋ก ์ํ ๊ด๋ฆฌ์ ๋ฐ์ดํฐ ํ๋ฆ ์ ์ด๋ฅผ ์ฝ๊ฒ ํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ iOS ์ฑ ๊ฐ๋ฐ์์ ๋ฆฌ์กํฐ๋ธ ํจํด์ ์ฑํํ์ฌ ์ผ๊ด๋ ์ํ ๊ด๋ฆฌ์ ๋ฐ์ํ UI ์
๋ฐ์ดํธ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.์ด๋ฒ ๊ธ์์๋ Reactorkit์ ๊ธฐ๋ณธ ๊ฐ๋
๊ณผ ์๋ ๋ฐฉ์, ์ด๋ค ์ฅ์ ์ด ์๋์ง ๋ฆฌ๋๋ฏธ๋ฅผ ๋ฒ์ญํด๋ณด๋ฉฐ ์๊ฐํด๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค. 2. Reactorkit์ ๊ธฐ๋ณธ ๊ฐ๋
Reactorkit์ ์ ์ ReactorKit์ Flux์ Reactive ํ๋ก๊ทธ๋๋ฐ์ ์กฐํฉ์ด๋ผ๊ณ ํฉ๋๋ค. ์ฌ์ฉ์์ก์
๊ณผ ๋ทฐ์ ์ํ๋ ๊ด์ฐฐ ๊ฐ๋ฅํ ์คํธ๋ฆผ์ ํตํด ๊ฐ ๋ ์ด์ด์ ์ ๋ฌ๋ฉ๋๋ค. ์ด ์คํธ๋ฆผ์ ๋จ๋ฐฉํฅ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ๋ทฐ๋ ์ก์
๋ง ๋ด๋ณด๋ผ ์ ์๊ณ , ๋ฆฌ์กํฐ..