# Gyro Data ๐Ÿƒ๐Ÿป > <ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„> 2022-12-26 ~ 2022-12-30 ## ์†Œ๊ฐœ ๐Ÿ“‘ > Gyro & Accelerometer ์„ผ์„œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ€์†๋„์™€ ์›€์ง์ž„์„ ๊ฐ์ง€ํ•˜๋Š” `Application` ์ž…๋‹ˆ๋‹ค. <br> ## ํŒ€์› ๐Ÿคผโ€โ™‚๏ธ > ์•ˆ๋…•ํ•˜์„ธ์š” ! Gyro Data ํ”„๋กœ์ ํŠธ๋ฅผ ํ•จ๊ป˜ํ•˜๋Š” **`bonf`** ์™€ **`hyeon2`** ์ž…๋‹ˆ๋‹ค ! ๐Ÿ™‹๐Ÿปโ€โ™‚๏ธ ๐Ÿ™‹๐Ÿปโ€โ™€๏ธ > |bonf| seohyeon2| |:-------:|:--------:| | <img src="https://i.imgur.com/yGJljLR.jpg" width="350" height="350"/> | <img src="https://avatars.githubusercontent.com/u/50102522?v=4?s=100" width="350" height="350"/> | |[@apwierk2451]("https://github.com/seohyeon2")|[@seohyeon2]("https://github.com/seohyeon2")| ## ๊ตฌํ˜„ ํ™”๋ฉด ๐Ÿ“ฑ |MainView| MeasureView|ReplayView(play) | |:-------:|:--------:|:--------:| |<img src="https://i.imgur.com/aTXW9zE.png" width="200" height="400"/> |<img src="https://i.imgur.com/8z11Pgr.png" width="200" height="400"/>| <img src="https://i.imgur.com/74Nrdkh.png" width="200" height="400"/>| |ReplayView(view)| SwipeAction|FileManager| |:-------:|:--------:|:--------:| |<img src="https://i.imgur.com/O4uWZqg.png" width="200" height="400"/> |<img src="https://i.imgur.com/XfDrX4L.png" width="200" height="400"/>| <img src="https://i.imgur.com/SmDU1qy.png" width="200" height="400"/>| ## ๊ตฌํ˜„ ๋‚ด์šฉ ๐Ÿง‘โ€๐Ÿ’ป #### MainView - TableView ๊ตฌ์„ฑ - ์ธก์ • ์‹œ๊ฐ„, ์ธก์ • ์ข…๋ฅ˜(Gyro, Accelerometer), ์ธก์ • ๋‚ ์งœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” cell๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. - ๊ฐ ์…€์€ swipe๋ฅผ ์ด์šฉํ•˜์—ฌ play, delete๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. - DiffableDataSource๋ฅผ ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๋‚˜ํƒ€๋‚˜๋ฉด 10๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. #### MeasureView - SegmentControl์„ ์ด์šฉํ•˜์—ฌ ์ธก์ • ์ข…๋ฅ˜๋ฅผ ๊ณ ๋ฅธ ํ›„ ์ธก์ • ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ธก์ •์ด ์‹œ์ž‘๋œ๋‹ค. - ์ธก์ •์ด ์‹œ์ž‘๋˜๋ฉด ํ˜„์žฌ ์Šค๋งˆํŠธํฐ์˜ ์ธก์ • ๊ฐ’์ด ๊ทธ๋ž˜ํ”„์™€ ์ˆ˜์น˜๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค. - ์ •์ง€ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ธก์ •์ด ์ •์ง€๋œ๋‹ค. - ์ •์ง€๋œ ์ƒํƒœ์—์„œ ์ €์žฅ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ CoreManager์— ์ €์žฅ๋˜๊ณ  FileManager๋ฅผ ํ†ตํ•ด Document์— ํŒŒ์ผ์ด ์ €์žฅ๋œ๋‹ค. #### ReplayView - ํ”Œ๋ ˆ์ด ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ €์žฅ๋˜์–ด์žˆ๋˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฐจํŠธ์— ์ธก์ • ๊ฐ’ ํ‘œ์‹œ - ์ •์ง€ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ฐจํŠธ ์ •์ง€ <br> ## ํ•ต์‹ฌ ๊ฒฝํ—˜ ๐Ÿ’ก - [x] CoreData - [x] CoreMotion - [x] FileManager - [x] UIBeziurPath - [x] CAShapeLayer - [x] DiffableDataSource <br> ## ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ… ๐Ÿง ### 1. frame, bounds ํฌ๊ธฐ ์„ค์ • ํƒ€์ด๋ฐ - ReplayView์˜ ChartView์˜ frame ํฌ๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ xOffset์„ ์“ฐ๋ ค๊ณ  ํ–ˆ์ง€๋งŒ, frame์˜ width, height ๋ชจ๋‘ 0๊ฐ’์œผ๋กœ ๋‚˜์˜ค๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. frame์˜ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋˜๊ธฐ ์ „์ด๋ผ์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์•„์„œ viewWillAppear์—์„œ ์ž‘์„ฑํ•˜๋ฉฐ ์ž„์‹œ์ ์œผ๋กœ ์ˆ˜์ •ํ•˜์˜€์ง€๋งŒ, ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ๋– ์˜ค๋ฅด์ง€์•Š์•„ ์•„์ง ์™„์ „ํ•œ ํ•ด๊ฒฐ์„ ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. <br> ### 2. CABasicAnimation ์ฐจํŠธ ๋ฌธ์ œ - ์ฒ˜์Œ ์ฐจํŠธ ๊ทธ๋ฆฌ๋Š” ๊ฒƒ์„ CABasicAnimation์„ ์ด์šฉํ•˜์—ฌ ์ฐจํŠธ๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋๋‚˜๋Š” ์‹œ๊ฐ„์€ ๋™์ผํ•˜๋‚˜, x, y, z๊ฐ ๊ทธ๋ž˜ํ”„์˜ ์„  ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์ ์ด ๋งž์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ”Œ๋ ˆ์ด ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ํƒ€์ด๋จธ๋ฅผ ๋ฐœ์ƒํ•ด 0.1์ดˆ๋งˆ๋‹ค ๋‹ค์Œ ์ขŒํ‘œ๋กœ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ˆ˜์ •ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.