- 앱에 대한 간단한 정보
- 상태관리 : GetX 사용중
앱을 만드는 몇 개월동안 계속 풀리지 않는 고민이었던 bottom navigation bar 문제에 관해 포스팅 해보려고 한다.
처음은 IndexedStack을 사용하여 구현하였다. 다만 이 방법에 문제를 발견하였는데,
IndexedStack 방식의 Navigation Bar 전환의 문제
1. navigation 이동시, 가장 상위에 있는 Routes가 무엇인지, 즉 현재 memory에 올라가 있는 controller(GetX)가 무엇인지 파악할 수 없다.
- 즉 이 문제는, 어떤 controller가 언제 memory에 올라갔으며, 올바른 타이밍에 dispose 되었는지 파악하기 어려움을 의미한다.
2. 필자는 사용시 navigation bar에 사용되는 모든 controller들을 전부 올려놓고 사용하였는데, 이는 오랫동안 사용하지 않는 controller가 있을 때 dispose 되지 못하는 문제가 있다.
- 아직 flutter의 원리를 파악하지 못하여 발생한 문제일 수도 있다. 다만 필자는 해당 문제로 애를 꽤나 먹었다..
꽤나 오랜시간동안 이 문제를 해결하기 위해 찾아 헤맸는데, 최근 커피챗 도중 해당 질문을 했을 때, 모든 index마다 Routes를 각각 생성한다? 라는 말을 들었다. 당시에는 이해가 잘 되지 않았지만 힌트를 얻어 찾아보기 시작했다.