Skip to content

Conversation

wjdrjs00
Copy link
Member

@wjdrjs00 wjdrjs00 commented Aug 10, 2025

[ PR Content ]

Related issue

Screenshot 📸

  • N/A

Work Description

  • 로그인, 약관동의 화면 변경된 리디자인 사항 반영
  • 인트로 화면 제거

To Reviewers 📢

  • 로그인, 약관동의 화면 변경된 리디자인에 맞게 수정했습니다.
  • 인트로 화면은 더 이상 사용되지 않아서 제거했습니다.
  • 간단한 작업이라 따로 영상은 첨부 안했습니다요! 피그마 화면과 같이 수정이 되었습니다..!

Summary by CodeRabbit

  • 신규 기능 제거

    • 앱에서 인트로(소개) 화면이 완전히 제거되고, 관련 이동 경로가 모두 로그인 화면으로 변경되었습니다.
  • UI 개선

    • 로그인 화면의 인사말, 이미지, 색상 및 여백이 새롭게 변경되었습니다.
    • 이용약관 동의 화면의 주요 버튼 텍스트가 "시작하기"에서 "다음"으로 변경되었습니다.
    • 약관 동의 항목 및 전체 동의 토글의 아이콘, 색상, 크기가 오렌지 및 그레이 계열로 개선되었습니다.
  • 버그 수정

    • 인트로 화면 제거에 따른 불필요한 네비게이션 및 상태 관리 코드가 정리되었습니다.

@wjdrjs00 wjdrjs00 requested a review from l5x5l August 10, 2025 19:17
@wjdrjs00 wjdrjs00 self-assigned this Aug 10, 2025
@wjdrjs00 wjdrjs00 added 📱 UI UI 추가 및 수정 (비지니스 로직을 포함하지 않는 작업) 🧤 대현 labels Aug 10, 2025
Copy link

coderabbitai bot commented Aug 10, 2025

Walkthrough

인트로(소개) 화면 및 관련 로직과 파일이 모두 삭제되었습니다. 내비게이션 경로에서 Intro가 제거되고 Login으로 대체되었습니다. 로그인 화면과 약관 동의 화면의 UI 요소(텍스트, 색상, 아이콘 등)가 리디자인 요구사항에 맞게 수정되었습니다.

Changes

Cohort / File(s) Change Summary
인트로 화면 및 관련 로직 제거
app/src/main/java/com/threegap/bitnagil/MainNavHost.kt, app/src/main/java/com/threegap/bitnagil/Route.kt, presentation/src/main/java/com/threegap/bitnagil/presentation/intro/IntroScreen.kt, .../IntroViewModel.kt, .../intro/model/IntroIntent.kt, .../intro/model/IntroSideEffect.kt, .../intro/model/IntroState.kt
Intro 화면, 관련 ViewModel, Intent, SideEffect, State 등 모든 인트로 관련 코드 및 내비게이션 경로 제거
Splash/Setting 내비게이션 및 SideEffect 변경
presentation/src/main/java/com/threegap/bitnagil/presentation/splash/SplashScreen.kt, .../SplashViewModel.kt, .../splash/model/SplashIntent.kt, .../splash/model/SplashSideEffect.kt, presentation/src/main/java/com/threegap/bitnagil/presentation/setting/SettingScreen.kt, .../SettingViewModel.kt, .../setting/model/mvi/SettingSideEffect.kt
인트로로 이동하던 내비게이션 및 SideEffect를 모두 로그인(Login)으로 변경, 관련 파라미터 및 객체명 일괄 수정
로그인 화면 리디자인
presentation/src/main/java/com/threegap/bitnagil/presentation/login/LoginScreen.kt
이미지, 텍스트, 색상, 여백 등 UI 요소 리디자인 및 텍스트/이미지 리소스 교체
약관 동의 화면 리디자인
presentation/src/main/java/com/threegap/bitnagil/presentation/terms/TermsAgreementScreen.kt, .../terms/component/TermsAgreementItem.kt, .../terms/component/ToggleAllAgreementsItem.kt
버튼 텍스트, 아이콘, 색상, 배경 등 약관 동의 관련 컴포넌트 리디자인 반영

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant SplashScreen
    participant MainNavHost
    participant LoginScreen

    User->>SplashScreen: 앱 실행
    SplashScreen->>MainNavHost: navigateToLogin()
    MainNavHost->>LoginScreen: Route.Login으로 이동
    LoginScreen-->>User: 로그인 UI 표시
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~15–25 minutes

