๋ฐ˜์‘ํ˜•

iOS 61

[iOS] Privacy Manifest ์ •๋ฆฌ ( feat.privacy_scanner )

Privacy Manifest ๋Œ€์‘์„ ์œ„ํ•ด ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด ๋ณด๊ณ ์ž ํ•œ๋‹ค.์šฐ์—ฐํžˆ ์ฐพ์•˜๋˜ techinpark๋‹˜์˜ privacy manifest scanner์–ด๋– ํ•œ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด์•ผ ํ• ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด ํ•œ ๋ฒˆ ์‚ฌ์šฉํ•ด ๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. GitHub - techinpark/ios_privacy_manifest_scanner: scan your Xcode Swift project for required reason API usagescan your Xcode Swift project for required reason API usage - techinpark/ios_privacy_manifest_scannergithub.com  Privacy Manifest File์ˆ˜์ง‘ํ•˜๋Š” ๋ฐ์ดํ„ฐ์™€ Required Reaso..

iOS 2024.08.05

[Swift] Cocoapods๋งŒ ์ง€์›ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ SPM์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ ( feat. naverMap )

tuist๋ฅผ ์ด์šฉ์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ชจ๋“ˆํ™” ํ•˜๋Š” ๊ฒฝ์šฐ ํ˜น์€NaverMap๊ณผ ๊ฐ™์ด Cocoapods๋งŒ ์ง€์›ํ•˜์—ฌ SPM์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ SPM์˜ ์ง€์›์ด ํ•„์š”ํ•˜์ง€๋งŒ ์ฃผ๋„๊ถŒ์ด ์—†์„ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค. ๋‚˜์˜ ๊ฒฝ์šฐ, NaverMap์˜ Privacy Manifest์™€ ๊ด€๋ จํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ–ˆ๊ณ SPM์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—NaverMap์˜ SPM์ด ํ•„์š”ํ–ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ Cocoapods์œผ๋กœ ๊ด€๋ฆฌ๋˜๋˜ NaverMap์„ SPM์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.์ˆœ์„œ๋Œ€๋กœ ์•Œ์•„๋ณด์ž. 1. NaverMap SDK๋ฅผ Cocoapods์œผ๋กœ ์„ค์น˜ํ•  ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑNaverMap SDK๋ฅผ Cocoapods์œผ๋กœ ์„ค์น˜ํ•˜๋ฉด ์•„๋ž˜์˜ ๋‘ ํด๋”๊ฐ€ ๋ณด์ผ ๊ฒƒ์ด๋‹ค.xcframewo..

iOS/Swift 2024.07.30

[ReactorKit] ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•ด๋ณด๊ธฐ (feat.expectation)

ReactorKit์„ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ž ์‹œ ์ง„ํ–‰ํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ๋‹ค. GitHub - 9oHigh/usket.RandomUser: Random User Generator๋ฅผ ํ™œ์šฉํ•œ ReactorKit & RxDataSource ํ•™์ŠตRandom User Generator๋ฅผ ํ™œ์šฉํ•œ ReactorKit & RxDataSource ํ•™์Šต - 9oHigh/usket.RandomUsergithub.com ๊ฐ„๋‹จํ•œ ์•ฑ์ด๋‹ค.๋žœ๋ค ์œ ์ € API๋ฅผ ํ†ตํ•ด์„œ 100๋ช…์˜ ์‚ฌ๋žŒ๋“ค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ ํ•ด๋‹น ์ธ๋ฌผ๋“ค์„ ํŠน์ •ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋ถ„๋ฅ˜ํ•ด ๋ณด์—ฌ์ฃผ๋Š” ์•ฑ์ด๋‹ค.๊ทธ๋ ‡๊ธฐ์— ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ„๋‹จํ•˜๋‹ค.*UI ํ…Œ์ŠคํŠธ๋Š” ์ง„ํ–‰ํ•˜์ง€ ์•Š์•˜๋‹ค. ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ ์ „๊ฐ€์žฅ ๋จผ์ € ์–ด๋–ค ๊ฑธ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ• ์ง€ ์ •ํ•ด๋ณด์ž.ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—๋Š” ๋ฆฌ์•กํ„ฐ๊ฐ€ ๋‘๊ฐ€์ง€๋‹ค.ํ•˜๋‚˜๋Š” ๋ฉ”์ธํ™”๋ฉด์—์„œ ์‚ฌ์šฉ..

iOS/Swift 2024.07.15

[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
๋ฐ˜์‘ํ˜•