Skip to content

[Refactor] Kakao Map SDK v2 지도 화면 Compose 전환 #546

Description

@edv-Shin

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 사용처 없는 항목 정리

체크리스트

  • KakaoMapView (AndroidView로 MapView 호스팅, start/MapReadyCallback 캡슐화)
  • 생명주기 브리지 (LifecycleEventObserver + DisposableEffect: resume/pause/finish)
  • rememberKakaoMapState() (핸들 + 준비 여부 호이스팅)
  • onMapReady/onMapError 콜백 노출
  • MatchingMapScreen에서 combinedMapData ↔ redrawMarkers 연결 (마커/클러스터)
  • MatchingMapFragment ComposeView 전환
  • 보조 지도 2곳 확산 + 공통 컴포저블 추출
  • 카메라 저장/복원, 오버레이, QA

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions