카카오맵의 생명주기
2022/10/03(월요일)
오늘 공부한 내용
- k-해커톤 준비(줍깅)
- 밤샘 개발,,,
- 카카오맵 API 생명주기
- retrofit2
- mvvm
- rxKotlin
- 코루틴
카카오맵의 생명주기
private lateinit var mapView : MapView //카카오맵뷰
private lateinit var mapViewContainer: ViewGroup
//onResume에서 생성한다.
override fun onResume() {
super.onResume()
//맵뷰 등록
mapView = MapView(this)
mapViewContainer = binding.ploggingKakaoMapView
mapViewContainer.addView(mapView)
}
//onPause에서 맵뷰를 삭제한다.
override fun onPause() {
super.onPause()
mapViewContainer.removeAllViews()
}
MVVM 패턴
구조

- View : 사용자와 상호작용하는 UI, 데이터 변화 감지를 위한 옵저버를 가짐 (ex. Activity, Fragment)
- Model : 앱에서 사용하는 데이터와 그 데이터를 처리(통신)하는 역할 (ex. dataClass, Repository)
- Repository : 데이터 API를 가지는 클래스, 뷰모델은 DB에 직접 접근하지 않고 repository에 접근하여 앱의 데이터를 관리
- View Model : 뷰와 모델 사이의 인터페이스, 데이터바인딩을 전달하며 뷰를 그리기 위한 데이터를 처리하는 역할
- Live Data : 관찰이 가능한(Observable) 데이터 홀더 클래스, 데이터가 변경될때마다 내부적으로 자동으로 알려줌
동작
- View를 통해 사용자 action을 받는다.
- View는 View Model로 action을 전달한다.
- View Model에서 비지니스 로직을 수행한다.
- View Model은 Model에게 데이터를 요청한다.
- Model은 View Model의 요청에 응답한다.
- View Model은 응답받은 데이터를 가공하고 저장한다.
- View Model은 Data Binding을 통해 View를 수정한다