You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
저희 TopDestinations라고 정의한 바텀네비 최상단 4개의 화면에 대한 뷰모델은 어플리케이션과 생명주기를 동일하게 가져가고자 다음과 같이 설정했는데요
// 메인화면 뷰 모델들val homeViewModel:HomeViewModel= viewModel()
val noteViewModel:NoteViewModel= viewModel()
어플리케이션을 실행하면 이런 뷰모델이 바로 생성되어
init {
getTastingNotes()
}
내부의 초기화 함수를 init을 통해 실행시키는데 이러면 초기 유저가 진입했을 때 JWT를 가지고 있지 않아서 API가 무조건 실패하더라고요. 그래서 초기화 관련된 코드를 한곳에 몰아서 로그인이나 회원가입이 성공했을 때 한번에 부르는 형식으로 바꿨습니다.
// 초기 메인 화면 진입 시 수행해야할 작업을 정의합니다.val onInit: () ->Unit= {
homeViewModel.getRecommendWines()
homeViewModel.getWineTips()
noteViewModel.getTastingNotes()
}
깨끗하지는 않지만... 이런식으로 전달해서 화면 진입시 초기 API를 부르는 형식으로 바꿨어요. 아마 더 좋은.. 방식이? 있겠지만 일단 이렇게 해 놓은 상태입니다.
참고)
아래와 같이 TopViewModel을 상태로 정의해놓고, 이를 가져다 활용해보고자도 했지만,
HomeViewModel, NoteViewModel, MapViewModel.... 를 모두 상속받는 모듈이 없더라고요. 모두 상속받는 모듈을 만들자니 God Object가 생기는 느낌이고, 해당 뷰모델을 인자로 넘길 때 해당 모듈이 모든 뷰모델 정보를 가지고 있어야해서 사용하지 못했습니당. 이것도 더 좋은 방식이 뭔가 더 있지 않을까 싶네요.
안녕하세요 동천
저희
TopDestinations
라고 정의한 바텀네비 최상단 4개의 화면에 대한 뷰모델은 어플리케이션과 생명주기를 동일하게 가져가고자 다음과 같이 설정했는데요어플리케이션을 실행하면 이런 뷰모델이 바로 생성되어
init { getTastingNotes() }
내부의 초기화 함수를
init
을 통해 실행시키는데 이러면 초기 유저가 진입했을 때JWT
를 가지고 있지 않아서 API가 무조건 실패하더라고요. 그래서 초기화 관련된 코드를 한곳에 몰아서 로그인이나 회원가입이 성공했을 때 한번에 부르는 형식으로 바꿨습니다.요런식으로 람다형식으로 정의해놓고
깨끗하지는 않지만... 이런식으로 전달해서 화면 진입시 초기 API를 부르는 형식으로 바꿨어요. 아마 더 좋은.. 방식이? 있겠지만 일단 이렇게 해 놓은 상태입니다.
참고)
아래와 같이 TopViewModel을 상태로 정의해놓고, 이를 가져다 활용해보고자도 했지만,
HomeViewModel
,NoteViewModel
,MapViewModel
.... 를 모두 상속받는 모듈이 없더라고요. 모두 상속받는 모듈을 만들자니God Object
가 생기는 느낌이고, 해당 뷰모델을 인자로 넘길 때 해당 모듈이 모든 뷰모델 정보를 가지고 있어야해서 사용하지 못했습니당. 이것도 더 좋은 방식이 뭔가 더 있지 않을까 싶네요.The text was updated successfully, but these errors were encountered: