๋ฐ˜์‘ํ˜•

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 79

[Apple Developer] ํœด๋จผ ์ธํ„ฐํŽ˜์ด์Šค ๊ฐ€์ด๋“œ๋ผ์ธ(HIG) ์‚ดํŽด๋ณด๊ธฐ - ์›จ๋น„๋‚˜

์˜ค๋Š˜ ์›จ๋น„๋‚˜์—์„œ๋Š” HIG๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ดํŽด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ์ดˆ๋ฐ˜๋ถ€์—๋Š” HIG ์—ญ์‚ฌ๋ฅผ ์œ„์ฃผ๋กœ ์„ค๋ช…์„ ํ•ด์ฃผ์…จ๋Š”๋ฐ, ์˜ค๋žœ ์—ญ์‚ฌ๋ฅผ ๊ฐ€์ง„ ๋งŒํผ ๋ณด์žฅ๋œ ๋””์ž์ธ ๊ฒฝํ—˜์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ด์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ดํ›„์—๋Š” HIG์— ๋“ค์–ด๊ฐ€ 6๊ฐ€์ง€ ์„น์…˜์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ดํŽด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ๊ฐ•์กฐํ•˜์…จ๋˜ ๊ฒƒ์€ Best Practice์™€ Consider ๋ถ€๋ถ„์„ ์กฐ๊ธˆ๋” ์ฃผ์˜ ๊นŠ๊ฒŒ ๋ด์ฃผ์—ˆ์œผ๋ฉด ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๋ชจ๋“  ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์ง€ ์•Š์•˜๊ณ , ์‹ค์งˆ์ ์ธ ์›์น™ ํŒŒํŠธ, HIG๋ฅผ ํ›Œ๋ฅญํ•˜๊ฒŒ ์†Œํ™”ํ•œ ์•ฑ ์†Œ๊ฐœ, ์ง์ ‘ ํ•ด๋ณผ ๋งŒํ•œ ์•ก์…˜ ์•„์ดํ…œ๋งŒ ์ •๋ฆฌํ–ˆ๋‹ค. ํœด๋จผ ์ธํ„ฐํŽ˜์ด์Šค ๊ฐ€์ด๋“œ๋ผ์ธ ์‚ดํŽด๋ณด๊ธฐ ์ •๋ฆฌ์— ์•ž์„œ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด ์žˆ๋‹ค. - ๋“œ๋””์–ด ํœด๋จผ ์ธํ„ฐํŽ˜์ด์Šค ๊ฐ€์ด๋“œ๊ฐ€ ํ•œ๊ตญ์–ด๋ฅผ ์ œ๊ณตํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ์–ธ์ œ ๋‚˜์˜ค๊ฒŒ ๋ ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์˜ฌํ•ด ์•ˆ์œผ๋กœ๋Š” ๋‚˜์˜จ๋‹ค๊ณ  ํ•˜๋‹ˆ ๊ธฐ๋Œ€๊ฐ€ ๋œ..

iOS 2024.04.19

[Apple Developer] VisionOS ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ๋””์ž์ธ - ์›จ๋น„๋‚˜

iOS์—์„œ ์ ์šฉ๋˜๋Š” ๋””์ž์ธ ์›์น™์— ์ด์–ด VisionOS์—์„œ ์ ์šฉ๋˜๋Š” ๋””์ž์ธ ์›์น™์— ๋Œ€ํ•œ ์›จ๋น„๋‚˜๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. ์•„์ง VisionOS๋ฅผ ํ†ตํ•ด ์•ฑ์„ ๊ฐœ๋ฐœํ•ด๋ณด์ง„ ์•Š์•˜์ง€๋งŒ ์ถ”ํ›„ ๊ฐœ๋ฐœ ์‹œ ์—ผ๋‘์— ๋‘์–ด์•ผ ํ•  ๊ฒƒ๋“ค์ด ๋งŽ์ด ์žˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๋‘์„œ์—†์ด ์ •๋ฆฌํ–ˆ์ง€๋งŒ ๊ธฐ๋ก์„ ์œ„ํ•ด ๋‚จ๊ฒจ๋‘”๋‹ค. VisionOS ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ๋””์ž์ธ ๊ณต๊ฐ„ ์ปดํ“จํŒ…์—์„œ์˜ ๋””์ž์ธ ์›์น™ - iOS์™€๋Š” ๋‹ค๋ฅธ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ด์•ผํ•œ๋‹ค. - ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ ( ๊ณต๊ฐ„, ๋ชฐ์ž…, ํ˜„์‹ค์ , ์‚ฌ๋žŒ ์ค‘์‹ฌ ) - ์ข‹์€ ๊ณต๊ฐ„ ์ปดํ“จํŒ…์€ ์นœ์ˆ™ํ•˜๊ณ  (Familiar), ์‚ฌ๋žŒ ์ค‘์‹ฌ์ ์ด๋ฉฐ (Human - Centered), ์ฐจ์›์„ ๊ฐ€์ง„ (Dimensional), ๋ชฐ์ž…ํ˜• (Immersive) ๊ทธ๋ฆฌ๊ณ  ๋ฏฟ์„๋งŒํ•œ ๊ฒƒ(Authentic) ์ด์–ด์•ผ ํ•œ๋‹ค. ๊ณต๊ฐ„ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค UI F..

