프로젝트/Android Project) 가장 가까운 주유소 찾기 app

안드로이드 스튜디오 프로젝트 (1차 업데이트 , 가까운 주유소 찾기 어플)

roder 2022. 2. 4. 15:01

깃허브 주소: https://github.com/leeugun123/find_gas_station

 

처음 안드로이드 개발자를 하기로 마음 먹으면서, 어플을 만들기로 작정하였는데 어떤 어플을 만들어야 할까 고민하다가 구글링을 해보니 API를 이용하여 데이터를 파싱하는 프로젝트가 있어서 그것을 중점적으로 프로젝트를 진행해 보았다. 

 

내가 제공 받은 API는 오피넷이라는 사이트 곳에서 현재 내가 있는 주소를 request하면 그 요청에 맞추어 내 주변에 있는 주유소 데이터(가격,상호명,상표 등등)을 제공해주는 API였다.

https://www.opinet.co.kr/user/custapi/custApiInfo.do(오피넷 사이트 주소)

 

처음 API가 무엇인지와 API 파싱하는 법을 몰랐던 나는 구글링을 통해 API 개념과 내가 받을 정보를 응답받기 위해

API에서 요구하는 것들을 보내 내가 원하는 데이터를 파싱하여 ArrayList에 저장하여 그 list에 저장된 배열을 가지고 

구글맵 api를 이용하여 주유소정보를 표시하고 주유소의 정보를 UI에 맞게 보여주는 작업을 하려고 하였다.

하지만 여기서 제일 힘들었던 부분이 내 주변 주유소의 위치 좌표를 구글 맵에 표시하는 것이 제일 어려웠다... 

어려웠던 이유는 오피넷에서 제공하는 좌표는 카텍 좌표계이고 ,구글 맵에서 지원하는 좌표계는 WGS84 경위도 좌표계이기 때문이다. 그 좌표계를 변환해주는 API를 찾던 와중 포기하고 싶은 마음이 굴뚝같았다...

하지만 다행히 그 좌표계를 변환해주는 class를 만든 개발자분이 계셨고, 그 분이 올리신 소스파일을 복붙하여 적용했더니 정확한 위치에 구글맵에 주유소 위치가 표시되었다...

또한 위치가 표시되니 그에 걸맞는 주유소 정보를 User가 편하게 보기 위하여 각 주유소의 정보를 recyclerView를 사용하여 그 탭을 클릭하면 그 탭에 걸맞게 구글맵을 이동하는 등에 유저가 편하기 보기 위한 작업을 구현하였다.

또한 설정에 들어가면 User가 자신이 보고 싶어 하는 기름 ,반경 범위, 정렬 기준을 선택하여 두 액티비티간의 상호작용을 원활하게 만들었고 그 기준으로 자신이 원하는 주유소 정보를 사용자가 원하는 기준에 걸맞게 볼 수 있도록 구현하였다.

스플래쉬 화면
가격 정보를 나타내는 UI
사용자가 원하는 조건에 설정할 수 있는 설정 화면