Skip to content

Conversation

@comst19
Copy link
Collaborator

@comst19 comst19 commented Nov 25, 2025

1. ⭐️ 변경된 내용

  • onboarding 디자인 적용
  • 컴포넌트 화

2. 🖼️ 스크린샷(선택)

mp4.mp4

3. 💡 알게된 부분

4. 📌 이 부분은 꼭 봐주세요!

@comst19 comst19 requested review from kkh725 and tgyuuAn November 25, 2025 15:47
@comst19 comst19 self-assigned this Nov 25, 2025
@comst19 comst19 added 리뷰 원해요🔥 피어의 리뷰를 기다리는 ing.. 🔥 ㅁㅅ민수 labels Nov 25, 2025
Copy link
Member

@tgyuuAn tgyuuAn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

민수님 고생하셨씁니닷 ~~~~~!!!
제가 코멘트 단 부분만 한번 봐주시고 머지해주셔도 될 것 같아요~!

Comment on lines 9 to 24
data class OnboardingPageData(
val screenName: String,
@param:StringRes val titleRes: Int,
@param:StringRes val buttonLabelRes: Int?,
val contentType: PageContentType
)

sealed class PageContentType {
data class Lottie(
@param:RawRes val lottieRes: Int,
) : PageContentType()

data class Image(
@param:DrawableRes val imageRes: Int
) : PageContentType()
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@immutable 처리 해주면 좋을 것 같아요

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stable 할 거 같은데 붙이는 이유가 가독성 일까요? 수정했습니다~
95a423f

Comment on lines 44 to 53
LaunchedEffect(animProgress, shouldPlay) {
if (shouldPlay) {
isStopped = false
}

if (!isStopped && animProgress >= targetProgress) {
isStopped = true
stoppedProgress = targetProgress
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이거 AnimProgress가 LaunchedEffect 키로 들어가면 계속 호출될텐데 맞을까요?
animProgress >= targetProgress가 목적이라면 DerivedState를 사용하는게 더 적절할 수도 있을 것 같아요.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네, 확인해보니 animProgress 때문에 불필요하게 호출되네요! 수정했습니다.
4f60d56

}
}

val finalProgress = if (isStopped) stoppedProgress else animProgress
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Animation이 언제 정지되는 지 궁금해요~

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

animProgress == targetProgress 시점에 isStopped가 true가 됩니다. 아래의 로직에 의해서 finalProgress가 고정됩니다.

if (isStopped) stoppedProgress else animProgress

Comment on lines 9 to 24
data class OnboardingPageData(
val screenName: String,
@param:StringRes val titleRes: Int,
@param:StringRes val buttonLabelRes: Int?,
val contentType: PageContentType
)

sealed class PageContentType {
data class Lottie(
@param:RawRes val lottieRes: Int,
) : PageContentType()

data class Image(
@param:DrawableRes val imageRes: Int
) : PageContentType()
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

온보딩 화면이 5개로 늘어나면서 추상화 + 코드 재사용을 하신거군요 👍👍👍

Comment on lines 67 to 69
class OnboardingPageProvider : PreviewParameterProvider<OnboardingPageData> {
override val values: Sequence<OnboardingPageData> = onboardingPages.asSequence()
} No newline at end of file
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Preview 밑에 두면 더 가독성이 올라갈 것 같아요

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines 22 to 28
@Composable
internal fun StopAtProgressLottie(
@RawRes lottieRes: Int,
targetProgress: Float = 1.0f,
shouldPlay: Boolean,
modifier: Modifier = Modifier
) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modifier는 require 파라미터 하단부에, optional 파라미터 상단부에 있는게 컴포즈 권장 컨벤션이에요~!

참고 링크

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

optional 파라미터에 대해선 몰랐네요.. 감사합니다~
0a205b2

@tgyuuAn tgyuuAn added 머지 해도될듯염🌟 현재 코드를 기존 코드에 합쳐도 될 것 같다라고 판단..! 🌟 and removed 리뷰 원해요🔥 피어의 리뷰를 기다리는 ing.. 🔥 labels Nov 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ㅁㅅ민수 머지 해도될듯염🌟 현재 코드를 기존 코드에 합쳐도 될 것 같다라고 판단..! 🌟

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants