Skip to content

Conversation

@jinukeu
Copy link
Member

@jinukeu jinukeu commented May 5, 2025

πŸ’‘ Issue

🌱 Key changes

βœ… To Reviewers

πŸ“Έ μŠ€ν¬λ¦°μƒ·

SDK 35 SDK 34
image image

Summary by CodeRabbit

  • μ‹ κ·œ κΈ°λŠ₯

    • μ‹œμŠ€ν…œ UI 인셋(μƒνƒœλ°”, λ‚΄λΉ„κ²Œμ΄μ…˜λ°” λ“±)에 맞좰 λ™μ μœΌλ‘œ νŒ¨λ”©μ΄ μ μš©λ˜λŠ” λ°°κ²½ 컴포저블이 λ„μž…λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    • Android 35 버전 지원 및 edge-to-edge ν™˜κ²½μ—μ„œμ˜ ν…Œλ§ˆ μ΅œμ ν™”κ°€ μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
  • 버그 μˆ˜μ •

    • ν™ˆ ν™”λ©΄, μΆœμ„ 이λ ₯, 일정 ν™”λ©΄ λ“±μ—μ„œ 상단/ν•˜λ‹¨ μ‹œμŠ€ν…œ μ˜μ—­κ³Ό κ²ΉμΉ˜μ§€ μ•Šλ„λ‘ λ ˆμ΄μ•„μ›ƒμ΄ κ°œμ„ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    • λͺ¨λ“  μ„Έμ…˜ μ’…λ£Œ μ•ˆλ‚΄ 문ꡬ가 μ»¨ν…Œμ΄λ„ˆ 전체 λ„ˆλΉ„μ— 맞좰 μžμ—°μŠ€λŸ½κ²Œ ν‘œμ‹œλ©λ‹ˆλ‹€.
  • μŠ€νƒ€μΌ

    • 일뢀 λ ˆμ΄μ•„μ›ƒμ˜ νŒ¨λ”© 및 λ°°κ²½ 처리 방식이 일관성 있게 μ‘°μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

@jinukeu jinukeu added the Feature κΈ°λŠ₯ μΆ”κ°€, 개발 label May 5, 2025
@jinukeu jinukeu requested review from DongChyeon and TaeseongYun May 5, 2025 15:03
@jinukeu jinukeu self-assigned this May 5, 2025
@coderabbitai
Copy link

coderabbitai bot commented May 5, 2025

Walkthrough

이 변경사항은 μ•ˆλ“œλ‘œμ΄λ“œ μ•±μ˜ Edge-to-Edge ν™”λ©΄ λŒ€μ‘μ„ μœ„ν•΄ UI λ ˆμ΄μ•„μ›ƒμ˜ Window Insets(μ‹œμŠ€ν…œ λ°” μ˜μ—­ λ“±) 처리λ₯Ό μ „λ©΄μ μœΌλ‘œ κ°œμ„ ν•©λ‹ˆλ‹€. YappBackground 컴포저블이 λ™μ μœΌλ‘œ μœˆλ„μš° 인셋을 μ²˜λ¦¬ν•˜λ„λ‘ ν™•μž₯λ˜μ—ˆκ³ , μ—¬λŸ¬ μ£Όμš” μŠ€ν¬λ¦°μ—μ„œ 이λ₯Ό μ μš©ν•΄ μ‹œμŠ€ν…œ UIμ™€μ˜ 겹침을 λ°©μ§€ν•©λ‹ˆλ‹€. λ˜ν•œ, 컴파일 SDK 버전이 35둜 상ν–₯되고, Android 14(API 35) μ „μš© ν…Œλ§ˆ 속성이 μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 일뢀 UI μš”μ†Œμ˜ νŒ¨λ”© 및 λ ˆμ΄μ•„μ›ƒ μˆ˜μ •λ„ ν¬ν•¨λ©λ‹ˆλ‹€.

Changes

파일/κ·Έλ£Ή λ³€κ²½ μš”μ•½
app/src/main/java/com/yapp/app/official/ui/YappApp.kt Scaffold의 contentWindowInsetsλ₯Ό 0.dp둜 λͺ…μ‹œ μ„€μ •ν•˜μ—¬ μ‹œμŠ€ν…œ 인셋 νŒ¨λ”© 제거 및 κ΄€λ ¨ import μΆ”κ°€
build-logic/src/main/java/com/yapp/KotlinAndroid.kt Android compileSdk 버전을 34μ—μ„œ 35둜 λ³€κ²½
core/designsystem/src/main/res/values-v35/themes.xml Android 14 μ΄μƒμ—μ„œ edge-to-edge enforcementλ₯Ό λΉ„ν™œμ„±ν™”ν•˜λŠ” Theme.YappOfficial μŠ€νƒ€μΌ μΆ”κ°€
core/ui/src/main/java/com/yapp/core/ui/component/YappBackground.kt YappBackgroundκ°€ contentWindowInsets νŒŒλΌλ―Έν„°λ₯Ό λ°›μ•„ λ™μ μœΌλ‘œ 인셋 νŒ¨λ”©μ„ μ²˜λ¦¬ν•˜λ„λ‘ ν™•μž₯, ν•¨μˆ˜ μ‹œκ·Έλ‹ˆμ²˜ λ³€κ²½
feature/history/src/main/java/com/yapp/feature/history/attend/AttendHistoryScreen.kt
feature/schedule/src/main/java/com/yapp/feature/schedule/ScheduleScreen.kt
슀크린 μ΅œμƒλ‹¨ λ ˆμ΄μ•„μ›ƒμ„ YappBackground둜 λž˜ν•‘ν•˜μ—¬ 인셋 반영
feature/home/src/main/java/com/yapp/feature/home/HomeScreen.kt YappBackground에 navigationBars 인셋 적용, HomeHeader에 statusBars νŒ¨λ”© 및 μΆ”κ°€ top νŒ¨λ”© 적용
feature/home/src/main/java/com/yapp/feature/home/component/HomeAttendaceContents.kt νŠΉμ • Text에 fillMaxWidth() modifier μΆ”κ°€

Sequence Diagram(s)

sequenceDiagram
    participant SystemBars as μ‹œμŠ€ν…œ λ°”(μƒνƒœ/λ‚΄λΉ„κ²Œμ΄μ…˜)
    participant YappApp as YappApp
    participant Screen as μ£Όμš” 슀크린(History, Home, Schedule)
    participant YappBackground as YappBackground

    YappApp->>Screen: ν™”λ©΄ 컴포저블 호좜
    Screen->>YappBackground: contentWindowInsets νŒŒλΌλ―Έν„°μ™€ ν•¨κ»˜ 호좜
    YappBackground->>SystemBars: μ‹œμŠ€ν…œ 인셋 정보 μš”μ²­
    SystemBars-->>YappBackground: 인셋 κ°’ λ°˜ν™˜
    YappBackground->>Screen: 인셋 νŒ¨λ”© 적용 ν›„ children λ Œλ”λ§
Loading

Assessment against linked issues

