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

ios16

[HIG] Navigation Bar ๐Ÿงญ Human Interface Guidelines์— ๋Œ€ํ•œ ํ•ด์„๊ณผ ์ฃผ๊ด€์ ์ธ ์‚ฌ๋ก€ ๋ถ„์„์„ ์ถ”๊ฐ€ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. Navigation Bar๊ฐ€ ๋ญ”๋ฐ โ“ Navigation Bars - Bars - iOS - Human Interface Guidelines - Apple Developer Navigation Bars A navigation bar appears at the top of an app screen, below the status bar, and enables navigation through a series of hierarchical screens. When a new screen is displayed, a back button, often labeled with the title of the prev.. 2022. 5. 31.
[iOS] ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ฝ”๋“œ๋ฒ ์ด์Šค, ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ ๋‘˜๋‹ค ์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•๐Ÿฏ Component ๐Ÿ’ญ ์š” ํ•˜๋‹จ์˜ ๋ฒ„ํŠผ์ด ๋งŽ์€ ๋ทฐ์—์„œ ์žฌ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์–ด์„œ ์ปดํฌ๋„ŒํŠธํ™” ํ–ˆ์Šต๋‹ˆ๋‹ค ์ดˆ๊ธฐํ™”ํ• ๋•Œ setLayout์—์„œ width์™€ height๋ฅผ ์žก์•„์คฌ๊ตฌ, centerX๋งŒ ์žก์•„์ฃผ๋ฉด ๋ฐ”๋กœ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์™ธ์˜ ๋ฒ„ํŠผ UI์™€ title, ํ™œ์„ฑ·๋น„ํ™œ์„ฑํ™” ์ƒํƒœ ๋“ฑ์€ setUI(.type), setTitle, setAble ๋“ฑ์˜ ํ•จ์ˆ˜๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๐Ÿšจ ์ €๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ๋ทฐ๋ฅผ ์งฐ๊ธฐ ๋•Œ๋ฌธ์— BottomButton ์ด๋ผ๋Š” ํด๋ž˜์Šค๋ช…์œผ๋กœ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŒ€์›์€ ์ด๊ฑธ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋‚˜ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•๐Ÿ’ก ๋ฐฉ๋ฒ•์€ ์ƒ๊ฐ๋ณด๋‹ค ๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ–ˆ์Šด๋‹ˆ๋‹ค ! ๋ณดํ†ต ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” required init์—๋„ ์ดˆ๊ธฐํ™” ํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹น class BottomB.. 2022. 5. 30.
[HIG] Onboarding ๐Ÿ›ซ Human Interface Guidelines ์›๋ฌธ ํ•ด์„๊ณผ ํ•จ๊ป˜ ์‚ฌ๋ก€ ๋ถ„์„์„ ์ถ”๊ฐ€ํ•ด์„œ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๐Ÿ›ซ ์˜จ๋ณด๋”ฉ์€ ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž์™€ ๋‹ค์‹œ ๋Œ์•„์˜ค๋Š” ์‚ฌ์šฉ์ž๋ฅผ ํ™˜์˜ํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์ž…๋‹ˆ๋‹ค. ๐Ÿ“ Human Interface Guidelines ๋น ๋ฅด๊ณ , ์žฌ๋ฐŒ๊ณ , ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ฃผ๋ฉฐ, ์„ ํƒ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์˜จ๋ณด๋”ฉ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ฐฉํ•ด๋ฐ›์ง€ ์•Š๊ณ  ์•ฑ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๋Š”๋ฐ์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Onboarding - App Architecture - iOS - Human Interface Guidelines - Apple Developer Onboarding Onboarding lets you welcome new users and reconnect with returning ones. An optional onbo.. 2022. 5. 20.
[iOS] RxDataSource ๐Ÿ˜ก ๐Ÿ˜ก ์•ผ์‹ฌ์ฐจ๊ฒŒ Rx๋กœ ์ปฌ๋ ‰์…˜๋ทฐ/ํ…Œ์ด๋ธ”๋ทฐ๋ฅผ ๊ตฌ์„ฑํ–ˆ๋Š”๋ฐ .. ๊ฐ‘์ž๊ธฐ .. ์„น์…˜์ด ํ•„์š”ํ•˜๋‹ค..? ๊ทธ๋Ÿผ RxDataSource๋ฅผ ์“ฐ์„ธ์š”.. RxDataSource๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ โ“ Rx๋ฅผ ํ†ตํ•ด collectionView๋ฅผ ๋ฐ”์ธ๋”ฉํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค .. ์„น์…˜์ด ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ์—๋Š” RxSwift , RxCocoa dataSource ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์„น์…˜์ด ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ตฌํ˜„์ด ์กฐ๊ธˆ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ RxDataSource๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์„น์…˜์˜ ์—ฌ๋Ÿฌ ์•„์ดํ…œ์„ ๋„ฃ์–ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub - RxSwiftCommunity/RxDataSources: UITableView and UICollectionView Data Sources for RxSwift (sections, .. 2022. 5. 17.
[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.