티스토리 뷰
1. Fitbit 소개
[ Fitbit 소개 ]
-
Fitbit이란?: 걸음수뿐만 아니라 이동거리, 칼로리 소모량 등 기본적인 활동에서부터 다양한 운동까지 모니터링하는 피트니스 파트너
-
Fitbit 탄생: 2007년 무선 센서기술이 우리의 건강 및 피트니스에 엄청난 영향을 미칠 수 있는 수준까지 발전했음을 깨닫고, 사람들의 활동 방식에 획기적인 변화를 가져다 줄 웨어러블 제품 개발 시작
-
Fitbit 목표: 재미있고 의욕을 북돋아주는 제품을 제작하여 건강한 라이프스타일 장려
-
Fitbit 사명: 모두가 건강하고 활동적인 삶을 살 수 있도록 동기를 부여하고 의욕을 복돋아주는 것
[ Fitbit 기능 ]
-
모니터링 기능: 활동량, 운동, 몸무게, 수면등을 모니터링하여 24시간 실시간 정보를 제공한다.
-
동기화: 활동 데이터를 모바일 기기 또는 컴퓨터로 실시간으로 보내준다.
-
진도: Fitbit 대시보드는 온라인과 모바일에 최적화되어 쉽게 모니터링 할 수 있다.
-
목표 달성: 달성률을 확인하고 단계별 배지를 획득한다.
-
Inspire: 친구와 가족을 초대하여 공유하고 경쟁하여 강력한 동기부여를 제공한다.
2. Fitbit 핵심 기술
[ Pure Pulse ]
-
심장 상태 모니터링 기술로 빛을 이용해 혈류를 측정하는 방법을 사용한다.
- 손목의 심박수, 혈류, 혈액량이 변하면 혈액은 녹색 빛을 흡수한다. 혈액량이 많아질수록 녹색 빛 흡수량이 늘어나는데, 피부에 녹색 빛을 비추고 포토다이오드라는 빛 검출기를 사용하여 얼마나 많은 빛이 흑수되었는지 측정한다. 이러한 측정 방법을 사용해 분당 심박수를 확인한다.
[ Smart Track ]
-
Fitbit 앱에서 운동 내역들을 자동으로 인식하여 기록하는 기술(활동 시간, 소모 칼로리, 심박수 구간 등)
-
자신에게 맞는 피트니스 방법을 알려주고 활동량을 파악하여 동기 부여
-
학계에서는 전신에 최대 20개 센서를 부착하는데, Fitbit은 하나의 센서만으로 동일한 기능을 수행하도록 함
-
걷기, 달리기, 유산소운동, 일립티컬, 실외 자전거, 스포츠(테니스, 축구, 농구), 수영 총 7개의 활동 인식
[ 수면 측정 ]
-
실제 수면 시간, 뒤척인 시간, 수면 중 깨어난 시간을 자동 측정하는 수면 측정 기술
-
'수면 단계'를 분석하는 기술 개발을 통해 얕은 수면, 깊은 수면, 렘 수면 및 깨어난 시간까지 측정하여 그래프로 시각화
-
수면 효율 향상을 위해 다양한 기능 제공
3. Fitbit Application Architecture 가이드
[ Size ]
-
Install 하는 시점에서 가능한 Application의 최대 크기는 10Mb로 제한
- 설치된 후에 전체 시스템 공간에서 가능한 최대 크기는 15Mb로 제한
[ Javascript ]
-
/app/, /common/, /companion/과 같은 프로젝트 폴더들은 여러 개의 js 또는 ts 파일을 포함
-
Build 과정에서 Script들은 TypeScript Compiler와 rollup.js에 의해 컴파일되고, 최적화 됨
-
Build 결과 응용을 위한 하나의 ECMAScript 5.1 파일과 companion을 위한 또 다른 파일을 생성됨
-
생성된 JS 파일은 JerryScript engine을 사용하여 장치에서 구동됨
[ Fitbit 폴더 구조 ]
[ Fitbit 폴더 - app ]
-
Device에서 실행되는 Application 로직을 담고 있다.
-
이 폴더 안에 있는 코드들은 Device API를 사용할 수 있고 Presentation Layer으로 접근하거나 companion과 통신하거나 설정을 읽고 저장할 수 있다.
-
작성한 코드를 build하기 위해서 /app/ 폴더 안에 index.js 또는 index.js가 반드시 필요
[ Fitbit 폴더 - companion ]
-
Device에서 실행되는 Companion 로직을 담고 있다.
-
이 폴더 안에 있는 코드들은 Companion API를 사용하여 인터넷으로 직접 요청을 보내고 Application과 통신할 수 있다.
-
/companion/ 폴더 안에 index.js 또는 index.js가 있으면 Companion관련 코드들이 빌드된다.
[ Fitbit 폴더 - common ]
-
이 폴더는 Application과 Companion사이에 공유되어 중복을 줄여준다.
-
ES6 모듈로 파일을 작성하고, application 또는 companion에 import 할 수 있다.
-
빌드 과정에서 최종 output에 불필요한 모듈을 제외하기 위해 자동적으로 tree shaking을 수행한다.
[ Fitbit 폴더 - resources ]
-
/resources/: 이 폴더는 빌드 과정에서 Application과 묶이는 모든 자원을 포함한다.
-
/resources/index.gui: 이 파일은 메인 Fitbit SVG 파일로 Application User Interface markup이 정의되어 있다. 이 파일은 폴더는 필수적으로 존재해야 하는 파일이다.
-
/resources/widgets.gui: 필수적인 Fitbit SVG 파일로, index.gui 안에서 어떤 시스템 위젯들이 사용되는지를 control한다.
-
/resources/*.css: Fitbit CSS 파일들은 index.gui 파일에서 \ 태그를 통해 사용할 수 있다.
-
/resources/*.png and /resources/*.jpg: 이미지 파일들은 index.gui에서 태그를 통해 Presentation Layer에서 사용될 수 있다.
[ Fitbit 폴더 - settings ]
-
이 폴더는 React JSX를 사용하여 작성된 application settings를 담고 있다.
-
이 폴더는 사용자가 앱을 설정하도록 사용될 수 있다.
-
이 파일 안에 있는 코드들로 Settings API를 사용할 수 있다.
4. Fitbit 개발
[ 0. Fitbit 개발 입문 ]
-
Fitbit SDK를 이용해서 빠르게 Application이나 Clock Faces 등을 제작할 수 있음
-
Fitbit 개발을 위한 Fitbit Studio 제공
-
Fitbit device에서 무선 인터넷 연결을 제공함
[ 1. 프로젝트 생성 ]
[ 2. 예뮬레이터 설정 ]
[ 3. 실행 결과 ]
참고 자료
'나의 공부방' 카테고리의 다른 글
[블록체인] NFT(Non-Fungible Token) ERC-721이란? (2) | 2020.08.21 |
---|---|
[블록체인] 이더리움(Ethereum)에 크립토키티(CryptoKitties)와 같은 게임 개발하기 (0) | 2020.07.22 |
[리뷰] 클린 코드(Clean Code) 핵심 요약 (2) | 2018.07.12 |
[IDE] Eclipse에서 IntelliJ 단축키 사용하기 (2) | 2017.12.08 |
[JSP] 서블릿(Servlet)이란? (148) | 2017.11.04 |