๋ฐ˜์‘ํ˜•

SWIFT 13

[Apple Developer] ๋””์ž์ธ ์›์น™ (ํŒŒํŠธ 2) - ์›จ๋น„๋‚˜

Apple Developer์—์„œ ์ง„ํ–‰ํ•˜๋Š” ๊ณต์‹ ์›จ๋น„๋‚˜์ด๋‹ค. ๋“ฑ๋กํ•˜๋ผ๋Š” ๋ฉ”์ผ์ด ์™”๊ธธ๋ž˜ ์‚ฌ์ „์— ํ•ด๋‘์—ˆ์ง€๋งŒ ์ฒซ ๋ฒˆ์งธ ์›จ๋น„๋‚˜๋Š” ๋ฐฅ ๋จน๋Š๋ผ ๋ชป ๋“ค์—ˆ๋‹ค. ์•„๋ž˜์˜ ๋งํฌ๋ฅผ ํ†ตํ•ด์„œ ํ™•์ธํ•˜๊ณ  ์›ํ•˜๋Š” ์›จ๋น„๋‚˜๊ฐ€ ์žˆ๋‹ค๋ฉด ๋“ค์–ด๋ณด์ž. View - Meet with Apple Experts - Apple Developer developer.apple.com ์˜ค๋Š˜ ์„ธ์…˜์—์„œ๋Š” ์• ํ”Œ์ด ์ถ”๊ตฌํ•˜๋Š” ๋””์ž์ธ ์›์น™์˜ ๋‘ ๋ฒˆ์งธ ์„ธ์…˜์ด์—ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์„ธ์…˜์„ ๋“ฃ์ง€ ๋ชปํ•œ ๊ฒŒ ์•„์‰ฝ์ง€๋งŒ ๋””์ž์ธ์„ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์„ ๋งŽ์ด ์ค€ ๊ฒƒ ๊ฐ™๋‹ค. ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ์ฃผ์‹œ๋ฉด์„œ ์ง„ํ–‰ํ•˜์…จ๋Š”๋ฐ ์ ์  ๋” ๊น”๋”ํ•˜๊ณ , ๊ตฐ๋”๋”๊ธฐ ์—†์–ด์ง€๋Š” ๊ฒƒ์„ ๋ณด๋ฉฐ ๋””์ž์ธ์˜ ์ค‘์š”์„ฑ๊ณผ ๊ฐœ๋ฐœํ•  ๋•Œ, ์–ด๋– ํ•œ ๊ฒƒ์„ ๊ณ ๋ฏผํ•ด ๋ณด๋ฉด ์ข‹์„์ง€์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ํ•ด ์ฃผ์…จ๋‹ค. ๋‘์„œ์—†์ด ์ •๋ฆฌํ–ˆ์ง€๋งŒ ๊ธฐ๋ก์„ ์œ„ํ•ด ๋‚จ๊ฒจ๋‘”๋‹ค. PART 2 ์‚ฌ์šฉ..

iOS 2024.04.17

[Swift] ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ํ•ด๊ฒฐํ•ด๋ณด์ž(feat.map)

