Skip to content

CatchPro 고도화 9: 인성폰과 지도네비폰 역할 분리

업데이트 취지

이번 CatchPro 업데이트의 핵심은 인성데이터폰은 오더 확정 속도에 집중하고, 지도네비폰은 배송 경로 확인에 집중하도록 역할을 분리하는 것입니다.

운행 중 가장 중요한 목표는 좋은 오더를 빠르게 잡아 시간당 매출을 높이는 것입니다. 그래서 오더 확정 루프가 돌아가는 인성폰에는 무거운 지도 기능을 최대한 빼고, 지도와 네비게이션은 별도 네비폰에서 크게 보는 구조로 정리했습니다.

1. 인성폰과 지도네비폰 APK 분리

같은 코드베이스에서 두 가지 빌드를 만들도록 정리했습니다.

  • CatchPro 인성폰용: 인성데이터 화면, 접근성 서비스, 자동상세확정, 자동확정 중심
  • CatchPro Navi: 전체화면 지도, AWS 주소 동기화, 네이버/TMAP 내비 실행 중심

두 APK는 같은 휴대폰에 동시에 설치하는 목적이 아니라, 실제 운행처럼 휴대폰 2대에 각각 설치해서 쓰는 구조입니다.

2. 인성폰 APK에서 네이버 지도 SDK 제거

인성폰 APK에는 네이버 지도 SDK가 포함되지 않도록 분리했습니다. 오더 확정 속도에 직접 필요한 기능이 아니기 때문에, 인성폰은 최대한 가볍게 유지하는 쪽이 맞다고 판단했습니다.

검증 결과 인성폰 APK에는 libnavermap.so와 네이버 지도 리소스가 포함되지 않았고, 지도네비폰 APK에만 네이버 지도 SDK가 포함됩니다.

3. 지도네비폰 전체화면 지도 모드

지도네비폰용 CatchPro Navi는 앱을 실행하면 바로 TMAP 연결/지도 화면으로 들어가고, 하단 탭 메뉴 없이 지도 중심으로 사용할 수 있게 했습니다.

  • AWS로 주소 1~6 자동 수신
  • 현재 위치와 주소 마커 표시
  • 현위치 기준 방문 순서 표시
  • 네이버 내비 또는 TMAP 선택 실행
  • 방문 완료한 주소는 완료 버튼으로 삭제

이 기능의 목적은 오더를 여러 개 잡았을 때 짧은 시간 안에 효율적으로 배송 순서를 판단하는 것입니다.

4. 주소 방문 완료 처리

주소를 방문한 뒤 완료 버튼을 누르면 해당 주소 슬롯이 비워지고 지도에서도 제거되도록 했습니다.

방문한 주소를 계속 남겨두면 다음 주소 동기화나 입력이 꼬일 수 있기 때문에, 수행이 끝난 주소는 바로 삭제하는 구조가 더 자연스럽습니다.

5. 인성폰 TMAP 연결탭 정리

인성폰용 TMAP 연결탭에서는 상단 주소/지도 요약 표시 공간을 제거했습니다.

인성폰에서는 지도나 방문순서 요약보다 주소 입력칸, 네비 실행 버튼, AWS 동기화 상태가 바로 보이는 것이 더 중요합니다. 그래서 상단 공간을 비워두지 않고 주소 입력 영역부터 보이도록 정리했습니다.

6. 네이버 지도 안정성 개선

지도네비폰에서는 지도 객체와 마커를 매번 새로 만들지 않도록 수정했습니다.

  • getMapAsync는 최초 1회만 호출
  • 마커와 경로는 key 기준으로 재사용
  • 삭제된 주소의 마커만 제거
  • 상단/하단 패널은 상태바와 내비게이션바를 침범하지 않도록 패딩 적용

이 작업은 지도네비폰에서 화면 확대/축소나 주소 갱신 때 반응이 끊기지 않게 하기 위한 안정화 작업입니다.

7. GitHub 반영과 테스트

오늘 변경분은 GitHub에 커밋해 저장했습니다.

  • Split CatchPro device roles for Navi mode
  • Hide Insung TMAP map summary

검증은 두 빌드 모두 수행했습니다.

./gradlew assembleInsungDebug assembleNaviDebug

두 빌드 모두 성공했고, 실제 연결된 휴대폰에도 인성폰용 APK와 지도네비폰용 APK를 각각 설치해 실행 확인했습니다.

정리

이번 업데이트는 기능을 더 많이 넣는 작업이라기보다, 기본 기능을 약화시키지 않도록 역할을 나누는 작업입니다.

앞으로도 인성폰은 오더를 빠르게 잡는 기능을 최우선으로 두고, 지도네비폰은 잡은 오더를 효율적으로 수행하는 보조 장치로 발전시키는 방향이 맞습니다.