프로젝트를 진행할 때 Google fit을 연동해야하는 상황이었는데.. 정말 정보가 없었다.
developers.google.com/fit/?hl=ko
진짜 개발하면서 제일 힘들었던 부분이기도 하다..
개발하면서 힘들었던 점을 아래와 같이 공유한다.
안드로이드를 위한...
먼저 제공되는 API는 두개인데 Android SDK, REST API 이렇게 두개다.
즉 iOS를 위한 API는 없다.
여기까지는 OK
난 안드로이드 개발자니까 개꿀이군! 하고 넘어갈 수도 있는 부분이었으나 큰 문제가 생겼다.
바로 Android SDK로 전달받는 데이터와 REST API로 전달받는 데이터의 형식이 다르다는 것
그것도 아주 많이.
수치가 다른지 까지는 확인을 못했다. 다만 두개가 아주 크게 다르다 보니 iOS 서비스를 같이 하는 해당 프로젝트는 iOS를 위해 안드로이드도 REST API를 사용해야만 했다...
너무나도 터무니 없는 옛날 자료
제공하고 있는 docs 이나 sample이 너무 나도 옛날 자료다. 정말 업데이트를 1도 안하는 느낌을 준다.
특히나 데이터 제공을 받기 위해 사전에 요청하는 scope의 경우 업데이트 되지 않은 페이지가 있었으며 불친절한 샘플 코드까지 아주 대환장 파티였다.
중간중간 "와 이게 진짜 구글이 서비스를 하는 거라고?" 라는 의문이 지속적으로 들 정도로 굉장히 도태된 서비스였다.
까다로운 OAuth 인증
REST API를 사용하면서 Google fit 을 사용하기위해 사용자 인증을 하는 방법인 OAuth2.0 을 연동하게 되었다.
이부분을 서비스형태로 사용하려면 구글의 OAuth2.0을 인증해야 하는데 별 시덥잖은 이유로 2달정도 걸렸다.
서비스 안내 페이지를 만들어서 제출, 한글이 아닌 영어로 Google fit API를 사용하는 영상을 찍어서 올려라, 사용자 약관을 명시한 URL을 제출해라.. scope 조절해라.. 진짜 아주 미치는줄
결국 인증에 성공했지만 진짜 오래걸렸고, 중간중간 인내심의 한계를 느끼기까지 했다.
가장 큰 문제.. 실시간.
가장큰 문제는 실시간이었다. 위와 같은 우여곡절을 거쳐서 연동을 하면 데이터를 받아 올 수 있다.
다만 실시간이 안된다..
대략적으로 검색해본 결과 Android SDK를 이용하여 데이터를 받아오면 이미 디바이스에 설치된 Google Fit Local Storage를 통해 데이터를 가져와 실시간에 가깝게(?) 데이터를 보여줄 수 있다고 한다 ( 테스트는 안해봄 )
다만 REST API의 경우는 조금 다르다
Google Fit 은 사용자의 데이터를 수집해 특정한 주기? 이벤트?를 받아 수집된 데이터를 Cloud Server에 전달하여 저장한다. 그리고 개발자는 Google Fit 데이터가 저장되어 있는 Cloud Server에 API를 요청하여 데이터를 가져오는 방식.
그런데 위에 말한거처럼 주기나 이벤트가 일정하지 않다보니 CloudServer에서 가져오는 API가 실시간이 아닌 문제가 발생했다.
그렇다고 Google Fit App에서 강제로 Cloud Server에 데이터를 보내는 기능이 있지도 않다.
( 동기화라는 버튼이 있으나 오조오억번 눌러봐도 실시간 갱신 안됨 )
근데 이게 또 주기가 명확하지 않다보니 어떤 유저는 오늘 오전까지 걸은 걸음수가 잘 나오고
어떤 유저는 어제 저녁부터 데이터가 동기화가 안되 Google fit에는 1000걸음을 걸었는데 API로 가져온 값은 10도 안되는 말도 안되는 현상이 발생했다.
이부분에 대해서 수많은 사람들이 Sync issue를 Stackoverflow에 남겨 문의를 하였으나 1도 답변 없음 ㅋㅋ
( 진짜 Google 이라고 이게 ? )
관련 링크
withintent.com/blog/how-to-integrate-google-fit-with-your-android-app/
아주 죽을 맛이었으나... 결국 Known Issue로 가기로 했다.
이왕 깐김에 더 까보자
기본적으로 Google fit과 다이렉트로 연동되는 웨어러블 기기가 있나 ? 없다.
흔한 샤오미도 Me app 을 통해 Google Fit과 연동하지 Google Fit과 다이렉트로 연결 안됨.
삼성헬스는 오피셜로 Google Fit 연동 계획 없음을 밝혔고....
심지어 구글이 인수한 Fitbit도 Google Fit 다이렉트 연동이 안된다.. ㅋㅋㅋ 개그 엌ㅋㅋ
다음에는 진짜 Google Fit 연동은 하지 않았으면... 좋은 경험이었으나 너무 힘들었다... 후
'Develop > Android' 카테고리의 다른 글
Android - FCM Background Screen On (0) | 2021.01.12 |
---|---|
Android - TYPE_STEP_COUNTER, TYPE_STEP_DETECTOR (0) | 2020.12.27 |
Android - 날짜가 변경될 때 발생하는 이벤트. (0) | 2020.12.15 |
Android - Bluetooth 는 위치권한이 필요하다. (0) | 2020.12.14 |
Android App to App 통신에 관하여 - scheme (0) | 2020.08.05 |