๊ฐœ๋ฐœ ์ค‘์ธ ์•ฑ์—์„œ MVP๋ฅผ ์œ„ํ•œ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ํ•˜๋˜ ์ค‘์— ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ํ™•์ธํ•œ ์ ์ด ์žˆ๋‹ค. ๋‹น์‹œ์—๋Š” ๋น ๋ฅธ ๊ฐœ๋ฐœ์ด ํ•„์š”ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ•ด์ง„ ์ผ์ •์„ ๋งˆ์น˜๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” ๋ฐ”๋กœ ํ•  ๊ฑฐ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค : ( ์•„๋ฌดํŠผ ๋ฉ”๋ชจ๋ฆฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด๋ฉด์„œ ์ด๋Ÿฐ์ €๋Ÿฐ ์ƒํ™ฉ์„ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณธ ๊ฒฐ๊ณผ Coordinator์—์„œ ์ƒ์„ฑ๋œ ViewController์™€ ViewModel, ์•Œ๋ฆผ ํ™”๋ฉด ๋“ฑ ๋ฉ”๋ชจ๋ฆฌ์—์„œ deinit ๋˜์ง€ ์•Š๋Š” ์ด์Šˆ๋กœ ํ™•์ธ๋๋‹ค. ์ด์ƒํ•˜๋‹ค. ์ฝ”๋“œ๋ฅผ ์—ฌ๊ธฐ์ €๊ธฐ ๋œฏ์–ด๋ด๋„ ์•ฝํ•œ ์ฐธ์กฐ๋ฅผ ํ†ตํ•ด ์บก์ณํ•ด ์ž˜ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด ์‚ด์•„์žˆ์„ ๋งŒํ•œ ๋…€์„์ด ๋ณด์ด์ง€ ์•Š์•˜๋‹ค. Profile Instrument๋ฅผ ์ด์šฉํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ–ˆ์ง€๋งŒ ์ •์ƒ๋™์ž‘ ์ค‘์ด๋ผ๊ณ  ํ‘œ์‹œ๋˜๊ณ  ์žˆ์—ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ–ˆ๊ธธ๋ž˜ Profile In..

iOS/Swift 2024.02.20

[SwiftUI] ๊ฐ„๋‹จํ•œ ๋ฉ”๋ชจ์•ฑ์„ ๋งŒ๋“ค๋ฉด์„œ ์•Œ์•„๊ฐ€๋ณด์ž ( feat.TCA )

SwiftUI๊ฐ€ ์ฒ˜์Œ ๋‚˜์™”์„ ๋•Œ, ์•„์ฃผ ์กฐ๊ธˆ UI์™€ ๊ด€๋ จ๋œ ๋‚ด์šฉ๋“ค์„ ํ•™์Šตํ–ˆ๋˜ ์ ์ด ์žˆ๋‹ค. ์‹œ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ์ง€๋‚ฌ๋Š”์ง€ ์ด์ œ๋Š” ์ฑ„์šฉ ๊ณต๊ณ ๋“ค์„ ๋ณด๋ฉด SwiftUI์™€ Combine ๊ทธ๋ฆฌ๊ณ  TCA๊ฐ€ ๊ธฐ์ˆ ์Šคํƒ์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ์ƒ๊ฐ๋ณด๋‹ค ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค. ๋ฏธ๋ค„๋’€๋˜ SwiftUI๋ฅผ ํ•™์Šตํ•ด์•ผํ•  ๋•Œ๋‹ค. ์šฐ์„  ๊ณผ๊ฑฐ์— ํ•™์Šตํ–ˆ๋˜ ๊ฒƒ๋“ค ์ค‘์— ๊ธฐ์–ต์— ๋‚จ๋Š” ๊ฒƒ์ด ์ „ํ˜€ ์—†๋‹ค. ์—ญ์‹œ, ์ผ๋‹จ์€ ๋ญ๋ผ๋„ ๋งŒ๋“ค์–ด๋ด์•ผ ๋  ๊ฒƒ ๊ฐ™๋‹ค. UIkit์„ ํ•™์Šตํ•˜๋ฉด์„œ ๊ฐ„๋‹จํ•œ ๋ฉ”๋ชจ์•ฑ์„ ๋งŒ๋“ค์—ˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์—๋„ ๋งŒ๋“ค์–ด ๋ด์•ผ๊ฒ ๋‹ค. ๋ฉ”๋ชจ์•ฑ ๊ตฌ์กฐ ๊ฐ„๋‹จํ•˜๋‹ค. ๊ธฐ๋ณธํ™”๋ฉด - ์ƒ์„ฑ๋œ ๋ฉ”๋ชจ๋“ค์ด ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๋ณด์ด๋Š” ํ™”๋ฉด + ๋ฉ”๋ชจ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” SearchBar ์ˆ˜์ • ๋ฐ ์ถ”๊ฐ€ ํ™”๋ฉด - ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ์•„์ดํ…œ์„ ํด๋ฆญํ•ด์„œ ๋“ค์–ด์˜ค๊ฒŒ๋˜๋ฉด ์ˆ˜์ • - ์ƒ๋‹จ์˜ Toolbar์—์„œ ์ถ”๊ฐ€..

iOS/SwiftUI 2024.01.18

[Swift] ์ž˜๋ชป๋œ Coordinator ์‚ฌ์šฉ ๊ทธ๋ฆฌ๊ณ  ๋ฆฌํŒฉํ† ๋ง

์•ž์„œ ํฌ์ŠคํŒ…ํ•œ ๊ธ€ ์ค‘์— Coordinator๋ฅผ ์‚ฌ์šฉํ•œ ํ›„๊ธฐ๊ฐ€ ์žˆ๋‹ค. ๋๋งบ์Œ์— ์•„๋ฌด๋ž˜๋„ ์ง€๊ธˆ๊นŒ์ง€ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ ์—ˆ์—ˆ๋Š”๋ฐ ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ฑฐ์˜ ๋๋‚˜๊ฐ€๋ฉด์„œ ๋ฆฌํŒฉํ† ๋ง์„ ์‹œ์ž‘ํ–ˆ๋‹ค. [๋””์ž์ธ ํŒจํ„ด] Coordinator๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ(feat.MVVM-C) ์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ Coordinator ๋””์ž์ธ ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์†Œ๊ฐœํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ ์ค‘์ธ๋ฐ Coordinator ์‚ฌ์šฉ์— ์žˆ์–ด ๋ญ”๊ฐ€ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜์–ด pooh-footprints.tistory.com ์œ„์˜ ํฌ์ŠคํŒ…์ฒ˜๋Ÿผ MVVM + CleanArchitecture๋ฅผ ์ ์šฉํ•˜๋ฉด์„œ ํ•จ๊ป˜ Coordinator๋ฅผ ์ ์šฉํ–ˆ์—ˆ๋‹ค. ๋‹น์‹œ์—๋Š” ViewModel์˜ ์ƒ์„ฑ์ž์— Coordinator๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ  ํ•ด๋‹น ViewMode..

iOS/Swift 2024.01.16

[Swift] ์ž๋ฃŒ๊ตฌ์กฐ - ํž™(Heap)

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ ํž™ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํž™(Heap)์ด๋ž€? ๋ฐ์ดํ„ฐ์—์„œ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ์™„์ „์ด์ง„ํŠธ๋ฆฌ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์™„์ „์ด์ง„ํŠธ๋ฆฌ ์•„๋ž˜์˜ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ๋ถ€ํ„ฐ ์ฑ„์›Œ๊ฐ€๋ฉฐ ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์„ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋“  ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์ฑ„์›Œ์ ธ ์žˆ๋Š” ํŠธ๋ฆฌ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ํž™์˜ ์ข…๋ฅ˜ ์œ„์˜ ์„ค๋ช…์—์„œ ํž™์€ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ ํž™์€ ๋‘๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ ํž™ ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐ’์ด ์ž์‹ ์˜ ๊ฐ’๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ํž™์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฃจํŠธ ๋…ธ๋“œ์˜ ๊ฐ’์€ ํ•ญ์ƒ ์ตœ๋Œ“๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค. ์ตœ์†Œ ํž™ ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐ’์ด ์ž์‹ ์˜ ๊ฐ’๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ํž™์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฃจํŠธ ๋…ธ๋“œ์˜ ๊ฐ’์€ ํ•ญ์ƒ ์ตœ์†Ÿ๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค. ์œ„์˜..

[Xcode] Xcode 14.0๋ถ€ํ„ฐ๋Š” ์–ด๋–ค๊ฒŒ ๋ฐ”๋€Œ์—ˆ์„๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹๐Ÿป ์กฐ๊ธˆ ๋Šฆ์€ ๊ฐ์ด ์žˆ์ง€๋งŒ ์ตœ๊ทผ์— ์—…๋ฐ์ดํŠธ๋œ Xcode 14.0์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 1. 30% ์ž‘์•„์ง„ ๋ฐ”์ด๋„ˆ๋ฆฌ ๊ฐ€์žฅ ๋จผ์ € ๋ˆˆ์— ๋„์—ˆ๋˜ ๊ฒƒ์€ ๊ธฐ์กด์˜ Xcode๋ณด๋‹ค 30% ์ •๋„ ์ž‘์•„์ง„ ๋ฐ”์ด๋„ˆ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ Xcode๋ฅผ ๋‹ค์šด๋ฐ›์œผ๋ ค๊ณ  ํ•  ๋•Œ ๋ณดํ†ต 10 GB ์ด์ƒ์ด ํ•„์š”ํ–ˆ์ง€๋งŒ ์ด๋ฒˆ Xcode 14.0 ๋ฒ„์ „์˜ ๊ฒฝ์šฐ 7GB ์ •๋„๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜๊ฐ€ ๋”์šฑ ์šฉ์ดํ•ด์กŒ์Šต๋‹ˆ๋‹ค. โœ“ ์–ด๋–ป๊ฒŒ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ 30% ์ •๋„ ์ค„์–ด๋“ค ์ˆ˜ ์žˆ์—ˆ์„๊นŒ? ์œ„์˜ ์ด๋ฏธ์ง€๋ฅผ ๋ณด์‹œ๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด watchOS, tvOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ 30% ์ž‘์•„์งˆ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 2. ๊ธฐ์กด๋ณด๋‹ค 25% ๋นจ๋ผ์ง„ ๋นŒ๋“œ ์‹œ์Šคํ…œ โœ“ ๋ชจ๋“ˆ์„ ๋นŒ๋“œ ๋ฐ ๋งํฌ ๋‹จ๊ณ„์—์„œ ๋”์šฑ๋” ํ–ฅ์ƒ๋œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ๊ธฐ์กด ..

iOS/Xcode 2022.11.30

[Swift] WebView์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ปฌ๋Ÿฌ๋ฅผ Clear๋กœ ๋ณ€๊ฒฝ & Content Size ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ WebView์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ปฌ๋Ÿฌ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ Content Size๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค : ) 1. WebView์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ปฌ๋Ÿฌ๋ฅผ Clear๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• webView์— ์ ‘๊ทผํ•ด backgroundColor๋ฅผ clear๋กœ ์กฐ์ •ํ•˜๋”๋ผ๋„ white๋กœ ๋ณด์ด๊ธธ๋ž˜ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๋‹ค ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. webView.isOpaque = false webView.backgroundColor = .clear ์œ„์™€ ๊ฐ™์ด isOpaque์˜ ๊ฐ’์„ false๋กœ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋˜๋ฉด ์›ํ•˜๋Š” ๋Œ€๋กœ clear๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 2. WebView์˜ ์ฝ˜ํ…์ธ ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ๋ฐฉ๋ฒ• webView์˜ ๋กœ๋“œ๊ฐ€ ๋๋‚˜๊ณ  ๋‚˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด d..

