CoreData
CoreMotion
- 커스텀 폰트
## 첫 번쨰 페이지
- NavigationController
- rightBarButtonItem
- UITableView ( CD의 데이터를 표현 )
- scroll ( 데이터 10개씩)
- 끝에 도달할 시 로딩
- cell ( 버튼 2개 )
- 삭제 ( CoreData, json 모두 )
- Play ( 세 번쨰 화면 이동 )
## 두 번쨰 페이지
- 상단 네비게이션바
- 중앙 타이틀 (측정하기)
- rightBarButtonItem (저장)
- 측정된 값이 있을 경우 데이터를 CoreData와 FileManager를 이용해서 json으로 저장합니다.
- 값이 없을 경우 데이터가 없다는 알림을 표시합니다.
- 저장하는 json의 포맷은 자유롭게 설정합니다.
- 측정 중 저장버튼을 누를 수 없습니다.
- 데이터 저장은 비동기로 처리하고 Activity Indicator를 표시해주세요.
- 저장이 성공하면 Indicator를 닫고, 첫 번째 페이지로 이동합니다.
- 저장이 실패하면 Indicator를 닫고, 페이지를 이동하지않고 실패 이유를 Alert으로 띄웁니다.
- segment control
- Acc
- Gyro
- lock같은걸 걸어야 함(측정시작후에)
- GraphView
- CoreMotion - CMMotionManager -> acc, gyro
- acc, gyro 2가지로 타입이 나누어집니다.
- acc로 되어있을 경우 측정 시 acc 데이터를 가져와서 화면에 표시합니다.
- gyro로 되어있을 경우 측정 시 gyro 데이터를 가져와서 화면에 표시합니다.
- 측정 중에는 타입이 변경되지 않아야합니다. 값 가져와서 그래프 그리기
- 하단 버튼 2개
- 측정
- 측정 버튼을 누르면 타이머가 동작하고 10hz로 SegmentControl에 설정된 값에 따라서 acc 혹은 gyro의 x, y, z값을 가져옵니다.
- 타이머는 1초에 10개의 데이터를 가져올 수 있도록 0.1초로 설정하고, timeout 시간은 600입니다.
- 각 틱마다 x, y, z 값을 모두 저장합니다.
- 다시 측정하는 경우 기존의 값들을 초기화합니다.
- 정지
- 타이머가 동작할 때만 활성화 합니다.
- 버튼을 누르면 타이머를 멈춥니다.
## 세 번쨰 페이지
- 페이지 타입 정의
- Navigation Bar
- title -> 다시보기
- Label
- 1. 날짜 2022/09/07 15:10:11
- 2. Play or View
- GraphView
- 타입에 따라 Play / Stop 버튼 유무
- 타이머 레이블
애니메이션을 3 path 동시에 실행
gyro data 객체 구현