-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
- ViewModel 클래스를 만든다.
- ViewModel() 상속해서 만들면 된다.
- 화면에 보여줘야 하는 데이터를 변수로 생성한다.
- 화면에 보여줘야 하는 데이터는 model 폴더 안에 data class로 만들어 놓는다.
- 변수의 타입을 MutableLiveData로 한 번 더 감싸줘야 한다.
- 이 ViewModel 클래스를 사용할 곳에 가서 초기화 해주기
- 초기화 할 때 사용하는 메소드 = ViewModelProvider(this).get(DibsViewModel::class.java)
- 생성한 변수를 외부 클래스에서 접근할 수 있도록 getter랑 setter 함수를 public으로 만들어 놓기
- getter 함수 = 생성한 변수를 반환
- setter 함수 = 생성한 변수의 값을 변경, 서버 통신 함수를 호출하여 서버로부터 받아온 데이터로 변수 값 변경
- FooddeukService(인터페이스) 에서 서버 API 함수를 모양만 정의한다. (retrofit에서 제공해주는 @get, @post, base URL 뒤에 붙는 파라미터들 설정)
- FooddeukAPI(인터페이스에 있는 함수 실제 구현하는 곳)에서 FooddeukServiceImpl.service.만들어놓은 함수() 를 return하는 함수 생성
- ViewModel setter 안 함수 내용 작성 = FooddeukAPI.함수.enqueue(object : Callback<List> {}) 쓰면 override 하라는 표시 뜸 onResponse()랑 onFailure() 오버라이드하고 onResponse() 안에 변수 값 변경 코드 작성
- setter는 서버 호출이 필요한 곳에서 적절하게 호출해주면 됨
- getter는 observe() 메소드를 호출해서 관찰하게 하다가, 데이터 변경이 관찰되면 할 일을 작성해주면 됨
Notes
- 변수 생성시 여러 개를 해야할 때는 viewmodel에 여러개 때려박지 말구 model에 데이터 클래스에서 필요한 데이터들을 묶어놓는다
- 연습한 open api : https://docs.github.com/en/rest/reference/repos
Metadata
Metadata
Assignees
Labels
No labels