Skip to content

Feature(#132): 빈 버블 보관함 화면 추가#134

Merged
HwangJaemin49 merged 18 commits intodevelopfrom
feature/#132-empty-bubble-storage
Jan 26, 2026
Merged

Feature(#132): 빈 버블 보관함 화면 추가#134
HwangJaemin49 merged 18 commits intodevelopfrom
feature/#132-empty-bubble-storage

Conversation

@HwangJaemin49
Copy link
Contributor

@HwangJaemin49 HwangJaemin49 commented Jan 5, 2026

#⃣ 연관된 이슈

close #132

📝 작업 내용

image

'찰나의 영감을 기록하기' 클릭 시 버블 작성 화면으로 이동합니다.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @HwangJaemin49, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 버블 보관함 기능에 빈 상태 화면을 도입합니다. 사용자가 저장된 버블이 없을 때 이 화면이 표시되어, 새로운 버블을 생성하도록 명확한 콜 투 액션(CTA)을 제공합니다. 이는 사용자 경험을 향상시키고, 버블 보관함이 비어있을 때 사용자에게 적절한 안내를 제공합니다.

Highlights

  • 버블 보관함 빈 화면 UI 추가: 버블이 없을 때 사용자에게 표시되는 빈 화면 UI를 추가했습니다.
  • 빈 화면에서 버블 생성 화면으로 이동 기능 구현: 빈 화면의 콜 투 액션(CTA) 버튼 클릭 시 버블 생성 화면으로 이동하도록 연결했습니다.
  • ic_label 아이콘 업데이트 및 적응형 아이콘 추가: ic_label 아이콘의 벡터 드로어블을 새로운 디자인으로 업데이트하고, 적응형 아이콘 정의를 추가했습니다.
  • 빈 화면 관련 문자열 리소스 추가: 빈 버블 보관함 화면에 사용될 새로운 문자열 리소스를 strings.xml에 추가했습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

이 PR은 버블 보관함이 비어 있을 때 표시되는 화면을 추가하는군요. 전반적으로 잘 구현되었지만, 코드 가독성과 유지보수성을 높이기 위해 몇 가지 개선점을 제안합니다. BubbleStorageEmptyView 컴포저블에서 중복된 변수 선언을 제거하고, 하드코딩된 색상 값을 테마 파일로 옮기는 것을 권장합니다. 또한, 코드 서식과 관련된 작은 수정 사항도 포함했습니다.

Comment on lines +320 to +326
val ctaTextBrush = Brush.linearGradient(
colors = listOf(
Color(0xFFF2F227), // #F2F227
Color(0xFFFF87D5), // #FF87D5
Color(0xFF5BADFF), // #5BADFF
)
)
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

BubbleStorageEmptyView 컴포저블 내에 ctaTextBrush 변수가 두 번 선언되었습니다. 이 linearGradient 브러시는 사용되지 않고 있으므로 제거하여 코드를 정리하는 것이 좋습니다. 아래 351번째 줄에서 horizontalGradient로 다시 정의하여 사용하고 있습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

수정해주셔서 감사합니다! 👏

Comment on lines +351 to +362
val ctaTextBrush = Brush.horizontalGradient(
colors = listOf(
Color(0xFFF2F227),
Color(0xFFFF87D5),
Color(0xFF5BADFF),
)
)

Surface(
onClick = onCtaClick,
shape = RoundedCornerShape(100.dp),
color = Color(0xFFFFF7F7),
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

CTA 버튼의 그라데이션 색상과 배경색이 하드코딩되어 있습니다. 앱 전체의 디자인 일관성을 유지하고 유지보수를 용이하게 하기 위해, 이 색상들을 ui/theme/Color.kt 파일에 상수로 정의하여 사용하는 것을 권장합니다. 예를 들어, 다음과 같이 추가할 수 있습니다:

// In ui/theme/Color.kt
val CtaGradientStart = Color(0xFFF2F227)
val CtaGradientMid = Color(0xFFFF87D5)
val CtaGradientEnd = Color(0xFF5BADFF)
val CtaSurfaceBackground = Color(0xFFFFF7F7)

이렇게 하면 색상을 재사용하거나 변경할 때 한 곳에서만 수정하면 됩니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

네, ui/theme/Color.kt 파일에 색상 상수가 추가되었고, BubbleStorageScreen.kt에서 해당 상수들을 사용하여 하드코딩된 색상 문제가 해결된 것을 확인했습니다. 빠르게 수정해주셔서 감사합니다!

Comment on lines +368 to +369


Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Text 컴포저블 내에 불필요한 빈 줄들이 있습니다. 코드 가독성을 위해 제거하는 것이 좋습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Comment on lines +116 to +118
onCtaClick = {
navHostController.navigate(NavRoute.BubbleEdit.createRoute(""))
}
Copy link
Contributor

Choose a reason for hiding this comment

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

혹시 저희 BubbleEdit.createRoute 함수가 default로 null을 받도록 하고, 지금 빈 스트링 혹은 null로 만드는 부분을 그냥 함수만 호출하도록 할 수 있을까요? 그리고 createRoute 함수 내부에서도 if (bubbleId != null) 이 조건을 if (!bubbleId.isNullOrEmpty()) 이걸로 업데이트 부탁드려요!

Copy link
Contributor

@SuHyeon00 SuHyeon00 left a comment

Choose a reason for hiding this comment

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

수고하셨습니다ㅏ~~ 👍

@HwangJaemin49 HwangJaemin49 merged commit 1379827 into develop Jan 26, 2026
1 check passed
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

Successfully merging this pull request may close these issues.

✨ [FEAT] 빈 버블 보관함 화면 추가

3 participants