Objective Addressed Explanation
Edge-to-Edge Screen λŒ€μ‘ (#164) βœ…

Possibly related PRs

  • Featrue/#36 signup step 1 2Β #39: YappBackground μ»΄ν¬μ €λΈ”μ˜ 졜초 λ„μž…κ³Ό κ΄€λ ¨, λ³Έ PR은 ν•΄λ‹Ή μ»΄ν¬μ €λΈ”μ˜ κΈ°λŠ₯ ν™•μž₯ 및 μ‹€μ œ μ μš©μ„ 포함함.

Suggested labels

Design

Poem

🐰
창가에 앉아, 인셋을 재며
λ°”λžŒμ΄ λ“œλŠ” Edge-to-Edge 세상
YappBackground νŽΌμ³μ§€λ‹ˆ
μ‹œμŠ€ν…œ 바도 살짝 λΉ„μΌœκ°€λ„€
SDK도 ν•œ 뼘 더 자라
ν† λΌλŠ” μ˜€λŠ˜λ„ μ½”λ“œλ₯Ό 타고
ν•œμΈ΅ λ„“μ–΄μ§„ 화면을 κΏˆκΏ”μš”!

✨ Finishing Touches
  • πŸ“ Generate Docstrings

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:

‼️ IMPORTANT
Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged.

  • 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 generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • 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 generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

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

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

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 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.

jinukeu added 5 commits May 6, 2025 00:04
Introduces the `YappBackground` composable function to provide a consistent background for screens.
This component wraps its content in a `Surface` with the specified background color.
It also includes handling for window insets (`WindowInsets.systemBars` by default) using `onConsumedWindowInsetsChanged` and `exclude` to apply appropriate padding and avoid overlapping with system UI elements.
@jinukeu jinukeu marked this pull request as draft May 5, 2025 15:04
@jinukeu jinukeu force-pushed the feature/#164-edge-to-edge-screen branch from 332e23e to 62b83fd Compare May 5, 2025 15:06
@jinukeu jinukeu marked this pull request as ready for review May 5, 2025 15:06
@jinukeu
Copy link
Member Author

jinukeu commented May 5, 2025

@coderabbitai review

@coderabbitai
Copy link

coderabbitai bot commented May 5, 2025

βœ… Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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: 1

πŸ“œ Review details

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

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between e6b046e and 62b83fd.

πŸ“’ Files selected for processing (8)
  • app/src/main/java/com/yapp/app/official/ui/YappApp.kt (2 hunks)
  • build-logic/src/main/java/com/yapp/KotlinAndroid.kt (1 hunks)
  • core/designsystem/src/main/res/values-v35/themes.xml (1 hunks)
  • core/ui/src/main/java/com/yapp/core/ui/component/YappBackground.kt (1 hunks)
  • feature/history/src/main/java/com/yapp/feature/history/attend/AttendHistoryScreen.kt (2 hunks)
  • feature/home/src/main/java/com/yapp/feature/home/HomeScreen.kt (2 hunks)
  • feature/home/src/main/java/com/yapp/feature/home/component/HomeAttendaceContents.kt (1 hunks)
  • feature/schedule/src/main/java/com/yapp/feature/schedule/ScheduleScreen.kt (2 hunks)
🧰 Additional context used
🧠 Learnings (1)
feature/history/src/main/java/com/yapp/feature/history/attend/AttendHistoryScreen.kt (1)
Learnt from: jinukeu
PR: YAPP-admin/yappu-world-android#38
File: core/designsystem/src/main/java/com/yapp/core/designsystem/component/header/HeaderActionbar.kt:59-90
Timestamp: 2025-01-24T16:33:01.628Z
Learning: In the YAPP Android project, header components (HeaderActionbar, HeaderActionbarExpanded) are intentionally kept separate to follow the Open-Closed Principle (OCP), allowing for easy extension without modifying existing components.
🧬 Code Graph Analysis (2)
feature/home/src/main/java/com/yapp/feature/home/HomeScreen.kt (1)
feature/home/src/main/java/com/yapp/feature/home/component/HomeHeader.kt (1)
  • HomeHeader (47-158)
feature/history/src/main/java/com/yapp/feature/history/attend/AttendHistoryScreen.kt (4)
core/ui/src/main/java/com/yapp/core/ui/component/YappBackground.kt (1)
  • YappBackground (19-45)
feature/history/src/main/java/com/yapp/feature/history/attend/component/AttendanceStatusSession.kt (1)
  • AttendanceStatusSection (30-91)
feature/history/src/main/java/com/yapp/feature/history/attend/component/StatusItem.kt (1)
  • StatusItem (15-29)
feature/history/src/main/java/com/yapp/feature/history/attend/component/SessionAttendanceHistory.kt (1)
  • SessionAttendanceHistory (19-47)
πŸ”‡ Additional comments (16)
build-logic/src/main/java/com/yapp/KotlinAndroid.kt (1)

27-27: compileSdk 버전 35둜 μ—…λ°μ΄νŠΈ
컴파일 SDKλ₯Ό API 레벨 35둜 상ν–₯ν•˜μ—¬ Android 14 κΈ°λŠ₯ 및 μƒˆ ν…Œλ§ˆ λ¦¬μ†ŒμŠ€λ₯Ό μ‚¬μš©ν•  수 μžˆλ„λ‘ μ„€μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

feature/home/src/main/java/com/yapp/feature/home/component/HomeAttendaceContents.kt (1)

58-63: ν…μŠ€νŠΈ 컴포저블에 fillMaxWidth() 적용
λͺ¨λ“  μ„Έμ…˜ μ’…λ£Œ λ©”μ‹œμ§€κ°€ μ»¨ν…Œμ΄λ„ˆ κ°€λ‘œ λ„ˆλΉ„μ— 맞좰 쀑앙 μ •λ ¬λ˜λ„λ‘ μˆ˜μ •λ˜μ–΄ μ‚¬μš©μž κ²½ν—˜μ΄ κ°œμ„ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

app/src/main/java/com/yapp/app/official/ui/YappApp.kt (2)

6-7: WindowInsets 및 dp μž„ν¬νŠΈ μΆ”κ°€
Scaffoldμ—μ„œ μ‹œμŠ€ν…œ 인셋을 μ œμ–΄ν•˜κΈ° μœ„ν•΄ WindowInsets와 dp λ‹¨μœ„κ°€ μ‚¬μš©λ©λ‹ˆλ‹€.


41-41: Scaffoldμ—μ„œ κΈ°λ³Έ 인셋 νŒ¨λ”© ν•΄μ œ
contentWindowInsets = WindowInsets(0.dp)λ₯Ό 톡해 κΈ°λ³Έ μ‹œμŠ€ν…œ λ°” 인셋을 μ œκ±°ν•˜κ³  μ»€μŠ€ν…€ YappBackgroundμ™€μ˜ μΆ©λŒμ„ λ°©μ§€ν•©λ‹ˆλ‹€.

feature/history/src/main/java/com/yapp/feature/history/attend/AttendHistoryScreen.kt (1)

21-21: YappBackground μž„ν¬νŠΈ μΆ”κ°€
κΈ°μ‘΄ λ ˆμ΄μ•„μ›ƒμ„ μƒˆ λ°°κ²½ μ»΄ν¬μ €λΈ”λ‘œ 감싸기 μœ„ν•΄ κ΄€λ ¨ μ»΄ν¬λ„ŒνŠΈλ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.

core/designsystem/src/main/res/values-v35/themes.xml (1)

4-6: API 35 ν…Œλ§ˆμ— Edge-to-Edge λΉ„ν™œμ„±ν™” 속성 μΆ”κ°€
android:windowOptOutEdgeToEdgeEnforcement="true"둜 ν…Œλ§ˆλ₯Ό μ„€μ •ν•˜μ—¬ μ‹œμŠ€ν…œμ΄ 기본적으둜 μ μš©ν•˜λŠ” Edge-to-Edge λͺ¨λ“œμ—μ„œ μ œμ™Έν•©λ‹ˆλ‹€.

feature/home/src/main/java/com/yapp/feature/home/HomeScreen.kt (3)

6-10: μœˆλ„μš° 인셋 처리λ₯Ό μœ„ν•œ μž„ν¬νŠΈ μΆ”κ°€κ°€ 잘 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

Edge-to-Edge ν™”λ©΄ κ΅¬ν˜„μ— ν•„μš”ν•œ μœˆλ„μš° 인셋 κ΄€λ ¨ ν΄λž˜μŠ€λ“€μ΄ μ˜¬λ°”λ₯΄κ²Œ μž„ν¬νŠΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€.


66-67: YappBackground에 μ μ ˆν•œ WindowInsets 섀정이 μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

contentWindowInsets = WindowInsets.navigationBarsλ₯Ό 톡해 λ„€λΉ„κ²Œμ΄μ…˜ λ°” μ˜μ—­μ„ κ³ λ €ν•œ λ ˆμ΄μ•„μ›ƒ μ²˜λ¦¬κ°€ κ°€λŠ₯ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. μ΄λŠ” Edge-to-Edge λ””μžμΈμ—μ„œ μ€‘μš”ν•œ κΈ°λŠ₯μž…λ‹ˆλ‹€.


71-74: HomeHeader에 μ‹œμŠ€ν…œ λ°” κ³ λ €ν•œ νŒ¨λ”© 적용이 μ μ ˆν•©λ‹ˆλ‹€.

μƒνƒœ λ°” μ˜μ—­(WindowInsets.statusBars)을 κ³ λ €ν•œ νŒ¨λ”©κ³Ό μΆ”κ°€ 상단 μ—¬λ°±(18.dp)이 μ μ ˆν•˜κ²Œ μ μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이둜써 헀더 μ½˜ν…μΈ κ°€ μƒνƒœ 바와 κ²ΉμΉ˜μ§€ μ•Šκ³  μΌκ΄€λœ 여백을 μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

feature/schedule/src/main/java/com/yapp/feature/schedule/ScheduleScreen.kt (3)

39-39: YappBackground μ»΄ν¬λ„ŒνŠΈ μž„ν¬νŠΈ μΆ”κ°€κ°€ μ μ ˆν•©λ‹ˆλ‹€.

Edge-to-Edge ν™”λ©΄ κ΅¬ν˜„μ„ μœ„ν•œ YappBackground μ»΄ν¬λ„ŒνŠΈκ°€ μ˜¬λ°”λ₯΄κ²Œ μž„ν¬νŠΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€.


79-81: YappBackground 적용이 잘 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

ν™”λ©΄ 배경으둜 YappBackgroundλ₯Ό μ‚¬μš©ν•¨μœΌλ‘œμ¨ μ‹œμŠ€ν…œ UI와 κ²ΉμΉ˜μ§€ μ•ŠλŠ” λ ˆμ΄μ•„μ›ƒ μ²˜λ¦¬κ°€ κ°€λŠ₯ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. 배경색이 흰색(staticWhite)으둜 μ˜¬λ°”λ₯΄κ²Œ μ„€μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


82-120: μ»΄ν¬λ„ŒνŠΈ 계측 ꡬ쑰가 κ°œμ„ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

YappBackground μ•ˆμ— PullToRefreshBox와 Column이 μ μ ˆν•˜κ²Œ μ€‘μ²©λ˜μ–΄ ꡬ쑰가 κ°œμ„ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 특히, νƒ­ 선택 둜직과 ν•΄λ‹Ή ν™”λ©΄ λ Œλ”λ§μ΄ λͺ…ν™•ν•˜κ²Œ μ •λ¦¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€. Edge-to-Edge λ””μžμΈμ˜ 일관성이 ν–₯μƒλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

core/ui/src/main/java/com/yapp/core/ui/component/YappBackground.kt (4)

3-11: μœˆλ„μš° 인셋 μ²˜λ¦¬μ— ν•„μš”ν•œ μž„ν¬νŠΈκ°€ 잘 μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

Edge-to-Edge ν™”λ©΄ κ΅¬ν˜„μ„ μœ„ν•œ λ‹€μ–‘ν•œ WindowInsets κ΄€λ ¨ ν΄λž˜μŠ€μ™€ ν•¨μˆ˜κ°€ μ μ ˆν•˜κ²Œ μž„ν¬νŠΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€.


19-24: YappBackground ν•¨μˆ˜μ— contentWindowInsets νŒŒλΌλ―Έν„° μΆ”κ°€κ°€ μ μ ˆν•©λ‹ˆλ‹€.

ExperimentalLayoutApi μ–΄λ…Έν…Œμ΄μ…˜μ΄ μΆ”κ°€λ˜μ—ˆκ³ , WindowInsets.systemBarsλ₯Ό κΈ°λ³Έκ°’μœΌλ‘œ ν•˜λŠ” contentWindowInsets νŒŒλΌλ―Έν„°κ°€ μ μ ˆν•˜κ²Œ μ •μ˜λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μ‹œμŠ€ν…œ UI와 κ²ΉμΉ˜μ§€ μ•ŠλŠ” λ ˆμ΄μ•„μ›ƒ κ΅¬ν˜„μ΄ κ°€λŠ₯ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€.


27-31: 동적 인셋 좔적을 μœ„ν•œ MutableWindowInsets κ΅¬ν˜„μ΄ 잘 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

rememberλ₯Ό 톡해 contentWindowInsets 기반의 MutableWindowInsets μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜μ—¬ 동적인 인셋 μ²˜λ¦¬κ°€ κ°€λŠ₯ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€.


35-41: μœˆλ„μš° 인셋 변경에 λ”°λ₯Έ νŒ¨λ”© μ‘°μ • 둜직이 잘 κ΅¬ν˜„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

onConsumedWindowInsetsChangedλ₯Ό 톡해 μ†ŒλΉ„λœ 인셋을 μΆ”μ ν•˜κ³ , exclude ν•¨μˆ˜λ‘œ 이미 μ†ŒλΉ„λœ 인셋을 μ œμ™Έν•˜λŠ” 둜직이 적절히 κ΅¬ν˜„λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ³„μ‚°λœ 인셋을 νŒ¨λ”©μœΌλ‘œ μ μš©ν•˜μ—¬ μ½˜ν…μΈ κ°€ μ‹œμŠ€ν…œ UI와 κ²ΉμΉ˜μ§€ μ•Šλ„λ‘ 보μž₯ν•©λ‹ˆλ‹€.

Comment on lines +77 to +83
YappBackground {
Column {
YappHeaderActionbar(
title = stringResource(R.string.attendance_title),
leftIcon = coreDesignR.drawable.icon_chevron_left,
onClickLeftIcon = onClickBackButton
)
Copy link

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

AttendHistoryScreen을 YappBackground둜 λž˜ν•‘
ν™”λ©΄ 전체에 μ‹œμŠ€ν…œ λ°” 인셋을 λ™μ μœΌλ‘œ μ²˜λ¦¬ν•˜λŠ” YappBackgroundλ₯Ό μ μš©ν•˜μ—¬ Edge-to-Edge λŒ€μ‘μ„ μΌκ΄€λ˜κ²Œ μœ μ§€ν•©λ‹ˆλ‹€.

contentWindowInsets 값을 λͺ…μ‹œμ μœΌλ‘œ 전달해 인셋 μ‘°μž‘ μ˜λ„λ₯Ό λΆ„λͺ…νžˆ ν•˜λ©΄ 가독성이 λ”μš± ν–₯상될 수 μžˆμŠ΅λ‹ˆλ‹€.

Copy link
Member

@DongChyeon DongChyeon left a comment

Choose a reason for hiding this comment

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

κ³ μƒν•˜μ…¨μŠ΅λ‹ˆλ‹€

@jinukeu jinukeu merged commit 7474734 into release/1.1.0 May 5, 2025
1 check passed
@jinukeu jinukeu deleted the feature/#164-edge-to-edge-screen branch May 5, 2025 15:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feature κΈ°λŠ₯ μΆ”κ°€, 개발

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants