티스토리 뷰

나의 공부방

[Fitbit] Fitbit이란?

망나니개발자 2020. 2. 12. 00:42
반응형

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. 실행 결과 ]

 

 

 

 

참고 자료

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함