[feat] 새 UI 디자인 추가 및 네비게이션 일부 변경#110
Open
findwhatiwant wants to merge 64 commits into
Open
Conversation
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) 스플래시 화면 추가 폰트는 한번에 몰아서 작업할 것 같습니다.
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) TabBar(Pill navigation) 추가 및 관련 icon 파일들 추가
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) [refact] Bottom TabBar moved from /tabbar/. to /components/.
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) GradeBottomSheet와 CourseCard추가
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) PushNotificationsScreen.kt 추가. 하지만 안에 들어가는 카드를 따로 컴포넌트처럼 빼진 않고 같은 파일에 넣었으나 추후에 리팩토링때 정리 예정
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) 타 kt 파일에서 탭바를 사용하기 위한 컴포저블화
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) MyPageScreen.kt 추가, 추후에 버전 정보 목데이터를 build.gradle.kts에서 끌어오기
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) ChapelScreen.kt 수정, 기존의 채플스크린 코드는 주석처리했습니다.
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) MainScreen.kt 추가, 추후에 컴포넌트화 필요하며, 탭바는 변경예정
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) 컴포넌트화 한 상태로 커밋. 추후에 아이콘 추가 필요
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) MainScreen 글자 가리기 수정
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) MainScreen 하나였던 파일을 컴포넌트화하였습니다. Tabbar의 디자인은 변경된 것이 아닌 이전의 것을 이용하였습니다.
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) MainScreen 컴포넌트(ChapleCard, GpaChartCard) import 에러 해결. 안쓰는 weight 관련 import 삭제
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) MyPageScreen.kt의 버전 정보 표시를 BuildConfig.VERSION_NAME에 연결했습니다.
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) 이전에 아이콘 없이 작업한 내용들에 아이콘을 다운받아서 추가했습니다.
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) NotificationSettingScreen.kt 추가
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) 새로 추가된 Screen에 네비게이션 추가. TabBar 네비게이션 추가. TopLevelDestination도 셋팅
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) 네비게이션 재연결. 로그인 후 시작 화면도 기존 화면에서 새 메인화면으로 변경
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) 안쓰는 import 제거
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) TabBar 변경. Preview에선 문제없으나 에뮬레이터 내에서 글자 일부가 잘리는 경우가 있어서 추후 해결 예정
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) 빌드 or 기능에 영향없는 warning 요소들을 주석, 자잘한 변경을 통해 제거
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) 빈 뷰모델 추가
## #️⃣연관된 이슈 X ## 📝작업 내용 > 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) 믹스패널 주석처리
|
와우 이거 apk release 공유받을 수 있을까요 |
8개 알림 토글(푸시/소리/진동/수강신청/과제마감/성적발표/채플/마케팅)을 VM 내부 StateFlow로 관리하도록 구현 (#111) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
hiltViewModel() 기반 stateful 오버로드 추가, uiState를 기존 stateless 컴포저블에 위임 (#111) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
알림 데이터 소스가 없어 VM 내부 StateFlow로 탭 선택/알림목록/ 미읽음 수를 관리. 탭별 필터와 읽음 처리 로직 포함 (#111) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
hiltViewModel() 래퍼 추가, 미읽음 수/탭 선택 상태를 VM에서 받아 표시. 탭 클릭으로 선택 전환 가능하도록 변경 (#111) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
탭 진입 화면이라 뒤로가기 화살표와 우측 info 아이콘이 불필요해 '채플' 타이틀만 남김 (함수 시그니처는 호출부 호환 위해 유지) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
QR 출석 인증 기능 구현 전까지 AttendanceCta 호출을 비활성화 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
한 학기 채플 이수는 최대 7회이므로 AttendanceGauge에서 total을 7로 clamp하고 남은 횟수를 음수 방지 처리. 기본값도 7회 기준으로 조정 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
StudentDataRepository를 주입해 학적 상태가 '휴학'이면 true인 isOnLeave StateFlow 추가 (휴학생 채플 안내용) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ChapelViewModel.isOnLeave를 구독해 휴학 중이면 좌석/출석 게이지 대신 '휴학 중이라 수강할 채플이 없어요' 안내 화면을 표시 (#111 연계) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ChapelHeader 타이틀 18sp→22sp, letterSpacing도 알림과 동일하게 맞춤 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SettingsHeader 타이틀 24sp→22sp (lineHeight 28sp) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
학기별 GPA가 담긴 Semester 테이블을 즉시 전체 조회하는 semesters Flow 추가. 강의 적재를 기다리는 semesterWithLectures와 달리 차트가 한 번에 렌더되도록 하기 위함 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 차트 데이터를 semesterWithLectures(점진 로드)→semesters(즉시 전체)로 변경 해 과거 학기 GPA가 한 번에 실제값으로 표시되도록 함 - 막대 높이를 GPA 0 기준 비례로 변경(floor 6dp)해 바닥 정렬 시 비교 가능 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
값 라벨(GPA) 영역을 고정 높이(16dp)로 예약하고 막대를 하단 고정 플롯 영역에 배치해, 현재 학기 막대만 아래로 밀려 바닥선이 어긋나던 문제 수정. 모든 막대가 같은 바닥선을 공유해 높이 비교 가능 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
학기 탭과 GPA 추이를 semesters(즉시 전체 로드)에서 산출하고, 강의 목록만 semesterWithLectures에서 year/semester 매칭으로 가져오도록 변경. 과거 학기가 천천히 채워지던 문제 해소 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
긴 제목이 교수/학점/성적 배지를 밀어내 UI가 깨지던 문제 수정. 좌측 정보 Row를 weight로 제약하고 제목에 maxLines=1 + Ellipsis 적용, 배지가 항상 보이도록 함 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
좌석 상세 화면을 ChapelScreen에서 호출할 수 있도록 가시성 공개 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- ChapelViewModel.chapelUiState의 chapelCard에서 실제 출석/지각 일수와 좌석번호/층/장소를 가져와 표시(하드코딩 제거), 남은 출석은 7회 기준 - '좌석 위치 보기' 탭 시 MySeatLocationScreen으로 전환, 뒤로가기로 복귀 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
가장 최근 학기의 평점/취득학점/과목수/강의목록을 산출. 해당 학기에 강의(성적)가 적재되지 않았으면 미등록으로 보고 모든 값을 '?'로 노출. 차트는 semesters, 강의 목록은 semesterWithLectures를 함께 결합 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
이번 학기 성적/취득/과목/강의목록을 인자로 받아 렌더하고, 미등록이면 평점·취득·과목을 '?'로, 강의 목록 대신 '아직 등록된 성적이 없어요' 안내를 표시. onDismissRequest로 닫기 처리 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
GpaHeroCard '이번 학기 성적보기'는 GradeBottomSheet를 띄우고, GpaChartCard '자세히'는 onChartDetailClick(성적 상세)로 연결 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
MainScreen 호출 시 navigateToGradeDetail를 onChartDetailClick에 연결 (이번 학기 성적보기는 바텀시트로 처리되므로 onGradeDetailClick 미사용) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
GradeBottomSheet(ModalBottomSheet) 호출을 위한 opt-in Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 전체 학기 추이(bar)에서 휴학(시도·취득 0학점) 학기 제외 - P/F 전용 학기(평점 0, 이수학점>0)는 직전 성적을 유지(carry-forward) - 이번 학기가 휴학이면 currentSemesterOnLeave=true 노출 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
성적 상세의 성적 추이(gpaPoints)에서 휴학(미수강) 학기를 제외하고, P/F 전용 학기는 직전 성적을 유지(carry-forward)해 추이가 0으로 떨어지지 않도록 함. 탭 목록은 전체 학기 유지 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
onLeave=true면 '이번 학기는 휴학이에요', 아니면 '아직 등록된 성적이 없어요'를 표시 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
MainViewModel.currentSemesterOnLeave를 GradeBottomSheet onLeave로 연결 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
DB 최신 학기 행 대신 GetCurrentSemesterUseCase로 현재 학기를 판별. 현재 학기가 아직 DB에 없어 25-2 등으로 잘못 표시되던 문제 수정. 성적 미등록 시 학기명은 유지하고 평점/취득/과목만 ?로 표시 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
선택 학기의 강의(성적)가 적재되었는지 여부를 노출. 성적 미공개 학기에 '아직 등록된 성적이 없어요' 안내를 위한 플래그 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
선택 학기 성적이 공개되지 않았으면(registered=false) GPA 카드/강의목록 대신 안내 문구를 표시하고 성적 추이는 유지 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
[feat] 신규 UI ViewModel 연결 (#111)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#️⃣연관된 이슈
📝작업 내용
v3_final(5/31 일자 기준) 다크모드, 로그인 화면(변경 후), 스플래시 화면, 로그아웃 alert는 미구현 상태입니다.
스플래시 화면은 v1, 로그인 화면은 TF 전 상태로 남아있습니다.
나머지 UI적인 부분은 이어서 작업하겠습니다. 감사합니다.
(상단 타이틀바는 추후에 삭제가 필요해보입니다)
💬리뷰 요구사항(선택)
Screen 파일들이 이후 작업하기에 용이한 상태인지(너무 지저분하지 않은지) 피드백 부탁드립니다!