URL Broadcaster에 GCM(Google Cloud Messaging) + AppEngine EndPoint API 적용 후기

URL Broadcaster는 단순 URL을 받아서 모바일 폰으로 Broadcasting 해주는 프로젝트다.
수 많은 안드로이드 기기로 테스트 하는 분들에게 일일이 타이핑 하는걸 줄여주고 싶다는 승 팀장님의 아이디어를 쉽고 간단한 컨셉으로 만들어보겠다고 위젯으로 만들어본거다.

하지만 지나고 보니 유지보수가 생각보다 많이 들었다.

뭐가 문제인건가?

어떻게 하면 좋을까 며칠을 고민하다, 우연히 GCM Google IO 세션을 듣다가 GCM이 공짜로 풀린걸 알게되었다.
물론, 메시지 히스토리 보관에는 돈이 든다고는 하지만 이 프로젝트에는 GCM 히스토리를 서버쪽에 100건 이상 보관할 필요가 없어보였다.
완전 딱이야! 싶었지만, 많이 고쳐야할 것 같아서 귀찮았다.

하지만 한번 해보기로 했다. 해서..

개편은 이렇게 해보자

  1. Google Cloud Endpoints를 Backend로 사용하자.
  2. Socket.io 대신 Google Cloud Messaging을 사용하자.
  3. Google 인증을 붙이자.

…그래서 하루에 최소 2시간 이상 투자해 개편해봤다.

Google Cloud Endpoint?

API 구조로 AppEngine Backend에 비지니스 로직을 구현하고 이를 허용된 Client에서 사용할 수 있게 한다는 건데 자세한건 Overview of Google Cloud Endpoints 를 보면 될 것 같다.

Google Cloud Endpoint & Google Cloud Messaging 적용

일단, Adding a Backend to Your App In Android Studio 를 따라하는 것으로 간단한 안드로이드 앱을 만든 후, AppEngine Endpoint를 Generate해 봤다.

따라해 보니 생성된 코드로만으로 URL Broadcaster를 사용할 수 있었다.
(하지만 내부가 어케 돌아가는지 알 수 없어서 Concept을 이해하는데 시간이 좀 걸렸다.)

게다가, GCM코드 까지 생성되었다. 우왕굳.

그래서, 셈플의 RegisterActivity.java에 구현된 기능을 위젯으로 옮기는 것으로 개발을 시작했다.

자세한 사항은 위젯 코드를 참고 하면 될 것 같다. (주석은 없다.)

결과물

여전히 앱을 내려 받고, 사이트를 방문 하는 형태는 동일하다.(아래 스샷을 봐도 기능은 예전과 다를바 없다.)

뭐가 개선되었을까?

그 다음은?

사용자의 의견을 수렴해 기능을 하나 하나 추가해 나가야겠다는 생각이 들었다. 간단한 앱이지만 그래도 어딘가 발전 가능성이 있지 않을까 싶어서…

다음에 할일을 적어보면…

일단… 나 부터 즐겁게 사용해야겠다. 뿅~

Back