Assessment against linked issues

Objective Addressed Explanation
로그인 화면 그래픽 변경 (#95)
인트로 화면 제거 (#95)
약관동의 화면 컴포넌트 변경사항 반영 (#95)

Assessment against linked issues: Out-of-scope changes

(해당 변경사항 내에서는 명확하게 범위를 벗어난 코드 변경이 발견되지 않았습니다.)

Poem

🥕
인트로는 이제 안녕,
로그인 화면이 반짝!
약관동의도 새 옷 입고,
오렌지 빛 체크가 반겨요.
리디자인된 길 따라
토끼도 깡총,
빛나길에서 만나요!
🐰✨

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ui/#95-start-up-ui-redesign

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🔭 Outside diff range comments (1)
app/src/main/java/com/threegap/bitnagil/MainNavHost.kt (1)

162-169: 스택 초기화 시 popUpTo(0) 사용은 모호함 — 그래프 ID로 명시적 정리 권장

popUpTo(0)는 구현/버전 별 동작 오해 소지가 있어 유지보수에 불리합니다. navController.graph.id로 전환하고 launchSingleTop을 함께 설정해 중복 네비게이션을 방지하는 것을 권장합니다.

아래처럼 변경 제안드립니다:

-                    navigator.navController.navigate(Route.Login) {
-                        popUpTo(0) {
-                            inclusive = true
-                        }
-                    }
+                    navigator.navController.navigate(Route.Login) {
+                        launchSingleTop = true
+                        popUpTo(navigator.navController.graph.id) {
+                            inclusive = true
+                        }
+                    }
🧹 Nitpick comments (4)
presentation/src/main/java/com/threegap/bitnagil/presentation/login/LoginScreen.kt (2)

88-101: 상단/중간 스페이서 퍼센티지 조정: 토큰/디멘션화 고려

퍼센티지 값(0.114f, 0.112f)은 피그마 반영으로 보입니다. 다만 자주 쓰이는 간격이면 디자인 토큰/디멘션 리소스로 추출하여 재사용성과 유지보수성을 높이는 것을 권장합니다.


103-109: 이미지 리소스 교체 및 비율 변경: OK / 콘텐츠 설명 재검토

리소스(login_fomo) 및 비율(290/305) 반영이 적절합니다. 해당 이미지가 순수 장식 목적이면 contentDescription = null 유지가 맞고, 의미가 있다면 문자열 리소스로 설명을 제공하는 것을 권장합니다.

presentation/src/main/java/com/threegap/bitnagil/presentation/terms/TermsAgreementScreen.kt (1)

159-159: 문자열 하드코딩 → stringResource로 이전 권장 (i18n)

리디자인 맥락에서 "다음" 변경은 적절합니다. 다만 국제화/번역 대응을 위해 문자열 리소스로 이전해 주세요.

다음과 같이 교체를 권장합니다:

-            text = "다음",
+            text = stringResource(R.string.terms_next),

추가로 필요한 import:

import androidx.compose.ui.res.stringResource

strings.xml에 terms_next 키 추가 여부도 확인 부탁드립니다.

presentation/src/main/java/com/threegap/bitnagil/presentation/terms/component/TermsAgreementItem.kt (1)

52-55: 아이콘/컬러 업데이트는 적절합니다 — 접근성(터치 타깃/스크린리더) 개선 제안

  • 시각적 변경은 요구사항과 합치됩니다.
  • 접근성 강화를 위해 다음을 고려해 주세요.
    • 최소 터치 타깃 48dp 권장: 현재 Row 높이(40.dp, Line 38)는 권장치 미만입니다. 디자인 허용 시 48.dp로 상향하거나, 최소 터치 타깃 보정 유틸(예: minimum touch target)을 적용해 주세요.
    • 스크린리더 친화적 역할/상태 제공: 커스텀 클릭 행이므로 Checkbox 역할/상태를 명시하는 semantics를 추가하면 좋습니다.

예시(개념 코드):

modifier = Modifier
    // ... 기존 modifier
    .semantics(mergeDescendants = true) {
        role = Role.Checkbox
        // stringResource로의 이전 권장
        stateDescription = if (isChecked) "선택됨" else "선택 안 됨"
    }

또한 아이콘이 장식용이라면 BitnagilIcon에서 contentDescription을 null 처리(가능한 경우)하여 중복 낭독을 방지해 주세요. 별도로, "더보기"(Lines 65-74)도 stringResource로의 이전을 권장합니다.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8149ca8 and 9237e2a.

⛔ Files ignored due to path filters (10)
  • core/designsystem/src/main/res/drawable-hdpi/intro_character.png is excluded by !**/*.png
  • core/designsystem/src/main/res/drawable-hdpi/login_fomo.png is excluded by !**/*.png
  • core/designsystem/src/main/res/drawable-mdpi/intro_character.png is excluded by !**/*.png
  • core/designsystem/src/main/res/drawable-mdpi/login_fomo.png is excluded by !**/*.png
  • core/designsystem/src/main/res/drawable-xhdpi/intro_character.png is excluded by !**/*.png
  • core/designsystem/src/main/res/drawable-xhdpi/login_fomo.png is excluded by !**/*.png
  • core/designsystem/src/main/res/drawable-xxhdpi/intro_character.png is excluded by !**/*.png
  • core/designsystem/src/main/res/drawable-xxhdpi/login_fomo.png is excluded by !**/*.png
  • core/designsystem/src/main/res/drawable-xxxhdpi/intro_character.png is excluded by !**/*.png
  • core/designsystem/src/main/res/drawable-xxxhdpi/login_fomo.png is excluded by !**/*.png
📒 Files selected for processing (18)
  • app/src/main/java/com/threegap/bitnagil/MainNavHost.kt (2 hunks)
  • app/src/main/java/com/threegap/bitnagil/Route.kt (0 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/intro/IntroScreen.kt (0 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/intro/IntroViewModel.kt (0 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/intro/model/IntroIntent.kt (0 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/intro/model/IntroSideEffect.kt (0 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/intro/model/IntroState.kt (0 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/login/LoginScreen.kt (2 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/setting/SettingScreen.kt (1 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/setting/SettingViewModel.kt (2 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/setting/model/mvi/SettingSideEffect.kt (1 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/splash/SplashScreen.kt (1 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/splash/SplashViewModel.kt (2 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/splash/model/SplashIntent.kt (1 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/splash/model/SplashSideEffect.kt (1 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/terms/TermsAgreementScreen.kt (1 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/terms/component/TermsAgreementItem.kt (2 hunks)
  • presentation/src/main/java/com/threegap/bitnagil/presentation/terms/component/ToggleAllAgreementsItem.kt (2 hunks)
💤 Files with no reviewable changes (6)
  • app/src/main/java/com/threegap/bitnagil/Route.kt
  • presentation/src/main/java/com/threegap/bitnagil/presentation/intro/model/IntroState.kt
  • presentation/src/main/java/com/threegap/bitnagil/presentation/intro/model/IntroIntent.kt
  • presentation/src/main/java/com/threegap/bitnagil/presentation/intro/model/IntroSideEffect.kt
  • presentation/src/main/java/com/threegap/bitnagil/presentation/intro/IntroViewModel.kt
  • presentation/src/main/java/com/threegap/bitnagil/presentation/intro/IntroScreen.kt
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-23T13:32:26.263Z
Learnt from: l5x5l
PR: YAPP-Github/Bitnagil-Android#41
File: presentation/src/main/java/com/threegap/bitnagil/presentation/mypage/model/MyPageIntent.kt:6-6
Timestamp: 2025-07-23T13:32:26.263Z
Learning: In the Bitnagil Android project's MVI architecture, Intent classes like `LoadMyPageSuccess` are named to represent successful API response results that carry loaded data, not just user actions. This naming convention is used for future API integration where the intent will be triggered when my page data loading succeeds from the server.

Applied to files:

  • presentation/src/main/java/com/threegap/bitnagil/presentation/splash/model/SplashIntent.kt
🧬 Code Graph Analysis (2)
presentation/src/main/java/com/threegap/bitnagil/presentation/splash/SplashViewModel.kt (1)
presentation/src/main/java/com/threegap/bitnagil/presentation/common/mviviewmodel/MviViewModel.kt (2)
  • sendSideEffect (23-23)
  • sendIntent (30-37)
presentation/src/main/java/com/threegap/bitnagil/presentation/setting/SettingViewModel.kt (1)
presentation/src/main/java/com/threegap/bitnagil/presentation/common/mviviewmodel/MviViewModel.kt (1)
  • sendSideEffect (23-23)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (11)
presentation/src/main/java/com/threegap/bitnagil/presentation/setting/model/mvi/SettingSideEffect.kt (1)

6-6: 리네이밍 일관성 확보 좋습니다

Intro 제거 흐름과 맞춰 NavigateToLogin으로 변경된 점 일관되고 적절합니다.

presentation/src/main/java/com/threegap/bitnagil/presentation/splash/model/SplashSideEffect.kt (1)

6-6: 네비게이션 사이드이펙트 변경 타당

Intro 제거에 따라 NavigateToLogin으로 변경한 점 적절합니다. 스플래시에서의 라우팅 단일화에 도움이 됩니다.

presentation/src/main/java/com/threegap/bitnagil/presentation/setting/SettingScreen.kt (1)

42-43: 백스택 정리 로직 확인 완료

SettingScreenContainer의 navigateToLogin 콜백이 popUpTo(0) { inclusive = true } 로 전체 백스택을 정리하고 있으므로, 로그아웃/탈퇴 후 뒤로 가기로 이전 화면으로 돌아가는 문제가 없습니다. 추가 조치가 필요하지 않습니다.

presentation/src/main/java/com/threegap/bitnagil/presentation/splash/SplashViewModel.kt (2)

43-45: Intro → Login 네비게이션으로의 전환: 일관성 있게 반영됨

NavigateToLogin 인텐트에서 사이드이펙트를 바로 전달하는 패턴이 기존 다른 네비게이션들과 일관됩니다. 별도의 상태 변경 없이 null 반환하는 것도 적절합니다.


91-92: 기본 분기(fallback)를 Login으로 변경: 합리적 선택

자동로그인 실패(null)나 알 수 없는 역할에 대해 Login으로 유도하는 기본 분기 처리가 명확합니다. 스플래시-로그인 플로우에 부합합니다.

presentation/src/main/java/com/threegap/bitnagil/presentation/splash/SplashScreen.kt (2)

31-31: 파라미터 명 변경(navigateToIntro → navigateToLogin): 호출부와의 일관성 확인 필요

파일 내에서의 이름 변경은 적절합니다. MainNavHost 호출부도 함께 수정되어 있어 현재 컨텍스트에서는 불일치 없음이 확인됩니다.


39-43: SideEffect 매핑 Intro → Login: LGTM

SplashSideEffect.NavigateToLogin 처리로 변경되어 뷰모델 변경사항과 일치합니다.

app/src/main/java/com/threegap/bitnagil/MainNavHost.kt (1)

35-39: Splash → Login 네비게이션 및 스택 정리: 적절함

popUpTo<Route.Splash> { inclusive = true }로 스플래시 제거 후 로그인 진입 플로우가 깔끔하게 정리됩니다.

presentation/src/main/java/com/threegap/bitnagil/presentation/login/LoginScreen.kt (1)

79-79: 이미지 width 비율 조정(290/360): 디자인 반영 OK

레이아웃 의도(비율 기반 폭 지정)에 부합합니다. 다른 뷰포트에서도 비율 유지되어 문제 없어 보입니다.

presentation/src/main/java/com/threegap/bitnagil/presentation/terms/component/TermsAgreementItem.kt (1)

9-9: 필요 import 추가 LGTM

아이콘 사이즈 지정(Modifier.size) 사용을 위한 import 추가로 보이며 문제 없습니다.

presentation/src/main/java/com/threegap/bitnagil/presentation/terms/component/ToggleAllAgreementsItem.kt (1)

32-34: 컬러 토큰 변경 타당 — 다크 모드/명도 대비(AA) 확인 요청

팔레트를 오렌지/쿨그레이로 전환한 점은 일관된 리디자인으로 보입니다. 다만 다크 테마에서의 가시성과 텍스트 대비(특히 배경 대비 AA 충족)도 함께 검토해 주세요.

Copy link
Contributor

@l5x5l l5x5l left a comment

Choose a reason for hiding this comment

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

깔끔하군요! 머지 진행하시죠!

@wjdrjs00 wjdrjs00 merged commit f6820de into develop Aug 11, 2025
2 checks passed
@wjdrjs00 wjdrjs00 deleted the ui/#95-start-up-ui-redesign branch August 11, 2025 04:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📱 UI UI 추가 및 수정 (비지니스 로직을 포함하지 않는 작업) 🧤 대현

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[UI] 로그인, 약관동의 화면 리디자인 변경사항 적용

2 participants