---
# System prepended metadata

title: Untitled

---


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 객체 구현 
