iOS) UISheetPresentationController ์—์„œ ํ‚ค๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž

text field ๋ฅผ ํ†ตํ•ด ํ‚ค๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ์„ , ๊ฒฐ๊ณผ๋Š” WWDC21 Customize and resize sheets in UIKit ์—์„œ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๋ณด๋“œ์™€ ๊ด€๋ จ๋œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. medium ๋†’์ด์˜ sheet ๋Š” automatic keyboard avoidance ๋ฅผ ์ง€์›ํ•ด์„œ keyboard ๋ฅผ ๊ณ„์‚ฐํ•ด์„œ ์ปค์ง€๊ฑฐ๋‚˜ ์ถ•์†Œ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์•Œ์ง€๋งŒ, custom detent ์˜ ๋†’์ด์—๋„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ ์šฉ๋˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘‰ ํ™•์ธํ•ด๋ณด์ž ๋‘ ๊ฐ€์ง€๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” UISheetPresentationController ์˜ detents ํ”„๋กœํผํ‹ฐ์— ๋‘ ๊ฐ€์ง€ detent ๋ฅผ ์„ค์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ let sheetVC = SheetVC(..

iOS 2023. 10. 10. 18:29
iOS) YPImagePicker error : Stored properties cannot be marked unavailable with `@available`

Xcode 15(15A240d) ์—…๋ฐ์ดํŠธ ์ดํ›„ YPImagePicker ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ €์žฅ ํ”„๋กœํผํ‹ฐ๊ฐ€ @available ๋ฅผ ๊ฐ€์ง€๋ฉฐ ์ƒ๊ธฐ๋Š” ์—๋Ÿฌ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ fork ํ•ด์„œ ์ง์ ‘ ์ €์žฅ ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ญ์ œํ•ด๋ณผ๊นŒ ์ƒ๊ฐ๋„ ํ•ด๋ณด๊ณ  ์ด๋ฒˆ Xcode ์—…๋ฐ์ดํŠธ์™€๋„ ๊ด€๋ จ์žˆ๋Š”๊ฑฐ ๊ฐ™์•„์„œ ๊ธฐ๋‹ค๋ ค๋ดค์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ 2023.9.26 ๊ธฐ์ค€์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! https://github.com/Yummypets/YPImagePicker/releases/tag/5.2.2 ์•„๋ž˜ ์ปค๋ฐ‹ ๊ธฐ๋ก์—์„œ @available ๋ฅผ ๊ฐ€์ง€๋Š” ์ €์žฅ ํ”„๋กœํผํ‹ฐ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์—๋Ÿฌ๋ฅผ ๊ฒช๊ฒŒ ๋˜๋ฉด pod update ๋ฅผ ํ†ตํ•ด์„œ YPImagePicker ๋ฒ„์ „์„ 5.2.2 ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.(cocoaPods 1.13.0 ๊ธฐ์ค€) htt..

iOS 2023. 9. 28. 15:42
iOS) MVVM + RxSwift, RxCocoa ์ ์šฉ

โœ… RxSwift ๋Š” mvvm ๊ณผ ํ•จ๊ป˜ ์“ฐ๊ธฐ๋กœ ์œ ๋ช…ํ•œ๋ฐ ๊ทธ ์ด์œ ๋ฅผ ์•Œ์•„๋ณด์ž ๋ฆฌ์•กํ‹ฐ๋ธŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ž๋™์œผ๋กœ ๋ฐ˜์˜ํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์—์„œ ์ถœ๋ฐœํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ๊ณผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ์ „ํŒŒ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ•˜๋Š” ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๊ณ  ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ๋ฆฌ์•กํ‹ฐ๋ธŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ํŠน์ • ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋กœ์ง์— ์กฐ๊ธˆ ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฆฌ์•กํ‹ฐ๋ธŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์‚ฌ์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ReactiveX ์ด๊ณ , Swift ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ RxSwift ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  RxSwift ๋Š” mvvm ํŒจํ„ด์—์„œ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์˜ ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์†Œ๊ฐœ๋ฉ๋‹ˆ๋‹ค. mvvm ํŒจํ„ด์—์„œ๋Š” view model ์„..

iOS/RxSwift 2023. 8. 31. 21:47
iOS) ๊ฐ•ํ•œ ์ˆœํ™˜ ์ฐธ์กฐ(Strong Reference Cycle)๋Š” ์–ด๋–ค ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•˜๋‚˜์š”?

"์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณ„์† ์‚ฌ์šฉ๋˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ์•„์žˆ์–ด์•ผ ํ•œ๋‹ค." ๋ผ๋Š” ๋ช…๋ถ„์„ ์ฃผ๋Š” ๊ฒƒ์ด Strong Reference(๊ฐ•ํ•œ ์ฐธ์กฐ)์ž…๋‹ˆ๋‹ค. ๋ ˆํผ๋Ÿฐ์Šค ์นด์šดํŠธ๊ฐ€ ์ฆ๊ฐ€๋  ๋•Œ๋Š” ๊ฐ•ํ•œ ์ฐธ์กฐ์ธ ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ•ํ•œ ์ฐธ์กฐ๋Š” ๋ณ„๋„์˜ ์‹๋ณ„์ž๋ฅผ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฐ•ํ•œ ์ฐธ์กฐ๋กœ ์—ฌ๊ฒจ์ง‘๋‹ˆ๋‹ค. ์ด๋•Œ ์–ด๋–ค ์ƒํ™ฉ์— ๋Œ€ํ•ด์„œ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์˜ ์‚ฌ์šฉ์ด ๋๋‚ฌ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ ˆํผ๋Ÿฐ์Šค ์นด์šดํŠธ๊ฐ€ 0์ด ๋˜์ง€ ์•Š์•„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š” memory leak ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๊ฐ•ํ•œ์ฐธ์กฐ ์ˆœํ™˜(strong reference cycle)์ด๋‹ค. ์–ธ์ œ ๋ฐœ์ƒํ•˜๋‚˜์š”? ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์„œ๋กœ๋ฅผ ๊ฐ•ํ•˜๊ฒŒ ์ฐธ์กฐํ•˜์—ฌ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ๋ณ€์ˆ˜์— ์ธ์Šคํ„ด์Šค๋ฅผ ํ• ๋‹นํ•˜๋ฉฐ ์ƒ๊ธฐ๋Š” ๋ ˆํผ๋Ÿฐ์Šค ์นด์šดํŠธ ์ด์™ธ์— ์„œ๋กœ๊ฐ€ ์ฐธ์กฐํ•˜๋ฉด์„œ ๋ ˆํผ๋Ÿฐ์Šค ์นด์šดํŠธ๊ฐ€ ์ถ”๊ฐ€๋กœ ์ฆ๊ฐ€. nil ์„ ํ• ..

iOS 2023. 7. 12. 18:29
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
ยซ   2025/04   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
๋งํฌ
Total
Today
Yesterday