IOS

ยท๐ŸŽ iOS & Swift
์ตœ๊ทผ์— ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ์ฝ˜์†” ์ฐฝ์— ๋œจ๋ฉด์„œ ๋นŒ๋“œ๊ฐ€ ์ž˜๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ๋‹ค. warning: libobjc.A.dylib is being read from process memory. This indicates that LLDB could not find the on-disk shared cache for this device. This will likely reduce debugging performance. rm -r ~/Library/Developer/Xcode/iOS\ DeviceSupport ๋‹ค์Œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋‹ˆ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค. ๋ ˆํผ๋Ÿฐ์Šค https://stackoverflow.com/questions/72598348/xcode-14-beta-build-issues-wi..
ยท๐ŸŽ iOS & Swift
๋ฉ”์„œ๋“œ ์ •์˜ func compare(_ other: Date) -> ComparisonResult ๋‹ค๋ฅธ ๋‚ ์งœ์™€ ๋น„๊ตํ•ด์ฃผ๋Š” ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ ์˜ˆ์‹œ import Foundation // Date String let targetDateString = "2022-08-10" let comparisonDateString = "2022-12-08" let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd" // Optional Binding guard let pastDate = dateFormatter.date(from: targetDateString), let futureDate = dateFormatter.date(from: com..
ยท๐ŸŽ iOS & Swift
Method Swizzling Method Swizzling์€ ๊ธฐ์กด์˜ ๋ฉ”์„œ๋“œ๋ฅผ Runtime ์‹œ์— ์›ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋กœ ๋ฐ”๊พธ์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ Swizzling๋Š” ๋’ค์„ž๋‹ค, ๋’ค๋ฐ”๊พธ๋‹ค์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. [์ถœ์ฒ˜] : Swift ) Method Swizzling ์‚ฌ์šฉ ์ƒํ™ฉ ๋Ÿฐํƒ€์ž„ ์‹œ์— ๋ฉ”์„œ๋“œ๋ฅผ ๋ฐ”๊ฟ€ ์ผ์ด ํ•„์š”ํ• ๊นŒ์š”? ์ง์ ‘ ์‚ฌ์šฉํ•  ์ผ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์žฅ ์™€๋‹ฟ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ์š”. ์•ฑ์˜ ์ƒ๋ช…์ฃผ๊ธฐ์— ์•ฑ์˜ ๋ถ„์„ ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•จ ํŠน์ • ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์„ ํ•œ ๋ฒˆ์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•จ ํŠน์ • SDK๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•  ๋•Œ, ํŠน์ • ๋ฉ”์„œ๋“œ์—์„œ ํ•ญ์ƒ ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•จ โ–ช๏ธ ๊ฐ€๋ น, ์„œ๋น„์Šค ํ”„๋กœ์ ํŠธ ๋‚ด์— GA๋ฅผ ๋ถ™์—ฌ์•ผ ํ•˜๊ณ  ํ™”๋ฉด๋งˆ๋‹ค GA ๊ด€๋ จ API๋ฅผ ..
ยท๐ŸŽ iOS & Swift
๋“ค์–ด๊ฐ€๋ฉฐ ์•ˆ๋…•ํ•˜์„ธ์š” ๋งˆ์ง€๋ง‰ 4ํŽธ์ž…๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์•„์ง๊นŒ์ง€๋„ ์ถœ์‹œํ–ˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฏฟ๊ธฐ์ง€๊ฐ€ ์•Š์•„์š”. ์ถœ์‹œ๋ผ๋Š” ์ž์ฒด๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๊ธฐ ๋ณด๋‹ค๋Š” '๊ธฐํš-๋””์ž์ธ-๊ณ„ํš-๊ฐœ๋ฐœ-์ถœ์‹œ-ํšŒ๊ณ ' ํ•˜๋‚˜์˜ ์‚ฌ์ดํด์„ ๊ฒฝํ—˜ํ–ˆ๊ณ , ์Šค์Šค๋กœ ๋ฌด์—‡์ด ๋ถ€์กฑํ•œ์ง€ ์•Œ๊ฒŒ ๋˜๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„์ง ๊ฐˆ ๊ธธ์ด ์ •๋ง ๋จผ ๊ฒƒ ๊ฐ™์•„์š”. ๋ฐ˜์„ฑ๋„ ๋งŽ์ด ํ•˜๊ฒŒ ๋˜๊ณ , ์—ด์‹ฌํžˆ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ๋„ ๋“ญ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์„ค๊ณ„ ์ฒ˜์Œ ๊ณ„ํšํ–ˆ๋˜ ๋ฐ์ดํ„ฐ ์„ค๊ณ„ ๋ถ€๋ถ„์ด์—์š”. ์‹ค์ œ ๊ฐœ๋ฐœ์‹œ์— ์•ฝ๊ฐ„ ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„์€ ์žˆ์ง€๋งŒ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” Realm์„ ์ด์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. Realm์˜ ์„ฑ๋Šฅ๊ณผ ์†๋„ ์ธก๋ฉด์—์„œ Core Data, SQL Lite๋ณด๋‹ค ๋” ๋›ฐ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์ด๊ณ  ๋ฌด์—‡๋ณด๋‹ค ์‰ฌ์šด ์‚ฌ์šฉ๋ฒ•์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ ํฐ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ž์ฒด๋ฅผ ์ €์žฅํ•˜๊ณ  ๊บผ๋‚ด..
ยท๐ŸŽ iOS & Swift
๋“ค์–ด๊ฐ€๋ฉฐ ์•ˆ๋…•ํ•˜์„ธ์š” 3ํŽธ์ด๋„ค์š”... ๊ธ€ ์“ฐ๋Š”๊ฒŒ ์„ธ์ƒ์—์„œ ์ œ์ผ ํž˜๋“  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. (์—„์‚ด...ใ…Ž) ์ด๋ฒˆ ํŽธ์—์„œ๋Š” ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ๊ณผ์ •๊ณผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๊ฒช์—ˆ๋˜ ์–ด๋ ค์›€ ๋˜๋Š” ๊ธฐ์ˆ ์ ์ธ ๊ณ ๋ฏผ์— ๊ด€๋ จ๋œ ๋‚ด์šฉ์„ ์ ์–ด๋ณผํ…๋ฐ์š”. ์–ด๋–ป๊ฒŒ ์ ์–ด์•ผ ํ• ๊นŒ์š”... ์ด๋ฒˆ ํŽธ์€ ๊ฐ€๋ณ๊ฒŒ ์ ์–ด๋†“๊ณ  ๊ณ ์ณ๊ฐ€๋Š” ์‹์œผ๋กœ ๋ฐฉํ–ฅ์„ ์žก์•„์•ผ๊ฒ ์–ด์š”.. ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๋ฐ ๊ณต์ˆ˜ ์‚ฐ์ • ์ฒ˜์Œ์—๋Š” ๋…ธ์…˜์œผ๋กœ ๋Ÿฌํ”„ํ•˜๊ฒŒ iteration ์ฃผ๊ธฐ์— ๋”ฐ๋ฅธ ๊ฐœ๋ฐœ ๊ณต์ˆ˜ ์‚ฐ์ •์„ ์ง„ํ–‰ํ–ˆ์—ˆ๋Š”๋ฐ, ์ด์Šˆ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ์— ๋”ฐ๋ผ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋Š” ์ €์—๊ฒŒ๋Š” ๊นƒํ—ˆ๋ธŒ Project๋ฅผ ์ด์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ ‘๊ทผ์„ฑ์ด ๋” ํŽธํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ํฐ ์–ด๋ ค์›€์„ ๋Š๊ผˆ๋˜ ๋ถ€๋ถ„์ด ๊ฐœ๋ฐœ ๊ณต์ˆ˜ ์‚ฐ์ •์ด์—ˆ๊ณ , estimated time(์˜ˆ์ƒ ์‹œ๊ฐ„)์„ ์ •ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋ถ€๋ถ„๋“ค์„..
ยท๐ŸŽ iOS & Swift
๋“ค์–ด๊ฐ€๋ฉฐ ๋„ค, 2ํŽธ์œผ๋กœ ์ฐพ์•„์™”์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ œ๊ฐ€ ๋””์ž์ธ์„ ์–ด๋–ป๊ฒŒ ํ–ˆ๊ณ , ๊ทธ์— ๋”ฐ๋ผ ๋””์ž์ธ ์‹œ์Šคํ…œ์€ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๋ ค๊ณ  ํ–ˆ๋Š”์ง€ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ ˆํผ๋Ÿฐ์Šค๋‚˜ ๊ธ€์„ ์ฐธ๊ณ ํ–ˆ์ง€๋งŒ ๊ทธ ์ค‘์—์„œ SOCAR ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ๊ฐ€์žฅ ๋งŽ์ด ์ฐธ๊ณ ํ–ˆ๊ณ  ๋”ฐ๋ผํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž ํ•จ๊ป˜ ๊ฐ€๋ณด์‹œ์ฃ . (์–ด๋””๋ฅผ ๊ฐ€์ž๋Š” ๊ฑธ๊นŒ์š”?) ์žฌ๋ฃŒ ์ค€๋น„ ๋ณธ๊ฒฉ์ ์ธ ์™€์ด์–ด ํ”„๋ ˆ์ž„๊ณผ ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“ค๊ธฐ ์ „์— ์žฌ๋ฃŒ๋ฅผ ์ค€๋น„ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์žฌ๋ฃŒ๋ผ๊ณ  ํ•จ์€ Color, Typography, Icongraphy, Spacing, Radius, UI Components ๋“ฑ์„ ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ๋ญ ๋” ๋งŽ์„ ์ˆซ๋„ ์žˆ๊ฒ ์ฃ ? ์žฌ๋ฃŒ๋ฅผ ๋จผ์ € ์ค€๋น„ํ•ด๋†“๊ณ  ๋””์ž์ธ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ •๋ง ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ผ ์ œ ๋ง˜๋Œ€๋กœ ๋Ÿฌํ”„ํ•˜๊ฒŒ ํ•œ ๊ฒƒ์ด๋ผ์„œ ์ „๋ฌธ๊ฐ€์˜ ์ž…์žฅ์—์„œ ๋ณด๋ฉด ํ—ˆ์ ‘ํ•  ์ˆ˜๋„ ์žˆ..
ยท๐ŸŽ iOS & Swift
๋“ค์–ด๊ฐ€๋ฉฐ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์˜€๋˜ ์˜ค์˜คํˆฌ๋‘๋ฅผ ์ถœ์‹œํ•˜๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •์„ 3~4ํŽธ ์ •๋„๋กœ ๊ฐ€๋ณ๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๊ธ€์„ ์“ฐ๊ณ  ๋‹ค๋“ฌ๋Š” ๊ณผ์ •์ด ์ถฉ๋ถ„ํ•˜๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™๊ณ  ์†”์งํ•œ ํ›„๊ธฐ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ๋ชปํ•  ๊ฒƒ ๊ฐ™์•„์„œ ์˜์‹์˜ ํ๋ฆ„๋Œ€๋กœ ์“ฐ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ์Šคํ† ์–ด ๋งํฌ๋Š” https://apple.co/3fvzPlo ๊ณผ ๊ฐ™์œผ๋‹ˆ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” 1.0.0 ๋ฒ„์ „์œผ๋กœ ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ๋งŒ ๊ฐ€์ง€๊ณ  ์ถœ์‹œํ•œ ์ƒํ™ฉ์ด๋ผ ์—…๋ฐ์ดํŠธ๋ฅผ ์กฐ๊ธˆ์”ฉ ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ค‘๊ฐ„ ์•„์ด๋””์—์ด์…˜ ์ค‘ ๊ธฐ์กด์— ์•„์ด๋””์—์ด์…˜์„ ํ–ˆ๋˜ ๊ฒƒ์„ ๋ฐœ์ทŒํ•ด์™”์Šต๋‹ˆ๋‹ค. ์ƒ๊ฐ์„ ๋ชจ๋‘ ํ’€์–ด์“ฐ์ž๋ฉด ๋„ˆ๋ฌด ๊ธธ์–ด์ง€๊ธฐ์— ์ตœ๋Œ€ํ•œ ์š”์•ฝ์„ ํ•ด์™”์–ด์š”. ๊ทธ๋ ‡๊ธฐ์— ๊ธฐ์Šน์ „์ด ๋ถ€์กฑํ•˜๊ณ  ๊ฒฐ๋งŒ ๋ณด์ด๋Š” ๋Š๋‚Œ์ด ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ์–‘ํ•ด๋ถ€ํƒ๋“œ..
ยท๐ŸŽ iOS & Swift
๊ทธ๋™์•ˆ ๋„ˆ๋ฌด ๋‚˜ํƒœํ•ด์กŒ๋˜ ๋‚˜ ์ž์‹ ์„ ๋ฐ˜์„ฑํ•˜๋ฉฐ ๋‹ค์‹œ ๊ณต๋ถ€๋„ ์—ด์‹ฌํžˆ ํ•˜๊ณ , ๊ธ€๋„ ๋‹ค์‹œ ๊พธ์ค€ํžˆ ์จ๋ณด๊ณ ์ž ํ•œ๋‹ค. ์˜ค๋Š˜์€ fastlane์„ ์ด์šฉํ•ด์„œ TestFlight์— ์ž๋™์œผ๋กœ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ธํŒ…์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ ๋‚ด ๋นŒ๋“œ ๋ฒˆํ˜ธ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ฃฐ์„ ๋‚ ์งœ + ๋นŒ๋“œ ํšŸ์ˆ˜(ex. 2210041, 2210042, ..., 22100499)๋กœ ํ•˜๊ณ  ์žˆ์–ด์„œ ์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ–ˆ๋‹ค. Ruby ๋ฌธ๋ฒ•์„ ์ž˜ ๋ชฐ๋ผ์„œ ์„œ์นญ์„ ํ•˜๋‹ค๊ฐ€ ๊ฐ์‚ฌํ•˜๊ฒŒ๋„ ์ž˜ ์“ฐ์—ฌ์ง„ ๋ธ”๋กœ๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•˜์—ฌ ์ผ๋ถ€๋งŒ ์ˆ˜์ •ํ•ด์„œ ์Šคํฌ๋ฆฝํŠธ๋กœ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ์ˆ˜๋™์œผ๋กœ TestFilght์— ์—…๋กœ๋“œํ•˜๋Š” ์ž‘์—…์ด ๋„ˆ๋ฌด ๊ท€์ฐฎ์€ ์ž‘์—…์ด ๋œ๋‹ค. ๊ทœ๋ชจ๊ฐ€ ์ž‘์œผ๋ฉด ์ƒ๊ด€์ด ์—†๊ฒ ์ง€๋งŒ, ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ž๋™ํ™”๋ผ๋Š” ์ž‘์—…์ด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋งŒํผ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด ๋  ์ˆ˜ ๋ฐ–์— ..
taeeekki
'IOS' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)