Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

개선사항 리스트 #2

Open
dongx0915 opened this issue Jan 1, 2025 · 0 comments
Open

개선사항 리스트 #2

dongx0915 opened this issue Jan 1, 2025 · 0 comments

Comments

@dongx0915
Copy link
Owner

dongx0915 commented Jan 1, 2025

  1. Navigation 로직

문제 상황

  • 현재 Navigation 로직이 여러 곳으로 흩어져있음
    • Route Enum : Core 모듈
    • NavHost : App 모듈
    • NavGraph 구현체 : 각 Feature 모듈

개선 필요점

  • Navigation 로직을 한 곳에서 집중적으로 관리할 수 있는 방법이 있는지 확인 필요

현재 예상 방안

  • 아래와 같이 Screen으로 이동시키기 전에 추가적인 로직이 필요하여 NavGraph를 각 Feature 모듈에서 생성하고 있는 것 같음
  • 추가적으로 필요한 로직은 ScreenRoute를 이용해서 처리하고, NavGraph에선 ScreenRoute로 추가 처리에 필요한 데이터만 넘겨주는 방식
  • 최종적으로 NavGraph 생성 부분은 core 모듈에 존재하는 것이 목표
fun NavGraphBuilder.communityDetailGraph(
    navOnBack: () -> Unit
) {
    composable(
        route = "${CommunityRoute.Detail.route}/{post}",
        arguments = listOf(
            navArgument("post") { type = NavType.StringType }
        ),
        enterTransition = { enterAnimation() }
    ) {
        // TODO 해당 부분을 CommunityDetailScreenRoute()에서 수행하고, Graph 부분은 Core 모듈로 이동시켜도 될 것 같음
        val post = it.arguments?.getString("post")?.parseFromJson<PostUiData>()
        val viewModel = hiltViewModel<CommunityDetailViewModel>()

        LaunchedEffect(Unit) {
            viewModel.setPost(post ?: PostUiData())
        }

        CommunityDetailScreen(viewModel = viewModel, navOnBack = { navOnBack() })
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant