๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€20

[HIG] ๐Ÿง Tab Bars HIG์—์„œ ๋งํ•˜๋Š” Tab Bars ํƒญ๋ฐ”๋Š” ํ™”๋ฉด์˜ ํ•˜๋‹จ์— ๋“ฑ์žฅํ•˜์—ฌ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด์˜ ์ข…๋ฅ˜๋‚˜ ์•ฑ์ด ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ดํ•ด์‹œํ‚ต๋‹ˆ๋‹ค. ํƒญ์„ ํ†ตํ•ด ๊ฐ ์„น์…˜ ๋‚ด์—์„œ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์•ฑ์˜ ๊ฐ€์žฅ ์ƒ์œ„ ๋ ˆ๋ฒจ ์„น์…˜ ๊ฐ„์„ ๋น ๋ฅด๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” iOS์˜ ํƒญ๋ฐ”๋Š” ๋ฐ˜ํˆฌ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋กค ๋˜๋Š” ๋ทฐ์—์„œ์˜ ํƒญ๋ฐ”๋Š” ์ปจํ…์ธ ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฐ˜ํˆฌ๋ช…ํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ด์„œ ๋’ค์˜ ์ปจํ…์ธ ๊ฐ€ ๋ณด์ด๋„๋ก ํ•˜๊ณ , ์Šคํฌ๋กค์„ ๋‹ค ํ•ด์„œ ๋”์ด์ƒ ์ปจํ…์ธ ๊ฐ€ ์—†๋Š” ์ƒํƒœ์—์„œ๋Š” ๋ฐฐ๊ฒฝ์„ ์—†์• ์„œ ๋’ค์— ์•„๋ฌด๊ฒƒ๋„ ๋น„์ถฐ๋ณด์ด์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ‚ค๋ณด๋“œ๊ฐ€ ์˜ฌ๋ผ์˜ฌ ๋•Œ๋Š” ์ž๋™์œผ๋กœ ์ˆจ๊น€์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋””๋ฐ”์ด์Šค์˜ ํฌ๊ธฐ๋‚˜ ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ํ‘œ์‹œ๋˜๋Š” ํƒญ์˜ ์ˆ˜๋Š” ์ด ํƒญ์˜ ์ˆ˜๋ณด๋‹ค ์ ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋กœ์—์„œ ํ‘œ์‹œ๋˜๋Š” ํƒญ์˜ ์ˆ˜๊ฐ€ ์ œํ•œ๋˜๋Š” ๊ฒฝ์šฐ, ์ž˜๋ฆฐ ํƒญ์€ ์ถ”๊ฐ€ ํƒญ์ด ๋˜์–ด ๋ณ„๋„์˜ .. 2022. 4. 29.
[iOS] Haptic ์‚ฌ์šฉ๋ฒ•๐Ÿ‘‹ Haptic์„ ๋„ฃ๊ณ  ์‹ถ๋‹ค ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„๋•Œ ๋ˆŒ๋ €๋‹ค๋Š”๊ฒŒ ์ธ์ง€๋˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ ํ–…ํ‹ฑ Haptic์ด ์žˆ์Šด๋‹ˆ๋‹ค ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € Haptic์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด AVFoundation์ด๋ผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ• ๊ฒ๋‹ˆ๋‹ค. ๐Ÿ“„ AVFoundation iOS, tvOS, macOS๋ฅผ ์œ„ํ•œ ๋ฏธ๋””์–ด ํ”„๋ ˆ์ž„์›Œํฌ ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฏธ๋””์–ด ์บก์ณ, ํŽธ์ง‘ ๋ฐ low-level ์ฒ˜๋ฆฌ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฏธ๋””์–ด ์ฒ˜๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋ฏธ๋””์–ด ์žฌ์ƒ ๊ธฐ๋Šฅ์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Apple Developer Documentation ๐Ÿ“„ ์›ํ•˜๋Š” ํ–…ํ‹ฑ ๋„ฃ๊ธฐ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ํ†ตํ•ด ์˜†์— ๋ณด์ด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด UI๋ฅผ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„๋•Œ ๊ฐ๊ฐ ๋‹ค๋ฅธ ํ–…ํ‹ฑ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. AVFound.. 2022. 4. 23.
[iOS] Diffable Datasourceโ“ Diffable Datasource๊ฐ€ ๋ญ๋ƒ? ๊ณต์‹๋ฌธ์„œ ํ•ด์„ ๐Ÿ“„ UICollectionViewDiffableDataSource ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  collectionView์— cell์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด @MainActor class UICollectionViewDiffableDataSource : NSObject where SectionIdentifierType : Hashable, ItemIdentifierType : Hashable collection view์˜ ๋ฐ์ดํ„ฐ์™€ UI ์—…๋ฐ์ดํŠธ ๊ด€๋ฆฌ๋ฅผ ๋” ๊ฐ„๋‹จํ•˜๊ณ  ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธฐ์กด์˜ UICollectionViewDataSource์˜ ํ”„๋กœํ† ์ฝœ์„ ๋”ฐ๋ฅด๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ํ”„๋กœํ† ์ฝœ์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ „๋ถ€ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. collecti.. 2022. 3. 18.
[iOS] Notification Center ๐Ÿ“ก Notification Center์ด๋ž€? ํŠน์ • ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ, ํ•ด๋‹น ์ด๋ฒคํŠธ์˜ ๋ฐœ์ƒ ์—ฌ๋ถ€๋ฅผ observe ํ•˜๊ฒ ๋‹ค๊ณ  ๋“ฑ๋กํ•œ ๋ชจ๋“  observer์—๊ฒŒ ์ „๋‹ฌํ•ด์ฃผ๋Š” ๊ฐ์ฒด ์–ธ์ œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„๊นŒโ“ ์ผ๋Œ€๋‹ค ๋˜๋Š” ๋‹ค๋Œ€๋‹ค ํ†ต์‹ ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์•ฑ ๋‚ด์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํผ์ด๋ผ๋Š” ์ด๋ฆ„์˜ notification์„ ๊ด€์ฐฐํ•˜๊ณ  ์žˆ๋Š” FirstVC์—๊ฒŒ ํ•ด๋‹น noti๊ฐ€ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค! SecondVC์—์„œ dismiss completion์— ํ•ด๋‹น ํผ์ด๋ผ๋Š” ์ด๋ฆ„์˜ notification ์„ post ํ•ด์ฃผ๋ฉด FirstVC์—์„œ ํผ์ด๋ผ๋Š” ์ด๋ฆ„์˜ notification ์„ ๊ด€์ฐฐํ•˜๊ฒ ๋‹ค๊ณ  addObserve ํ•˜๊ณ  ex) ํ™”๋ฉด ์ „ํ™˜ ํ›„ pop ๋˜๋Š” dismissํ•  ๋•Œ ๋Œ์•„์˜จ VC์— ์†ํ•œ ๋ฌด์–ธ๊ฐ€๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š”.. 2022. 3. 14.