iOS 2024.04.18

[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] ์ปค์Šคํ…€ BottomSheet์„ ๋งŒ๋“ค์–ด๋ณด์ž

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ผ์ „์— ํฌ์ŠคํŒ…ํ–ˆ๋˜ ๋ฉ”๋ชจ์•ฑ์—์„œ ์‚ฌ์šฉํ–ˆ๋˜ BottomSheet์— ๋Œ€ํ•ด์„œ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฅผ ์ถ”๊ฐ€, ์‚ญ์ œ, ์ˆ˜์ •ํ–ˆ์„ ๋•Œ๋งˆ๋‹ค ํ•˜๋‹จ์—์„œ ํ•ด๋‹น ์ž‘์—…์„ ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ์•Œ๋ฆผ์„ ๋…ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด์—ˆ๋‹ค. ๋ฐ”๋กœ ์•Œ์•„๋ณด์ž. BottomSheetType ์•ž์„œ ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ถ”๊ฐ€, ์‚ญ์ œ, ์ˆ˜์ • ์„ธ ๊ฐ€์ง€๋ฅผ ์•Œ๋ ค์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์— ๋งž๋Š” ํ…์ŠคํŠธ๋“ค์ด ํ•„์š”ํ•˜๋‹ค. enum BottomSheetType { enum BottomSheetResult { case fail case success var description: String { switch self { case .fail: return "์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค :(" case .success: return "์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค :)" } } } case update(Bottom..

iOS/SwiftUI 2024.01.22

[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

[RxSwift] RxDataSource ์ž…๋ฌธ ํ•ด๋ณด๊ธฐ(feat.MVVM)

์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ RxDataSource์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. RxDataSource๋ฅผ ํ•™์Šตํ•˜๊ณ  ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด๋ดค์Šต๋‹ˆ๋‹ค. RxDataSource๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” RxSwift๋ฅผ ๊ณต๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ๋ถ€ํ„ฐ ์•Œ๊ณ ๋Š” ์žˆ์—ˆ์ง€๋งŒ ํšŒ์‚ฌ๋‚˜ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•ด ๋ณธ ์ ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„น์…˜์ด ํ•„์š”ํ•œ ์ž‘์—…์ด ์žˆ์–ด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•™์Šตํ•˜๊ณ  ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด์„œ ์ž…๋ฌธํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ์Šต๋‹ˆ๋‹ค. RxDataSource? ๊ธฐ์กด์— ์‚ฌ์šฉํ–ˆ๋˜ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ( RxSwift, RxCocoa ) ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. tasks .bind(to: taskTableView.rx.items(cellIdentifier: TaskTableViewCell.identifier, cellType: TaskTableViewCell.sel..

iOS/RxSwift 2023.09.28

[์•„ํ‚คํ…์ฒ˜] ReactorKit์— ๋Œ€ํ•ด์„œ(feat.Flux)

์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ ReactorKit์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ReactorKit? ReactorKit์˜ ๊นƒํ—ˆ๋ธŒ์— ๋“ค์–ด๊ฐ€ ๋ณด๋ฉด ์†Œ๊ฐœ๊ธ€์˜ ์ฒซ ๋ฌธ์žฅ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ReactorKit is a framework for a reactive and unidirectional Swift application architecture. - ReactorKit์€ ๋ฐ˜์‘ํ˜• ๋ฐ ๋‹จ๋ฐฉํ–ฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ๋ฐ˜์‘ํ˜•์ด๋ผ๋Š” ๋‹จ์–ด๋งŒ ๋ด๋„ Reactive Programming์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— ๋‹จ๋ฐฉํ–ฅ์ด๋ผ๋Š” ๋ง์€ ์กฐ๊ธˆ ์–ด์ƒ‰ํ•˜๊ธฐ๋„ ํ•˜๊ณ  ์‰ฝ๊ฒŒ ๋ญ”๊ฐ€๋ฅผ ๋– ์˜ฌ๋ฆฌ๊ธฐ ์–ด๋ ค์› ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊นƒํ—ˆ๋ธŒ๋ฅผ ์กฐ๊ธˆ ๋” ๋“ค์—ฌ๋‹ค๋ณด๋ฉด ReactorKit์€ Flux(๋‹จ๋ฐฉํ–ฅ ํ๋ฆ„์˜ ์•„ํ‚คํ…์ฒ˜) ..

[๋””์ž์ธ ํŒจํ„ด] Coordinator๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ(feat.MVVM-C)

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

๋ฐ˜์‘ํ˜•