Search
Duplicate

플로깅 앱, Plocka

요약

조깅을 하며 쓰레기를 줍는다는 뜻의 플로깅을 하는 플로거들을 위하여 플로깅 기록을 아카이빙하고 플로깅 크루를 모집하거나 구할 수 있는 앱

역할

총 5명이 함께 진행 (Android 2명, Server 2명, Designer 1명)
Android 개발

성과

2022 인하대학교 슈퍼챌린지 해커톤 최우수상 수상

트러블 슈팅

발생 문제
네이버 지도를 캡처해서 캡처한 사진을 다음 프래그먼트로 넘겨주는 작업
화면을 캡처하는 코드를 구현해서 지도를 캡처할까 했지만 , 캡처한 사진을 갤러리에 따로 저장하지 않고 바로 다른 Fragment로 넘겨주는 작업과 해당 화면에 플로깅 기록들도 같이 나오는데 지도 부분만 캡처하는 방법이 필요했습니다.
네이버 지도 레퍼런스를 찾던 중 takeSnapShot이라는 함수를 발견하였고 해당 함수가 지도를 캡처하는 함수임을 알 수 있었습니다.
해당 함수로 지도를 캡처한 후 Bundle로 bitmap 객체를 Parcelable 형태로 넘겨서 원하는 기능을 구현할 수 있었습니다.
캘린더에 해당 날짜를 클릭했을 때 해당 날짜가 서버에서 넘어온 몇 번째 인덱스인지 알아야 해당 날짜의 데이터를 조회할 수 있었습니다.
인덱스를 캘린더에 같이 저장할 수 없어서 인덱스를 알아낼 방법이 필요했습니다.
서버에서 넘어온 데이터들을 List에 저장한 뒤 해당 날짜를 클릭했을 때 List에서 탐색해서 해당 날짜의 데이터를 찾아서 인덱스를 출력했습니다.
HashMap으로 구현했으면 O(1) time에 처리가 가능했을 것 같습니다.
이전 프래그먼트로 뒤로 가면서 해당 프래그먼트에 맞는 BottomNavigationView 선택.
BottomNavigationView를 이용해서 움직인 프래그먼트들끼리 뒤로 가기 버튼을 누를 시에 프래그먼트는 뒤로 가지만 해당 BottomNavigaionView가 선택되지 않는다는 문제를 발견했습니다.
각 Fragment마다 태그를 달아준 뒤 onBackPressed()가 호출되었을 시 프래그먼트에 해당하는 태그를 찾은 뒤 BottomNavigationView의 아이템이 체크되게 해주었습니다.
프래그먼트들간 이동에서 뒤로 가기 버튼 눌렀을 시 이전 프래그먼트로 이동.
replace().addToBackStack(null)을 이용해서 쉽게 구현할 수 있었습니다.

깃허브 페이지