딱히 책으로 제대로 배운 적 없이 인터넷 자료로만 배워서 그런 건가 싶기도 하고 안드 개발 구조를 잡을 때 막막함을 느껴서 혹시 정립된 구조가 따로 있는 건지 싶어 질문글 써 봅니다.


제가 알아봤을 땐 구글에서 미는 androidx가 대센 것 같아서 그걸 가급적 차용하려 했고 처음 봉착한 문제는 viewmodel이었습니다. 안드로이드에서는 이미 파괴한 뷰에서 조금이라도 뭔갈 시켰다간 곧바로 크래시가 나기에 그걸 안전하게 다루는 게 메인 이슈였던 걸로 알고 있습니다. kotlinx.coroutines의 안드로이드 확장도 이걸 어느 정도 해결하기도 했고요. 이 맥락에서 androidx는 lifecycle + viewmodel이란 대안을 내놓아서 뷰모델을 배워보는데 의존성을 명시하는 게 상당히 고달팠습니다. 이걸 또 해결한다고 dagger나 koin같은 걸 쓴다는 데 컴파일 타임 흑마법이기도 하고 또 다른 학습곡선인지라 이걸 정말 다른 데에서 쓰는지도 모르겠어서 하다 말았습니다. jetpack compose는… ㅎㅎ


여기서 첫번째 질문입니다. 이런 뷰랑 데이터 분리 쪽에서 어떤 방법을 쓰는지요?


의존성을 꾸역꾸역 명시하기만 하면 어찌어찌 쓸 순 있었습니다. 근데 androidx에서 다른 뷰간 네비게이션을 하는 게 일단 간단해보이진 않았습니다. startActivity나 addFragment보다 뷰간 연관성을 알기 쉬운 방법이 있을까 싶었는데 제가 근성이 부족한지 자꾸만 정말로 이런 복잡한 방법을 쓰는 건가 하는 생각만 들었습니다.


해서 두 번째 질문은 뷰 네비게이션엔 어떤 방법을 주로 쓰는지입니다.