์๋ ํ์ธ์.์ด๋ฒ์ ์ ํ ๋๋ฒจ๋กํผ ์์นด๋ฐ๋ฏธ์์ ์ฒ์์ผ๋ก ๊ฒฝํํ๋ ํด์ปคํค์ ๋ํด์ ํ๊ณ ๋ฅผ ๋จ๊ธฐ๊ณ ์ ํฉ๋๋ค. 3๊ธฐ ๋ฌ๋๋ค๋ก ๊ตฌ์ฑ๋ ํ ๋ดํด์ด 2024๋ 6์ 14์ผ ์คํ 7์๋ฅผ ์์์ผ๋ก ๋ค์ ๋ ์ธ 15์ผ ์คํ 5์๊น์ง ํด์ปคํค์ ์ฃผ์ตํด์ฃผ์์ต๋๋ค. ์ ํฌ ํ์ ํ ํฌ 2๋ช , ๋์์ด๋ 1๋ช , ๊ธฐํ 1๋ช ์ผ๋ก ์ด 4๋ช ์ ํ์์ผ๋ก ๊ตฌ์ฑ๋์์ต๋๋ค. ์ฃผ์ Work-Life Collaboration ๊ธฐํ ๋จ๊ณ์ฃผ์ ๊ฐ ์๊ฐ๋ณด๋ค ์ด๋ ค์ ๋ค๊ณ ๋๊ปด์ก์ต๋๋ค.Work life Blance์ ๋ฐ๋์ธ Work Life Collarboration ์ด๋ผ.. ์ฌ์ง์ด ์ฃผ์ ๋ฅผ ๊ฒ์ํ๋ฉด ์ ๋ณด๊ฐ ๋ง์ด ๋์ค์ง๋ ์์๊ณ , Work Life Blending์ด๋ผ๊ณ ๊ฒ์ํด์ผ ๊ด๋ จ ์ ๋ณด๊ฐ ๋์ค๊ธฐ๋ ํ์ต๋๋ค. Work Life Collarbotion์ด๋, ๊ฐ๋จํ ๋ง..
์๋ ํ์ธ์.์ ํ ๋๋ฒจ๋กํผ ์์นด๋ฐ๋ฏธ์์ 4์ 29์ผ๋ถํฐ 5์ 31์ผ๊น์ง ์ฝ 5์ฃผ๋์ ์งํํ๋ MiniChallenge2 ํ๋ก์ ํธ์ ๋ํด์ ํ๊ณ ๋ฐ ์ ๋ฆฌ๋ฅผ ํ๊ณ ์ ํฉ๋๋ค. ์๋ก ์ฃผ์ ๊ฒฐ์ ๊ณผ์ ๋ณธ๋ก ๊ธฐํ ๊ณผ์ ์ธํฐ๋ทฐ ๊ณผ์ ๋์์ธ ๊ณผ์ ๊ฐ๋ฐ ๊ณผ์ ์์ ๋ฐฐ์ด ๊ฒ ๊ฒฐ๋ก ์ ์ ํ ์คํธ๋ง๋ฌด๋ฆฌ์๋ก ์ฃผ์ ๊ฒฐ์ ๊ณผ์ ์ฌ๋ฌ ๋ช ์ ๋์์ด ์๋ ์ฐ๋ฆฌ์ ํน์ ๋์์ ์ถ์ด ์ข ๋ ๋์์ง๋๋ก ๋์ ํ๋ ์ฑ๋ฆฐ์ง์ธ MC2์์, ์ ๋ 'ํฌ์คํ ์์์ฌ๋์ด ์ ๋ฌด๋ฅผ ์ฝ๊ฒ ํ ์ ์๋๋ก ๋์'๋ผ๋ ์ฃผ์ ๋ฅผ ์ ํํ๊ฒ ๋์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋ฏธ์๋ ์ฃผ์ ๋ค๋ ๋ง์์ง๋ง, ํด๋น ์ฃผ์ ๋ฅผ ์ ํํ ์ด์ ๋ ํฌ๊ฒ 2๊ฐ์ง๊ฐ ์์์ต๋๋ค. 1. ์์์ฌ๋ก ์ผํ๊ณ ์๋ ์น๋๋๊ฐ ์์๊ธฐ ๋๋ฌธ์, ๋๋์ ๊ฐ์ ๊ณ ์ถฉ์ ๊ฒช๊ณ ์์ผ์ค๊น๋ผ๋ ๊ถ๊ธ์ฆ๊ณผ ํจ๊ป ์ด์ฉ๋ฉด ๊ฐ์ ์ ๋ฌด์ ์ข ์ฌ์๊ฐ ๊ฐ์กฑ์ด๋๋งํผ ํ๋ก์ ํธ๋ฅผ..
โ SwiftData Why is SwiftData ? - SwiftData๋ ์ ๋ง๋ค์ด์ก์๊น์ ? CoreData์ Realm์ ์ฅ์ ์ ํฉ์น๋ฏํ ๋๋ What is SwiftData ? ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํ ๊ฐ๋ ฅํ ํ๋ ์์ํฌ ์ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ทธ ์์ฒด๋ ์๋๋ผ๋ ๊ฒ. ์ธ๋ถ ํ์ผ ํ์ ์์ด ์ ์ ์ผ๋ก ์ฝ๋์ ์ง์คํ๊ณ Swift์ ์๋ก์ด ๋งคํฌ๋ก ์์คํ ์ ์ฌ์ฉํ์ฌ ์ํ ํ API ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ตฌ์ฑ์์ @ . โ @Model ํด๋์ค๋ฅผ persistent ๋ชจ๋ธ์ด๋ผ๋ ํ์ ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ์ญํ . ํด๋์ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํฐํฐ๊ฐ์ ์ญํ ์ ํ๊ฒ๋๊ณ , ๋ persistent ๋ชจ๋ธ์ด๋ผ๋ ํ์ ์ผ๋ก ์ฑํํ ์ด์ ์ด๊ฑด ์คํค๋ง์ผ ๋ผ๊ณ ์๋ ค์ฃผ๊ฒ ๋๋ค. PersistentModel : AnyObject, Obersvable,..
TextEditor์ Background Color๋ฅผ ์ ์ฉํ๋ ค๋ฉด .scrollContentBackground(.hidden)์ผ๋ก ๊ธฐ๋ณธ ๋ฐฐ๊ฒฝ์ ์จ๊ธฐ๊ณ .background(.clear)๋ฅผ ์ ์ฉํ๋ฉด ๋๋ค. ์ด ์ํ์์, TextEditor(text: $memoContent) //.scrollContentBackground(.hidden) .background(.red) .padding() .background(.red) .cornerRadius(10) .lineSpacing(10) ์ฃผ์์ ์ง์์ฃผ๋ฉด, TextEditor(text: $memoContent) .scrollContentBackground(.hidden) .background(.red) .padding() .background(.red) .corne..
โ ๊ธฐ์กด์ ๋ฐฉ์ : NavigationView ๊ธฐ์กด์๋ NaivgationView์ NavigationLink๋ฅผ ํตํด ํ์ดํ๊ณผ ๋ทฐ๋ฅผ ๋ฃ์ด์ฃผ๋ ์์ผ๋ก ์ฌ์ฉ์ด ๋๋ค. var body: some View{ NavigationView { NavigationLink { ๋ทฐ(color: .red, order: 1) } label: { Text("ํ์ดํ") } } } ๐ก Stack์ผ๋ก ๋ฐ๋๋ฉด์ NavigationView์ ์ด๋ค ๋จ์ ์ ๊ทน๋ณตํ๋์ง ? NavigationView์ ์ฃผ์ ๋จ์ ์ค ํ๋๋ SwiftUI์์ ๋งค์ฐ ๊ฐ๋จํ ์ฑ์ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ๋ทฐ๊ฐ ๋ด๋น๊ฒ์ด์ ์คํ์ ์๋์ผ๋ก ํธ์๋์ด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฆ๊ฐํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ๋ํ, NavigationView๋ฅผ ์ฌ์ฉํ ๋ ๋ด๋น๊ฒ์ด์ ๋ง๋์ ๋ํ ์ฌ์ฉ์ ์ ์ ๊ธฐ๋ฅ์..
โ Property Wrapper ํ๋กํผํฐ๋ฅผ ๊ฐ์ธ ํน๋ณํ ํ์ ์ผ๋ก ๋ง๋ค์ด์ค๋ค. ๊ฐ๋จํ ๋งํด๋ณด๋ฉด, ์ด๋ค ๋ก์ง๋ค์ ๋งค๋ฒ ๋์ผํ๊ฒ ์ง์ ํด์ฃผ์ง ์๊ณ Property Wrapper๋ก ๋ง๋ ํ์ ์ผ๋ก ํ๋กํผํฐ๋ฅผ ์ ์ธํด ๋์ผ ๋ก์ง์ ์ํํ๋๋ก ํ๋ค. โ Property Wrapper๊ฐ ์๋ค๋ฉด ? struct House { private var width = 0 var size: Int { get { return width } set { width = pow(newValue, 20) } } } struct KoreaHouse { private var _appartment = House() private var _villa = House() var appartmentSize: Int { get { return _appar..
โ Property Wrapper ์์ฑ(Property)์ ์ถ๊ฐ์ ์ธ ํ๋์ด๋ ๊ณ์ฐ์ ๋ง๋ถ์ฌ์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ตฌ์กฐ์ด๋ค. ํ๋กํผํฐ ๋ํผ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณต์กํ ๋ก์ง์ด๋ ๊ณ์ฐ์ ๊ฐ๊ฒฐํ๊ฒ ํํํ ์ ์์ด ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ํฅ์์ํจ๋ค. โ PreView ( ์์ฝ ) @State : ๋ทฐ ๋ด๋ถ์์ ๊ด๋ฆฌ๋๋ ๋ก์ปฌ ์ํ๊ฐ ์ ์ฅ @Binding : ๋ถ๋ชจ ๋ทฐ๋ก๋ถํฐ ๋ฐ์ ๊ฐ์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง @ObservedObject : ์ธ๋ถ ํด๋์ค์ ์ํ๋ฅผ ์ถ์ ํ๊ณ ๋ทฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ค. @EnvironmentObject : ์ฑ ์ ์ฒด์์ ๊ณต์ ๋๋ ์ํ ๊ฐ์ฒด ์ฌ์ฉ @Published : ObservableObject์ ์์ฑ์ ์ ๋ฐ์ดํธํ ๋ View๋ฅผ ์๋ ๋ฆฌํ๋ ์ @AppStorage : UserDefaults์ ๊ฐ์ ์ ์ฅํ๊ณ ..
์ด ํฌ์คํ ์ Udemy "MVVM Design Pattern in iOS Using SwiftUI" ๊ฐ์๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋ ๊ฒ์ด๋ฉฐ ๋ชจ๋ ๋ด์ฉ์ ์ ์๊ถ์ ๊ฐ์์ ์์์์ธ Mohammad Adam ์๊ฒ ์์์ ๋ฐํ๋๋ค. โ MVVM ํจํด์ด๋ Model - View - ViewModel๋ก ๋๋๋ค. ํ๋ฉด์ ๋ง๋๋ ์ฝ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๋๊ฒ์ด MVVM์ ํต์ฌ์ด๋ค. ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ์ฌ View๊ฐ ViewModel ๊ฐ์ ๊ด์ฐฐํ์ฌ ๋ณํ๋ฅผ ๋ฐ์ํ๋ค. ์๋ฅผ ๋ค์ด์, ๋ฒํผ ํด๋ฆญ์ ํ์ ๋ ๋ค์ ์ด๋ฏธ์ง๊ฐ ๋์ค๋ ๋์์ ํ๋ค๊ณ ์น๋ค. MVC๋ ๋ฒํผ์ด ๋๋ฆฌ๋ฉด ์ด๋ฏธ์ง๋ฅผ "๋ฐ๊พผ๋ค"์ ๊ฐ๋ ์ด๋ผ๋ฉด, MVVM์ ๋ฒํผ์ ๋๋ ์ ๋ ๋ทฐ๋ชจ๋ธ์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋๊ณ , ๋ฐ์ดํฐ๊ฐ ๋ฐ๋๋ ์ด๋ฏธ์ง๋ "์์ฐ์ค๋ฝ๊ฒ ๋ฐ๋์ด์ง๋ค"๋ ๊ฐ๋ ์ด๋ค...