Deep_Dev
article thumbnail
[SwiftUI] View -> Flip ๊ธฐ๋Šฅ
๐ŸŽ iOS/SwiftUI 2024. 6. 16. 20:28

โœ… ๋ทฐ๋ฅผ ์ „ํ™˜์‹œํ‚ค๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์ธ Flip ๊ธฐ๋Šฅ   1. MainViewimport SwiftUIstruct ContentView: View { @State var isFlipped = false var body: some View { VStack(spacing: 0) { ZStack { if isFlipped { FrontView() } else { BackView() } } .scaleEffect(x: isFlipped ? -1 : 1) .f..

article thumbnail
[CodeDrop] Hackathon : ์›Œํ‚ค๋น„ํ‚ค

์•ˆ๋…•ํ•˜์„ธ์š”.์ด๋ฒˆ์—” ์• ํ”Œ ๋””๋ฒจ๋กœํผ ์•„์นด๋ฐ๋ฏธ์—์„œ ์ฒ˜์Œ์œผ๋กœ ๊ฒฝํ—˜ํ–ˆ๋˜ ํ•ด์ปคํ†ค์— ๋Œ€ํ•ด์„œ ํšŒ๊ณ ๋ฅผ ๋‚จ๊ธฐ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. 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์ด๋ž€, ๊ฐ„๋‹จํžˆ ๋ง..

article thumbnail
[MC2] PostEat : ํฌ์Šคํ… ์˜์–‘์‚ฌ๋‹˜์˜ ์—…๋ฌด๋ฅผ ๋„์™€๋“œ๋ฆฌ์ž

์•ˆ๋…•ํ•˜์„ธ์š”.์• ํ”Œ ๋””๋ฒจ๋กœํผ ์•„์นด๋ฐ๋ฏธ์—์„œ 4์›” 29์ผ๋ถ€ํ„ฐ 5์›” 31์ผ๊นŒ์ง€ ์•ฝ 5์ฃผ๋™์•ˆ ์ง„ํ–‰ํ–ˆ๋˜ MiniChallenge2 ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด์„œ ํšŒ๊ณ  ๋ฐ ์ •๋ฆฌ๋ฅผ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ก ์ฃผ์ œ ๊ฒฐ์ • ๊ณผ์ • ๋ณธ๋ก ๊ธฐํš ๊ณผ์ •์ธํ„ฐ๋ทฐ ๊ณผ์ •๋””์ž์ธ ๊ณผ์ • ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ฐฐ์šด ๊ฒƒ ๊ฒฐ๋ก ์œ ์ €ํ…Œ์ŠคํŠธ๋งˆ๋ฌด๋ฆฌ์„œ๋ก ์ฃผ์ œ ๊ฒฐ์ • ๊ณผ์ •์—ฌ๋Ÿฌ ๋ช…์˜ ๋Œ€์ƒ์ด ์•„๋‹Œ ์šฐ๋ฆฌ์˜ ํŠน์ • ๋Œ€์ƒ์˜ ์‚ถ์ด ์ข€ ๋” ๋‚˜์•„์ง€๋„๋ก ๋„์ „ํ•˜๋Š” ์ฑŒ๋ฆฐ์ง€์ธ MC2์—์„œ, ์ €๋Š” 'ํฌ์Šคํ… ์˜์–‘์‚ฌ๋‹˜์ด ์—…๋ฌด๋ฅผ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์ž'๋ผ๋Š” ์ฃผ์ œ๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์žฌ๋ฏธ์žˆ๋Š” ์ฃผ์ œ๋“ค๋„ ๋งŽ์•˜์ง€๋งŒ, ํ•ด๋‹น ์ฃผ์ œ๋ฅผ ์„ ํƒํ•œ ์ด์œ ๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 1. ์˜์–‘์‚ฌ๋กœ ์ผํ•˜๊ณ  ์žˆ๋Š” ์นœ๋ˆ„๋‚˜๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ˆ„๋‚˜์™€ ๊ฐ™์€ ๊ณ ์ถฉ์„ ๊ฒช๊ณ  ์žˆ์œผ์‹ค๊นŒ๋ผ๋Š” ๊ถ๊ธˆ์ฆ˜๊ณผ ํ•จ๊ป˜ ์–ด์ฉŒ๋ฉด ๊ฐ™์€ ์—…๋ฌด์˜ ์ข…์‚ฌ์ž๊ฐ€ ๊ฐ€์กฑ์ด๋‹ˆ๋งŒํผ ํ”„๋กœ์ ํŠธ๋ฅผ..

article thumbnail
[SwiftUI] SwiftData
๐ŸŽ iOS/SwiftUI 2024. 4. 22. 20:00

โœ… SwiftData Why is SwiftData ? - SwiftData๋Š” ์™œ ๋งŒ๋“ค์–ด์กŒ์„๊นŒ์š” ? CoreData์™€ Realm์˜ ์žฅ์ ์„ ํ•ฉ์นœ๋“ฏํ•œ ๋Š๋‚Œ What is SwiftData ? ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ํ”„๋ ˆ์ž„์›Œํฌ ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ทธ ์ž์ฒด๋Š” ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ. ์™ธ๋ถ€ ํŒŒ์ผ ํ˜•์‹ ์—†์ด ์ „์ ์œผ๋กœ ์ฝ”๋“œ์— ์ง‘์ค‘ํ•˜๊ณ  Swift์˜ ์ƒˆ๋กœ์šด ๋งคํฌ๋กœ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ• ํ•œ API ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ๊ตฌ์„ฑ์š”์†Œ @ . โœ… @Model ํด๋ž˜์Šค๋ฅผ persistent ๋ชจ๋ธ์ด๋ผ๋Š” ํƒ€์ž…์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์—ญํ• . ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์—”ํ‹ฐํ‹ฐ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๊ฒŒ๋˜๊ณ , ๋˜ persistent ๋ชจ๋ธ์ด๋ผ๋Š” ํƒ€์ž…์œผ๋กœ ์•ฑํ•œํ…Œ ์ด์ œ ์ด๊ฑด ์Šคํ‚ค๋งˆ์•ผ ๋ผ๊ณ  ์•Œ๋ ค์ฃผ๊ฒŒ ๋œ๋‹ค. PersistentModel : AnyObject, Obersvable,..

article thumbnail
[SwiftUI] TextEditor BackgroundColor ์ ์šฉ
๐ŸŽ iOS/SwiftUI 2024. 4. 22. 10:27

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..

article thumbnail
[SwiftUI] NavigationStack
๐ŸŽ iOS/SwiftUI 2024. 4. 4. 22:06

โœ… ๊ธฐ์กด์˜ ๋ฐฉ์‹ : NavigationView ๊ธฐ์กด์—๋Š” NaivgationView์™€ NavigationLink๋ฅผ ํ†ตํ•ด ํƒ€์ดํ‹€๊ณผ ๋ทฐ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ์‹์œผ๋กœ ์‚ฌ์šฉ์ด ๋๋‹ค. var body: some View{ NavigationView { NavigationLink { ๋ทฐ(color: .red, order: 1) } label: { Text("ํƒ€์ดํ‹€") } } } ๐Ÿ’ก Stack์œผ๋กœ ๋ฐ”๋€Œ๋ฉด์„œ NavigationView์˜ ์–ด๋–ค ๋‹จ์ ์„ ๊ทน๋ณตํ–ˆ๋Š”์ง€ ? NavigationView์˜ ์ฃผ์š” ๋‹จ์  ์ค‘ ํ•˜๋‚˜๋Š” SwiftUI์—์„œ ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์•ฑ์˜ ๊ฒฝ์šฐ์—๋„ ๋ชจ๋“  ๋ทฐ๊ฐ€ ๋‚ด๋น„๊ฒŒ์ด์…˜ ์Šคํƒ์— ์ž๋™์œผ๋กœ ํ‘ธ์‹œ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ, NavigationView๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ง‰๋Œ€์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ๊ธฐ๋Šฅ์„..

[SwiftUI] Property Wrapper โ‘ก
๐ŸŽ iOS/SwiftUI 2024. 3. 27. 19:30

โœ… 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..

[SwiftUI] ํ”„๋กœํผํ‹ฐ๋ž˜ํผ ์ •๋ฆฌ
๐ŸŽ iOS/SwiftUI 2024. 3. 17. 17:54

โœ… Property Wrapper ์†์„ฑ(Property)์— ์ถ”๊ฐ€์ ์ธ ํ–‰๋™์ด๋‚˜ ๊ณ„์‚ฐ์„ ๋ง๋ถ™์—ฌ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ตฌ์กฐ์ด๋‹ค. ํ”„๋กœํผํ‹ฐ ๋ž˜ํผ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ๋กœ์ง์ด๋‚˜ ๊ณ„์‚ฐ์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์–ด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค. โœ… PreView ( ์š”์•ฝ ) @State : ๋ทฐ ๋‚ด๋ถ€์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ๋กœ์ปฌ ์ƒํƒœ๊ฐ’ ์ €์žฅ @Binding : ๋ถ€๋ชจ ๋ทฐ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๊ฐ’์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๊ฐ€์ง @ObservedObject : ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๊ณ  ๋ทฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค. @EnvironmentObject : ์•ฑ ์ „์ฒด์—์„œ ๊ณต์œ ๋˜๋Š” ์ƒํƒœ ๊ฐ์ฒด ์‚ฌ์šฉ @Published : ObservableObject์˜ ์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ๋•Œ View๋ฅผ ์ž๋™ ๋ฆฌํ”„๋ ˆ์‹œ @AppStorage : UserDefaults์— ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ..