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

[refactor] 이름 및 패키지 정리, Type-Safe Navigation 적용 #168

Open
wants to merge 25 commits into
base: develop
Choose a base branch
from

Conversation

miller198
Copy link
Collaborator

@miller198 miller198 commented Jan 21, 2025

#️⃣연관된 이슈

resolve #167

📝작업 내용 및 코드

아직 미완성입니다. 에러 해결중
image

변경된 내비게이션에 대한 내용 -> 여기

💬리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

드디어 기어나온 PR
같이 에러 해결 해주세요

class GetUserIdFromDataStoreUseCase @Inject constructor(
    private val localRepository: LocalRepository
) {
    suspend operator fun invoke() : String? {
        return try {
            val userId = localRepository.readUserIdDataStore().first()
            if (userId.isNullOrBlank()) null else userId
        } catch (e: Exception) {
            Log.e("GetUserIdUseCase", "Error reading DataStore", e)
            null
        }
    }
}

앱이 시작되면 MainViewModel에서 이 유스케이스가 실행되면서
DataStore에 있는 UserId 를 가져옵니다.
만약 DataStore에 저장된 UserId가 없다면 (앱 최초실행) MainViewModel 의

viewModelScope.launch {
            val userId = getUserIdFromDataStoreUseCase()
            if(userId == null) {
                createUser()
            } else {
                fetchUser(userId)
            }
        }

에서 createUser()를 실행해서 파베에 유저를 추가하고
저장된 UserIde가 있다면 fetchUser()를 해서 파베에서 유저정보를 받아와서
LocalDataSource의 _currentUser 변수에 저장합니다.

그런데 지금 fetchUser() 분기에서 _currentUser에 저장하는 게 안되고 있어서
위의 사진과 같은 에러 로그가 나와요

최초실행해서 createUser()할때는 또 잘되서 앱이 잘 실행되요ㅡㅜ 왜그럴까욧

250123 추가

앱 데이터 지우고 들어갔을때 화면 이동은 잘 됩니다
검색 -> 등록 화면 넘어가는거만 빼구요

@Composable
internal fun MapBottomBar(
    modifier: Modifier = Modifier,
    userId: String,
    lastLocation: Location?,
    onFavoriteClick: () -> Unit,
    onCenterClick: () -> Unit,
    onProfileClick: () -> Unit
)

BottomNavigation 코드를 위와 같이 바꾸었는데
여기서 원래 userId가 없었거든요 이게 생겨서 나타나는 문제같습니다 더 알아볼게요

MapBottomBar(
            modifier = Modifier.padding(bottom = 16.dp),
            userId = mapViewModel.getUserId(),
            lastLocation = lastLocation,
            onFavoriteClick = {
                onFavoriteClick(mapViewModel.getUserId())
            },
            onCenterClick = {
                onCenterClick()
                mapViewModel.saveCurLocationForced()
            },
            onProfileClick = {
                onProfileClick(mapViewModel.getUserId())
            }
        )

250124

위에 쓴 내용이 원인 맞네요
해당 부분 수정하고 잘 실행 됩니다.
이제 내비게이션 동작이 모두 완벽히 되도록 진행중입니다
현재 Search -> Create 로 넘어갈때 새로 노래 정보를 불러오는게 아니라 Song 인스턴스를 전달하는 방식으로 하고 있는데
이게 잘 안되네요

250125

내비게이션 모두 수정 완료 했습니다.
실행 해보시고 안되는 부분 있으면 알려주세요

@miller198 miller198 added refactor 리팩토링, 코드개선 chore 빌드 및 패키지 labels Jan 21, 2025
@miller198 miller198 added this to the 프로젝트 기반 설정 milestone Jan 21, 2025
@miller198 miller198 requested review from yuni-ju and meanjoo January 21, 2025 12:28
@miller198 miller198 self-assigned this Jan 21, 2025
@miller198 miller198 changed the title [refactor] 각종 이름 및 패키지 정리, Type-Safe Navigation 적용 [refactor] 이름 및 패키지 정리, Type-Safe Navigation 적용 Jan 21, 2025
@meanjoo
Copy link
Collaborator

meanjoo commented Jan 25, 2025

코드 변경 사항이 꽤 되는 것과 새 노트북의 앱 실행 불가 문제로(^^;;;) 집에 돌아가는 일요일 저녁 쯤 각 잡고 보면서 리뷰를 해보려 하는데 그 전에 작성해주신 내용에서 보고 싶은 게 있는데 보여지지 않아서 코멘트 남깁니다!

변경된 내비게이션에 대한 내용이 굉장히 궁금한데 여기를 클릭하면 보이는 게 없더라구요 ㅠㅠ

image
image

눈이 아닌 마음으로 봐야 보이는 건가욧
볼 수 있는 링크로 수정해주시면 감사할 것 같습니다 🙌

안드로이드 라이브러리 의존성 삭제
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chore 빌드 및 패키지 refactor 리팩토링, 코드개선
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[프로젝트 기반 설정] 내비게이션 개선
2 participants