hobbyloop / hobbyloop-aos

hobbyloop member android service
0 stars 1 forks source link

[design] #7 Test naviagation design #8

Closed meenjoon closed 5 months ago

meenjoon commented 6 months ago

(해당 브랜치는 develop 브랜치에 병합하는 용도가 아닌 전체 네비게이션 설계 코드 공유용입니다.)

BuildSrc를 설계하지 않아 의존성 방향은 고려하지 않고 진행한 점 참고바랍니다.

[네비게이션 구조 설계] image

7

meenjoon commented 6 months ago

구현하면서 겪은 문제 및 추후 개선해야할 점

[전체 화면 다이얼로그 구현 시도와 문제 발생]

앱에서 NavGraphBuilder의 dialog() 기능을 사용해 전체 화면 다이얼로그를 시도했습니다. 그러나, 이 방식을 사용했을 때 바텀 네비게이션과 이전 화면이 희미하게 보이는 문제가 발생했습니다.

[해결책 시도 및 결과]

문제를 해결하기 위해 다양한 매개변수를 조정했으나 문제가 지속되어, 다음과 같은 방법으로 접근했습니다

  1. 경로에 따른 바텀 네비게이션 표시 조정: 홈(HOME), 시설(FACILITY), 예약(RESERVATION), 저장소(STORAGE), 마이페이지(MYPAGE) 경로에서만 바텀 네비게이션을 표시하도록 설정했습니다. 그 외의 경로에서는 바텀 네비게이션을 숨겼습니다. 이 방식은 사용자가 홈 화면에서 더 깊은 레벨의 화면으로 이동할 때 모든 하위 화면에서 바텀 네비게이션이 사라지는 한계를 가지고 있었습니다.

  2. 다이얼로그 기능 재사용 및 최종 해결: 다이얼로그 문제를 해결하기 위해 dialog() 기능을 다시 사용하면서 새로운 화면을 Scaffold로 감싸 전체 화면 구성을 시도했습니다. 이 방식으로 바텀 네비게이션과 이전 화면이 보이는 문제를 성공적으로 해결할 수 있었습니다.

[결론]

NavGraphBuilder의 dialog()를 사용하여 전체 화면 다이얼로그를 구현하되, 화면을 Scaffold로 감싸는 방법으로 초기 문제를 해결했습니다. 이로써 사용자 인터페이스의 일관성을 유지하면서도 필요한 기능을 제공할 수 있게 되었고 네비게이션 탭 화면에서 더 깊은 레벨의 화면으로 이동할 때 모든 하위 화면에서 바텀 네비게이션이 사라지는 한계를 해결하였습니다.

[개선사항]

현재 프로젝트는 build-logic 모듈이 미적용 상태로, 각 모듈의 빌드 구성이 중복되어 빌드 속도가 느려지고 있습니다. build-logic 모듈을 도입하면 이러한 중복을 해결하고 모든 빌드 스크립트를 중앙에서 관리할 수 있습니다. 이는 빌드 시간 단축은 물론, 프로젝트의 일관성을 유지하고 예기치 않은 오류를 줄이며 관리를 간편하게 할 수 있습니다. 따라서 프로젝트 기능 개발 전에 build-logic 모듈의 적용을 고려해야 합니다.