카카오맵 API 사용해 주변 편의점 검색
지도의 기능은 무궁무진하지만, 화면은 손바닥만 하니까 여러분의 그 어떤 취향도 맞춰 보려고 카카오맵 첫 화면이 홈탭으로 개편됩니다. 사용패턴에 딱 맞는 카맵 사용법. 급속도로 낱낱이 알려드릴게요. 5.11.0에서 홈탭사용하기 집까지 가는 길, 회사로 가는 길, 자주 가는 곳이라면, 탭 한번으로 길찾기 결과를 확인하시기 바랍니다. 교통수단을 등록하면 현위치로부터 내 장소까지 소요시간도 보여드립니다.
Contents
구글 맵 사용하기
메인 엑티비티에서 검색 결과 아이템을 클릭하면 해당 데이터를 바탕으로 맵 엑티비티에서 구글맵을 표시합니다. 검색 위치를 표시하는 과정은 아래와 같이 이루어집니다. 맵 엑티비티 실행 getParcelableExtra 로 SearchResultEntity 를 받아옴 OnMapReadyCallback 을 구현한 맵 엑티비티에서 onMapReady 를 처리 이때 마커를 만들고 지도에서 이를 표시 검색 결과 entitiy 불러오기 구글맵 마커 제작하기 그리고 현재 위치를 요청하도록 합니다.
코루틴을 사용한 비동기 요청 처리
미리 정의 해준 coroutineContext 로 launch 해서 코루틴을 시작합니다. 연결망 업무를 할때는 withContextDispatchers.IO 를 통해 IO 스레드를 사용해 처리해줍니다.
레트로핏을 사용해 티맵 api 를 통해 지도 검색을 합니다. 요청 body가 응답 성공이라면 이를 통해 데이터를 파싱하여 리사이클러 뷰의 어뎁터에 데이터를 등록하게됩니다.
이때는 UI 스레드 즉, 메인 스레드를 사용합니다.
플레이스토어 서버 알림
서버는 구글 PubSub이 제공하는 알림을 통해 인앱 구매 이벤트를 실시간으로 모니터링할 수 있습니다. 구글 PubSub은 Push 구독과 Pull 구독이 있습니다. Push 는 서버가 지정한 URL로 통지 데이터를 보내는 것입니다. Pull 은 서버 내에서 PubSub 객체를 사용해 통지 데이터를 가져오는 것입니다. 두 방식에는 장단점이 있으니 를 통해 낱낱이 확인 후 결정하세요 Push 는 통지 데이터를 받는 오픈 API를 사용하며 Pull 에 비해 구현이 간단합니다.
이 글에서는 Push 구독을 다루겠습니다. PubSub은 새 구매, 구독 갱신, 결제 문제 등등, 상태가 변경될 때마다. 서버에게 알려줍니다.
구매 정보 가져와 상태값 확인 ProductPurchase Get API
이제 발급받은 access token으로 을 호출하면 사용자의 구매 데이터를 불러올 수 있습니다. 그리고 구매 데이터의 purchaseState가 구매완료0인지 확인하면 유효성 검증 로직은 완료로 판단됩니다 jwt 생성시 scope는 API 문서에 명시되어있는대로 다음과같이 설정하면 됩니다. 그리고 앱에서 인앱결제가 발생했을 때, 안드로이드는 각 결제건을 purchaseToken 값으로 identify하는데, 이 purchaseToken은 다음과같은 형태의 문자열입니다.
영수증 요청
새 구매는 서버가 클라이언트로부터 결제정보를 받는 것으로 시작합니다. 이 글에서는 클라이언트를 다루지 않기 때문에 필수로 필요한 필드에 대해서만 다루겠습니다. 필드 이름은 클라이언트에 따라 상이할 수 있습니다. productId 우리들이 판매하는 인앱 상품 id 입니다. packageName 우리 애플리케이션의 패키지 이름입니다. urchaseToken 인앱 상품을 구매할 때 소비자 기기에 제공된 토큰입니다.
packageNamecom.some.thingproductIdcom.some.thing.inapp1purchaseTokenincafcigbkclcgbnbk . 해당 필드 값을 사용해 플레이스토어에게 영수증을 요청합니다. 영수증 호출은 구글의 androidpublisher 객체를 통해 진행합니다.
달라진 점, 끊임없이 변화해야 하는 이유
여러분을 가장 처음 맞이하는 첫화면, 홈탭을 준비하면서 생각을 거듭했습니다. 카카오맵을 오래 사용한 만큼 익숙함은 쌓였고, 그럴수록 새로운 변화는 더 크게 체감되실 수밖에 없겠죠. 지도의 찐 재미와 지속 가능성, 그리고 명랑한 마음으로 준비하고 있는 신기능을 보기 좋게 담기 위해 개편을 진행하였습니다. 더 좋은 서비스로 보답할 수 있도록 늘 최선을 다하겠습니다. 다른 점 사이드메뉴에서 제공했던 기능은 홈탭과 마이탭에서 제공합니다.
길찾기 버튼이 검색창 옆으로 이동합니다. 공지 및 설정은 홈탭 최 지금부터 이용하실 수 있습니다.
자주 묻는 질문
구글 맵 사용하기
메인 엑티비티에서 검색 결과 아이템을 클릭하면 해당 데이터를 바탕으로 맵 엑티비티에서 구글맵을 표시합니다. 궁금한 사항은 본문을 참고하시기 바랍니다.
코루틴을 사용한 비동기 요청
미리 정의 해준 coroutineContext 로 launch 해서 코루틴을 시작합니다. 구체적인 내용은 본문을 참고 해주시기 바랍니다.
플레이스토어 서버 알림
서버는 구글 PubSub이 제공하는 알림을 통해 인앱 구매 이벤트를 실시간으로 모니터링할 수 있습니다. 구체적인 내용은 본문을 참고 해주시기 바랍니다.