Kakao Map SDK v2(com.kakao.vectormap)를 사용하는 지도 화면을 Jetpack Compose로 전환합니다.
SDK v2는 Composable이 아니라 Android View(MapView) + 콜백(start() → MapReadyCallback) 기반이라, 공식 Compose 지원이 없습니다. 그래서 AndroidView interop으로 MapView를 호스팅하고 생명주기·상태를 직접 연결합니다. (마커/클러스터 로직은 기존 MapViewManager + TED 재사용)
작업 범위
KakaoMapView 재사용 Composable 신규 (AndroidView로 MapView 래핑, start()/MapReadyCallback 캡슐화, factory 1회 생성)
rememberKakaoMapState() 상태 홀더 신규 (KakaoMap 핸들 + 준비 여부 호이스팅)
- 생명주기 연동:
LifecycleEventObserver + DisposableEffect로 resume/pause/finish 전달, 누수 검증
- 지도 탭 / 카메라 이동 종료 / 라벨 클릭 리스너를 콜백 람다로 상위 Composable에 전달
MatchingMapScreen 신규 → combinedMapData 구독 + 기존 MapViewManager.redrawMarkers / ClusterCalculator 연결 (마커/클러스터)
MatchingMapFragment BindingFragment → Fragment + ComposeView + applyAppTheme 전환
- 파일럿(MatchingMap) 패턴 확정 후
ExercisePlaceSearchFragment / PlaceSearchFragment 확산 + 공통 컴포저블 추출
- 카메라 위치 저장/복원(회전 보존), 중앙 고정 마커 등 오버레이 Compose화
- 회전 / 백그라운드 복귀 / destroy 시나리오 QA (생명주기 누수·크래시 검증)
- 관련 XML, drawable, dimens 사용처 없는 항목 정리
체크리스트
Kakao Map SDK v2(
com.kakao.vectormap)를 사용하는 지도 화면을 Jetpack Compose로 전환합니다.SDK v2는 Composable이 아니라 Android View(
MapView) + 콜백(start()→MapReadyCallback) 기반이라, 공식 Compose 지원이 없습니다. 그래서AndroidViewinterop으로MapView를 호스팅하고 생명주기·상태를 직접 연결합니다. (마커/클러스터 로직은 기존MapViewManager+ TED 재사용)작업 범위
KakaoMapView재사용 Composable 신규 (AndroidView로 MapView 래핑,start()/MapReadyCallback캡슐화, factory 1회 생성)rememberKakaoMapState()상태 홀더 신규 (KakaoMap 핸들 + 준비 여부 호이스팅)LifecycleEventObserver+DisposableEffect로 resume/pause/finish 전달, 누수 검증MatchingMapScreen신규 →combinedMapData구독 + 기존MapViewManager.redrawMarkers/ClusterCalculator연결 (마커/클러스터)MatchingMapFragmentBindingFragment → Fragment + ComposeView + applyAppTheme 전환ExercisePlaceSearchFragment/PlaceSearchFragment확산 + 공통 컴포저블 추출체크리스트
KakaoMapView(AndroidView로 MapView 호스팅, start/MapReadyCallback 캡슐화)rememberKakaoMapState()(핸들 + 준비 여부 호이스팅)