iOS/Swift 2022.11.09

[ Swift ] Realm์—์„œ ๋ฐฐ์—ด์‚ฌ์šฉํ•˜๊ธฐ ( feat.List )

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ Realm์—์„œ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค : ) Realm์—์„œ์˜ ๋ฐฐ์—ด ์‚ฌ์šฉ Realm์—์„œ๋Š” Swift์˜ Array๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ Realm ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ธ List๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด์„œ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„๊ณผ ๋‚˜์ด ๊ทธ๋ฆฌ๊ณ  ์ข‹์•„ํ•˜๋Š” ์Œ์‹๋“ค์„ ๋ฆฌ์ŠคํŠธ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” '์นœ๊ตฌ'๋ผ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ, ์Œ์‹ ๋ชจ๋ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. class Food: Object { @Persisted var name: String convenience init(name: String) { self.init() self.name = name } } ์ด ์Œ์‹ ๋ชจ๋ธ์„ ๋ฆฌ์ŠคํŠธ์˜ ํ˜•ํƒœ๋กœ ๊ฐ–๊ณ  ์žˆ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•ž์„œ ๋งํ•œ ..

iOS/Swift 2022.06.28

[Git & Github] Github Action์œผ๋กœ TestFlight ์—…๋กœ๋“œ ํ•ด๋ณด๊ธฐ(2)

์•ˆ๋…•ํ•˜์„ธ์š” ~ ์ €๋ฒˆ ํฌ์ŠคํŒ…์— ์ด์–ด์„œ TestFlight์— ์–ด๋–ป๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค : ) ์‚ฌ์ „ ์ค€๋น„ Github Action - Build - (Unit Test) - Archive - ipa ์ƒ์„ฑ ๋ฐ TestFlight์— ์—…๋กœ๋“œ ์œ„์˜ 3~4๊ฐ€์ง€์˜ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ํ…Œ์ŠคํŠธ ํ”Œ๋ผ์ดํŠธ์— ์—…๋กœ๋“œ ์˜ˆ์ •์ธ๋ฐ ์‚ฌ์ „์— ์ค€๋น„ํ•ด๋‘์–ด์•ผ ํ•  ๊ฒƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. 1. ํ”„๋กœ์ ํŠธ ์„ค์ • ์ง„ํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ - Edit Scheme์„ ํด๋ฆญํ•˜๊ณ  Build Configuration์„ release๋กœ ์„ค์ • โ€ป Build Configure - Realease๋กœ ์„ค์ • ์‹œ Distribution Certificate์™€ Distribution Provisioning Profile์ด ํ•„์š” Distribution Cert..

Git & Github 2022.06.15

[Git & Github] Github Action์œผ๋กœ TestFlight ์—…๋กœ๋“œ ํ•ด๋ณด๊ธฐ(1)

์•ˆ๋…•ํ•˜์„ธ์š”~ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Github Action์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ Github์—์„œ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Github Action ์ด๋ž€? - Github ์ €์žฅ์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ Workflow๋ฅผ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Github ๋‚ด๋ถ€์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฆด๋ฆฌ์ฆˆ ๋˜๋Š” ๋ฐฐํฌ๋ฅผ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ, Github์—์„œ ์ œ๊ณตํ•˜๋Š” CI/CD ๋„๊ตฌ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•  ๊ฒƒ ๊ฐ™๋„ค์š”. ๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ป๊ฒŒ Github Action์ด ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Github Action์˜ ๊ตฌ์„ฑ์š”์†Œ 1. Workflow - Repository์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋™ํ™” ์ปค๋งจ๋“œ์˜ ์ง‘ํ•ฉ์œผ๋กœ ํ•˜๋‚˜ ์ด์ƒ์˜ Job์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ Push๋‚˜ PR๊ณผ ๊ฐ™์€ ์ด๋ฒคํŠธ์— ์˜ํ•ด ์‹คํ–‰๋  ์ˆ˜๋„ ..

Git & Github 2022.06.14
๋ฐ˜์‘ํ˜•