앱을 다시 배포하다

내가 원스토어에 올려놓은 앱을 총 3개이다.  통근버스 앱은 쌍으로 동작해야 하는 거라서 실제로는 2개인 셈이다.

그동안 오래된 사용 안하는 스마트폰을 버스에 놓고 다니면서 버스위치를 파악했었다. 그러다가 배터리가 부풀어 올라서 스마트폰이 고장나는 일이 생긴 이후로 배터리로 인한 폭발 문제가 걱정되기 시작했다. 배터리 때문에 불이 나서 버스가 전소되기라도 하면 그 피해를 보상해야 할텐데, 버스위치 확인을 위해 고생만 하고 돈까지 물어줄 순 없는 일이기 때문이다.

그러던 중에 중랑지점에 불이 났다. 정확한 화재원인은 밝혀지지 않았지만, CCTV에 의하면 오래된 PC 근처에서 스파크가 발생하면서 불이 났다. 버스의 오래된 폰 때문에 걱정하던 차에 안되겠다 싶어서 중고폰을 회수하고 위치확인 서비스를 중단했다.

그 뒤로 버스가 늦어지는 일이 생겨서 다시 버스위치확인 앱에 대한 요구가 늘었다.  나는 사정을 얘기하고 더 이상 서비스가 어렵다고 얘기했다.  일부 팀장이 사업지원팀에 대책 마련을 요구하니, 버스에서 사용하는 태블릿이 있다고 한다. 네비게이션 용도로 사용하고 있는데, 거기에 앱을 깔면 안되냐는 것이다.

10월말 시험이 끝나고 본격적으로 기능을 개선하기 시작했다. 문제는 네이게이션 용도라서 중간에 껐다고 다시 켤 수도 있어 앱이 제대로 동작하지 않을 수 있다. 이전에 놔둔 폰은 그 용도로만 사용하기 때문에 앱을 띄어 놓으면 동작하는 데, 문제가 없지만 이젠 백그라운드에서도 동작해야 하는 문제가 생겼다. 이전에도 그런 문제가 있었지만, 오래된 중고폰에는 절전 관련 기능에 대한 제약이 심하지 않아 문제가 없었다.

오랜만에 개발환경을 띄워서 실행하는데, 오류만 잔뜩 발생한다. 소스를 수정한  게 없는데 라이브러리와 컴파일 환경인 그래들의 설정이 변경되어 발생하는 문제이다. 전부 지우고 다시 깔아도 마찬가지였다. 열심히 구글링을 한 결과 버전체크 제외 및 호환성 관련 설정을 하니 앱이 실행되었다. 특히 새로운 버전의 그래들에서는 상세한 오류에 대한 메세지를 볼 수 있었다.

그동안 백그라운드에서 앱이 실행되지 않는 이유도 찾을 수 있었다. 구글의 설명대로 잠자기모드에서도 앱을 잘 호출해 준다. 하지만, 일정시간이 지나면 앱이 종료된다. 문제는 알림을 위한 채널 ID가 일치하지 않아 종료되는 거였다. 즉 워크매니저에서 startforground 실행시 넘겨주는 채널 ID가 일치하지 않아 제대로 동작하지 않았고 워크매니저가 종료되면서 위치 확인서비스인 GpsService 도 종료된다.

그리도 한가지 더 문제가 있었는데,  MainActivity가 처음 실행되면서 환경 설정을 하는데, 미실행상태에서 알림이 오면 설정값과 비교할 수가 없어 처리하지 못한다. 즉, 초기화면 뿐만 아니라 메세지 수신 단에서도 환경설정이 안되어 있으면 파일에 저장된 설정파일에서 불러오도록 수정을 했다.

이렇게 2가지 문제를 해결하고 나니, 앱이 백그라운드상태이거나 심지어 앱이 실행되고 있지 않은 상태에서도 알림을 받으면 위치정보를 확인하고 응답을 해준다. 이건 다른 앱에서도 발생하는 문제라서 다른 앱도 오류를 수정했다.

하루동안 테스트하고 정상동작되는 것을 확인한 다음에 다시 서비스 개시 공지를 했다. 그런데, 그 다음날부터 위치확인이 안되는 것이다. 버스를 타면서 확인해보니, 태블릿이 꺼져 있었다. 기사분께 물어보니, 배터리가 없어서 끈 상태에서 충전중이라고 한다.  다시 문제가 발생했다.  기계가 꺼져 있으면 모든 것이 꽝인 셈이다. 다시 사업지원팀장에게 기사분께 당부해 달라고 부탁을 했다.

이젠 통근버스 위치 안내에 대한 부담을 덜어야 겠다. 그동안 일주일 마다 한번씩 배터리 충전하느라 괜히 신경쓰였는데,이젠 나도 모르겠다. 버스기사분이 알아서 잘 충전하고 잘 켜놓기를 바래야 한다.  버스내에서 와이파이 사용량이 부족해서 네트워크가 안되어도 그건 어쩔 수 없는 일이다. 그동안은 내가 2,200원을 내고 알뜰폰 유심을 사용했었다.

원스토어에 올린 내가 만든 앱

One Comment

  1. 누군지는 모르지만, 운전자용앱을 다운 받아 호출부호를 경륜버스와 동일하게 설정한 사람이 있다. 위치에 대한 응답은 안하지만, 메세지는 계속 수신하고 있다. 혹시라도 응답을 하게 되면 사용자들은 헷갈릴 거 같다. 남의 호출부호를 사용하지 않도록 강제로 막을 방법은 없어서 강제로 호출부호를 삭제하는 기능을 추가했다. 다만, 이미 내려받은 앱에서는 동작하지 않아 걱정된다. 우리가 호출부호를 바꿔야 하나?

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.