Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
2c5c6dd
✨ Feat: Kermit 의존성 추가 ConventionPlugin 구현
dogmania Jan 17, 2026
13021fb
✨ Feat: Kermit Logging 라이브러리 의존성 정의
dogmania Jan 17, 2026
64b4c14
✨ Feat: KermitConventionPlugin 적용
dogmania Jan 17, 2026
138d1bc
✨ Feat: KermitConventionPlugin 등록
dogmania Jan 17, 2026
7d3b0b6
✨ Faet: Kermit 라이브러리 의존성 추가
dogmania Jan 17, 2026
c2d42f2
✨ Feat: BaseViewModel 구현
dogmania Jan 17, 2026
63f5103
✨ Feat: Intent 인터페이스 정의
dogmania Jan 17, 2026
5d335b3
✨ Feat: :feature:main 생성
dogmania Jan 18, 2026
bf4561d
🍱 Chore: 이미지 리소스 추가
dogmania Jan 18, 2026
8d5a9a8
✨ Feat: MainTab 정의
dogmania Jan 18, 2026
c3aa31a
🍱 Chore: string 리소스 추가
dogmania Jan 18, 2026
f77996b
✨ Feat: GNB 탭 타이틀 추가
dogmania Jan 18, 2026
cef4b05
🔥 Remove: 테스트 파일 삭제
dogmania Jan 20, 2026
9a04772
✨ Feat: nameSpace 추가
dogmania Jan 20, 2026
044dfbd
Merge branch 'develop' of github.com:YAPP-Github/Twix-Android into fe…
dogmania Jan 20, 2026
c7ec1c0
♻️ Refactor: ktlint 적용
dogmania Jan 20, 2026
ec40906
✨ Feat: NoSideEffect 구현
dogmania Jan 20, 2026
a59bdb1
✨ Feat: MainIntent 정의
dogmania Jan 20, 2026
4334c7a
✨ Feat: MainScreen 컨테이너 컴포저블 구현
dogmania Jan 20, 2026
66a00f3
✨ Feat: GNB 구현
dogmania Jan 20, 2026
b40d480
♻️ Refactor: state -> uiState로 변경
dogmania Jan 20, 2026
3fe39c5
✨ Feat: :feature:main 의존성 추가
dogmania Jan 20, 2026
48125e0
✨ Feat: mainModule DI 컨테이너 등록
dogmania Jan 20, 2026
16bfe46
♻️ Refactor: 시작 화면을 임시로 MainGraph로 변경
dogmania Jan 20, 2026
c6d62c9
♻️ Refactor: Login -> LoginRoute로 변경
dogmania Jan 20, 2026
32ba42c
✨ Feat: 탭 선택 Intent 처리 로직 구현
dogmania Jan 20, 2026
3c2abcd
✨ Feat: MainModule 구현
dogmania Jan 20, 2026
59bbb29
✨ Feat: selectedTab 상태 변수 정의
dogmania Jan 20, 2026
1d58ba6
✨ Feat: MainNavGraph 구현
dogmania Jan 20, 2026
5997f8e
✨ Feat: HomeModule 뷰모델 추가
dogmania Jan 20, 2026
4282ca3
✨ Feat: HomeModule 구현
dogmania Jan 20, 2026
a1a3220
🍱 Chore: 문자열 리소스 추가
dogmania Jan 20, 2026
6c558e5
✨ Feat: HomeModule 초기화
dogmania Jan 20, 2026
6527cea
♻️ Refactor: ktlint 적용
dogmania Jan 20, 2026
c522359
✨ Feat: HomeRoute 적용
dogmania Jan 20, 2026
14c2372
🍱 Chore: 이미지 리소스 추가
dogmania Jan 20, 2026
c52ec9d
✨ Feat: SelectDate 인텐트 정의
dogmania Jan 20, 2026
12b5a8d
✨ Feat: 바텀시트 렌더링 사이드 이펙트 정의
dogmania Jan 20, 2026
414ac63
✨ Feat: SelectDate 인텐트 처리 로직 구현
dogmania Jan 20, 2026
4b3929b
✨ Feat: HomeTopBar 구현
dogmania Jan 20, 2026
fc9ac30
✨ Feat: HomeScreen TopBar 추가
dogmania Jan 20, 2026
0add1e7
✨ Feat: HomeUiState selectedDate 정의
dogmania Jan 20, 2026
3cc468c
🍱 Chore: 문자열 리소스 추가
dogmania Jan 24, 2026
33c2148
✨ Feat: 확장 메서드 구현
dogmania Jan 24, 2026
d8b6d81
✨ Feat: WeeklyCalendar 구현
dogmania Jan 24, 2026
0cc7027
✨ Feat: 주간 달력 조작 Intent 구현
dogmania Jan 24, 2026
09b42d9
✨ Feat: 홈 화면 상단 VisibleDate 상태 추가 및 업데이트 로직 구현
dogmania Jan 24, 2026
11d9792
✨ Feat: 달력 스와이프, visibleDate 업데이트 로직 구현
dogmania Jan 24, 2026
43bf66b
♻️ Refactor: 하단 패딩 추가
dogmania Jan 24, 2026
9bd2710
✨ Feat: 홈 화면 주간 달력 구현
dogmania Jan 24, 2026
1fb98cc
🍱 Chore: 리소스 추가
dogmania Jan 24, 2026
e30c97e
✨ Feat: EmptyGoalGuide 구현
dogmania Jan 24, 2026
ad2980c
✨ Feat: 홈화면 EmptyGoalGuide 추가
dogmania Jan 24, 2026
598d7a7
🍱 Chore: 리소스 추가
dogmania Jan 24, 2026
4f8a078
♻️ Refactor: ktlint 적용
dogmania Jan 24, 2026
a21cd0f
✨ Feat: AddGoalButton 추가
dogmania Jan 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ dependencies {
implementation(projects.data)
implementation(projects.domain)
implementation(projects.feature.login)
implementation(projects.feature.main)

// Firebase
implementation(platform(libs.google.firebase.bom))
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/java/com/yapp/twix/di/FeatureModules.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package com.yapp.twix.di

import com.twix.home.di.homeModule
import com.twix.login.di.loginModule
import com.twix.main.di.mainModule
import org.koin.core.module.Module

val featureModules: List<Module> =
listOf(
loginModule,
mainModule,
homeModule,
)
4 changes: 4 additions & 0 deletions build-logic/convention/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,9 @@ gradlePlugin {
id = "twix.data"
implementationClass = "com.twix.convention.DataConventionPlugin"
}
register("kermit") {
id = "twix.kermit"
implementationClass = "com.twix.convention.KermitConventionPlugin"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ class FeatureConventionPlugin : BuildLogicConventionPlugin({
apply<AndroidLibraryConventionPlugin>()
apply<KoinConventionPlugin>()
apply<AndroidComposeConventionPlugin>()
apply< KermitConventionPlugin>()

dependencies {
implementation(project(":core:analytics"))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.twix.convention

import com.twix.convention.extension.implementation
import com.twix.convention.extension.library
import com.twix.convention.extension.libs
import org.gradle.kotlin.dsl.dependencies

class KermitConventionPlugin: BuildLogicConventionPlugin({
dependencies {
implementation(libs.library("kermit"))
}
})
12 changes: 12 additions & 0 deletions core/design-system/src/main/res/drawable/ic_alert.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M9.049,19.593C9.23,20.282 9.64,20.892 10.214,21.328C10.788,21.764 11.493,22 12.219,22C12.944,22 13.65,21.764 14.223,21.328C14.797,20.892 15.207,20.282 15.389,19.593M12,3C10.047,3 8.174,3.761 6.793,5.115C5.412,6.469 4.636,8.306 4.636,10.221V14.074L3.058,17.948C3.009,18.07 2.99,18.201 3.005,18.331C3.019,18.462 3.066,18.586 3.141,18.695C3.216,18.803 3.316,18.892 3.434,18.953C3.552,19.015 3.684,19.047 3.817,19.047H20.183C20.316,19.047 20.448,19.015 20.566,18.953C20.684,18.892 20.784,18.803 20.859,18.695C20.934,18.586 20.981,18.462 20.995,18.331C21.01,18.201 20.991,18.07 20.942,17.948L19.364,14.073V10.221C19.364,8.306 18.588,6.469 17.207,5.115C15.826,3.761 13.953,3 12,3Z"
android:strokeWidth="1.2"
android:fillColor="#00000000"
android:strokeColor="#464646"
android:strokeLineCap="round"/>
</vector>
11 changes: 11 additions & 0 deletions core/design-system/src/main/res/drawable/ic_couple_selected.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:strokeWidth="1"
android:pathData="M12.673,20.737C12.292,21.084 11.708,21.084 11.327,20.737L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C8.873,3 10.295,4.179 11.369,5.3C11.793,5.743 12.504,5.741 12.911,5.283C13.904,4.167 15.134,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12.673,20.737Z"
android:fillColor="#171717"
android:strokeColor="#171717"/>
</vector>
11 changes: 11 additions & 0 deletions core/design-system/src/main/res/drawable/ic_couple_unselected.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:strokeWidth="1"
android:pathData="M12.673,20.737C12.292,21.084 11.708,21.084 11.327,20.737L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C8.873,3 10.295,4.179 11.369,5.3C11.793,5.743 12.504,5.741 12.911,5.283C13.904,4.167 15.134,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12.673,20.737Z"
android:fillColor="#00000000"
android:strokeColor="#171717"/>
</vector>
13 changes: 13 additions & 0 deletions core/design-system/src/main/res/drawable/ic_drop_down_arrow.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M15,11H9L12.2,14L15,11Z"
android:strokeLineJoin="round"
android:strokeWidth="0.857143"
android:fillColor="#464646"
android:strokeColor="#464646"
Comment on lines +6 to +11
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

다크 모드/테마 대응을 위해 색상 하드코딩을 피하는 게 좋아요.

왜 문제인가요: #464646 고정 색상은 다크 모드에서 대비가 깨질 수 있어 디자인 시스템 일관성과 접근성을 해칩니다.
어떻게 개선하나요: 테마 속성으로 바꾸거나, 아이콘을 무채색으로 두고 사용처에서 tint를 적용하는 방식이 더 안전합니다. 아래처럼 테마 색상으로 치환하는 건 어떨까요?

♻️ 테마 속성 사용 예시
-      android:fillColor="#464646"
-      android:strokeColor="#464646"
+      android:fillColor="?attr/colorOnSurface"
+      android:strokeColor="?attr/colorOnSurface"

질문: 이 아이콘은 특정 색을 고정해야 하는 의도가 있었나요, 아니면 화면 테마에 따라 변화하도록 의도하셨나요?

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<path
android:pathData="M15,11H9L12.2,14L15,11Z"
android:strokeLineJoin="round"
android:strokeWidth="0.857143"
android:fillColor="#464646"
android:strokeColor="#464646"
<path
android:pathData="M15,11H9L12.2,14L15,11Z"
android:strokeLineJoin="round"
android:strokeWidth="0.857143"
android:fillColor="?attr/colorOnSurface"
android:strokeColor="?attr/colorOnSurface"
🤖 Prompt for AI Agents
In `@core/design-system/src/main/res/drawable/ic_drop_down_arrow.xml` around lines
6 - 11, The path element in ic_drop_down_arrow.xml hardcodes fillColor and
strokeColor to `#464646` which breaks dark-theme contrast; update the drawable to
avoid fixed colors by replacing android:fillColor and android:strokeColor with a
theme attribute (e.g., ?attr/colorOnBackground or a dedicated ?attr/colorIcon)
or remove those attributes so the view can apply a tint at runtime; locate the
<path ... android:fillColor="#464646" android:strokeColor="#464646" ... /> and
swap to the theme attribute or null it, and ensure consuming views call
setImageTintList or use android:tint to apply the correct themed color.

android:strokeLineCap="round"/>
</vector>
57 changes: 57 additions & 0 deletions core/design-system/src/main/res/drawable/ic_empty_face.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="44dp"
android:viewportWidth="40"
android:viewportHeight="44">
<path
android:pathData="M3,24.259C3,15.727 9.712,8.712 18.294,7.883C20.356,7.897 24.851,8.142 26.341,9.005C32.578,11.441 36.985,17.344 36.985,24.259C36.985,33.346 29.383,40.715 19.993,40.715C10.602,40.715 3,33.346 3,24.259Z"
android:strokeWidth="6"
android:fillColor="#ffffff"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
<path
android:pathData="M21.933,10.772C20.229,8.642 21.173,5.456 21.455,4.834C22.407,3.004 23.305,2.812 24.272,2.825C25.237,2.836 26.236,3.391 26.403,4.237"
android:strokeWidth="6"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
<path
android:pathData="M24.465,6.232C24.045,5.65 23.075,4.902 21.318,5.417"
android:strokeWidth="6"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
<path
android:pathData="M21.929,10.774C20.226,8.644 21.169,5.458 21.451,4.836C22.403,3.006 23.301,2.814 24.268,2.827C25.233,2.838 26.232,3.392 26.399,4.239"
android:strokeWidth="1.41601"
android:fillColor="#00000000"
android:strokeColor="#464646"
android:strokeLineCap="round"/>
<path
android:pathData="M24.461,6.232C24.042,5.65 23.071,4.902 21.314,5.417"
android:strokeWidth="1.41601"
android:fillColor="#00000000"
android:strokeColor="#464646"
android:strokeLineCap="round"/>
<path
android:pathData="M3,24.259C3,15.727 9.712,8.712 18.294,7.883C20.356,7.897 24.851,8.142 26.341,9.005C32.578,11.441 36.985,17.344 36.985,24.259C36.985,33.346 29.383,40.715 19.993,40.715C10.602,40.715 3,33.346 3,24.259Z"
android:strokeWidth="1.41601"
android:fillColor="#ffffff"
android:strokeColor="#464646"
android:strokeLineCap="round"/>
<path
android:pathData="M27.392,22.435C27.392,24.788 24.052,26.696 19.932,26.696C15.812,26.696 12.473,24.788 12.473,22.435C12.473,20.081 15.79,18.488 19.91,18.488C24.03,18.488 27.392,20.081 27.392,22.435Z"
android:fillColor="#C6C6C6"/>
<path
android:pathData="M12.459,23.855C13.157,23.855 13.722,23.289 13.722,22.592C13.722,21.894 13.157,21.328 12.459,21.328C11.761,21.328 11.195,21.894 11.195,22.592C11.195,23.289 11.761,23.855 12.459,23.855Z"
android:fillColor="#464646"/>
<path
android:pathData="M27.537,23.855C28.235,23.855 28.801,23.289 28.801,22.592C28.801,21.894 28.235,21.328 27.537,21.328C26.839,21.328 26.273,21.894 26.273,22.592C26.273,23.289 26.839,23.855 27.537,23.855Z"
android:fillColor="#464646"/>
<path
android:pathData="M12.904,30.812C12.904,30.812 20.088,27.494 27.208,30.815"
android:strokeWidth="1.41601"
android:fillColor="#00000000"
android:strokeColor="#464646"
android:strokeLineCap="round"/>
</vector>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="65dp"
android:height="125dp"
android:viewportWidth="65"
android:viewportHeight="125">
<path
android:pathData="M64.28,120.95C64.79,120.73 65.02,120.14 64.81,119.64L61.26,111.36C61.04,110.86 60.45,110.62 59.95,110.84C59.44,111.06 59.2,111.64 59.42,112.15L62.57,119.5L55.22,122.65C54.71,122.87 54.48,123.46 54.69,123.97C54.91,124.48 55.5,124.71 56.01,124.49L64.28,120.95ZM1.39,0.08L0.39,-0C-0.9,15.44 0.7,39.96 9.69,63.48C18.69,87 35.11,109.6 63.51,120.96L63.89,120.03L64.26,119.1C36.52,108 20.42,85.94 11.56,62.76C2.69,39.57 1.11,15.35 2.38,0.17L1.39,0.08Z"
android:fillColor="#C6C6C6"/>
</vector>
11 changes: 11 additions & 0 deletions core/design-system/src/main/res/drawable/ic_home_selected.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:strokeWidth="1"
android:pathData="M2,19.714V9.429C2,9.067 2.089,8.724 2.266,8.4C2.443,8.076 2.688,7.81 3,7.6L10.5,2.457C10.938,2.152 11.438,2 12,2C12.563,2 13.063,2.152 13.5,2.457L21,7.6C21.313,7.81 21.557,8.076 21.734,8.4C21.912,8.724 22,9.067 22,9.429V19.714C22,20.343 21.755,20.881 21.266,21.329C20.776,21.776 20.188,22 19.5,22H15.75C15.396,22 15.099,21.89 14.859,21.671C14.62,21.452 14.5,21.181 14.5,20.857V15.143C14.5,14.819 14.38,14.548 14.141,14.329C13.901,14.109 13.604,14 13.25,14H10.75C10.396,14 10.099,14.109 9.859,14.329C9.62,14.548 9.5,14.819 9.5,15.143V20.857C9.5,21.181 9.38,21.452 9.141,21.671C8.901,21.89 8.604,22 8.25,22H4.5C3.813,22 3.224,21.776 2.734,21.329C2.245,20.881 2,20.343 2,19.714Z"
android:fillColor="#171717"
android:strokeColor="#171717"/>
</vector>
11 changes: 11 additions & 0 deletions core/design-system/src/main/res/drawable/ic_home_unselected.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:strokeWidth="1"
android:pathData="M2,19.714V9.429C2,9.067 2.089,8.724 2.266,8.4C2.443,8.076 2.688,7.81 3,7.6L10.5,2.457C10.938,2.152 11.438,2 12,2C12.563,2 13.063,2.152 13.5,2.457L21,7.6C21.313,7.81 21.557,8.076 21.734,8.4C21.912,8.724 22,9.067 22,9.429V19.714C22,20.343 21.755,20.881 21.266,21.329C20.776,21.776 20.188,22 19.5,22H15.75C15.396,22 15.099,21.89 14.859,21.671C14.62,21.452 14.5,21.181 14.5,20.857V15.143C14.5,14.819 14.38,14.548 14.141,14.329C13.901,14.109 13.604,14 13.25,14H10.75C10.396,14 10.099,14.109 9.859,14.329C9.62,14.548 9.5,14.819 9.5,15.143V20.857C9.5,21.181 9.38,21.452 9.141,21.671C8.901,21.89 8.604,22 8.25,22H4.5C3.813,22 3.224,21.776 2.734,21.329C2.245,20.881 2,20.343 2,19.714Z"
android:fillColor="#00000000"
android:strokeColor="#171717"/>
Comment on lines +6 to +10
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check the file existence and content
echo "=== Checking ic_home_unselected.xml ==="
cat -n core/design-system/src/main/res/drawable/ic_home_unselected.xml 2>/dev/null || echo "File not found"

# Check for colors.xml files
echo -e "\n=== Checking for colors.xml files ==="
fd -t f "colors.xml" core/design-system/

# Check for night theme resources
echo -e "\n=== Checking for night theme resources ==="
fd -t d "values-night" core/design-system/

# Check other drawable icons for color patterns
echo -e "\n=== Checking other drawable icons for color patterns ==="
fd -t f "ic_.*\.xml" core/design-system/src/main/res/drawable/ | head -10 | xargs -I {} bash -c 'echo "File: {}"; grep -E "(fillColor|strokeColor)" {} | head -1; echo'

# Check for theme attribute usage in resources
echo -e "\n=== Checking for theme attribute usage ==="
rg -n "\?attr" core/design-system/src/main/res/ --type xml | head -20

Repository: YAPP-Github/Twix-Android

Length of output: 2403


디자인 시스템의 아이콘 색상을 테마 기반으로 관리해야 합니다.

현재 strokeColor="#171717"이 하드코딩되어 있어 다크 모드 지원에 장애물이 됩니다. 다른 아이콘들도 같은 방식으로 색상을 관리하고 있는데, 이는 다크 모드 도입 시 모든 drawable을 수정해야 하는 상황을 초래합니다.

왜 개선이 필요한가:

  • Material Design 3 가이드라인은 색상을 테마 속성으로 정의하여 다크/라이트 모드를 자동으로 지원하도록 권장합니다.
  • 현재 모든 아이콘이 하드코딩된 색상을 사용하면, 향후 다크 모드 지원 시 drawable 파일을 개별 수정해야 합니다.

개선 방안:

  1. core/design-system/src/main/res/values/colors.xml 생성하여 색상 정의
    <color name="icon_default">#171717</color>
  2. drawable에서 @color/icon_default 참조 사용
  3. 향후 다크 모드 지원 시 values-night/colors.xml 추가하여 동일한 색상명으로 다른 값 정의

이렇게 구조화하면 다크 모드 추가 시 colors.xml만 수정하면 모든 아이콘이 자동으로 테마를 따르게 됩니다.

🤖 Prompt for AI Agents
In `@core/design-system/src/main/res/drawable/ic_home_unselected.xml` around lines
6 - 10, The path in ic_home_unselected.xml hardcodes strokeColor="#171717" which
breaks theme/dark-mode support; replace the hardcoded android:strokeColor on the
<path> with a color resource reference (e.g., `@color/icon_default`) and add a
colors.xml entry named icon_default in
core/design-system/src/main/res/values/colors.xml (and a corresponding
values-night/colors.xml for dark mode) so icons follow theme colors instead of
fixed hex values.

</vector>
12 changes: 12 additions & 0 deletions core/design-system/src/main/res/drawable/ic_plus.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="44dp"
android:height="44dp"
android:viewportWidth="44"
android:viewportHeight="44">
<path
android:pathData="M22,11L22,33M33,22L11,22"
android:strokeWidth="1.2"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
</vector>
16 changes: 16 additions & 0 deletions core/design-system/src/main/res/drawable/ic_setting.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M20.089,12.545L21.48,13.783C21.737,13.998 21.909,14.297 21.964,14.627C22.019,14.956 21.954,15.295 21.782,15.582L20.105,18.446C19.975,18.665 19.789,18.846 19.566,18.971C19.341,19.095 19.088,19.161 18.831,19.163C18.671,19.164 18.512,19.14 18.36,19.092L16.58,18.505C16.268,18.705 15.944,18.884 15.608,19.042L15.234,20.846C15.165,21.178 14.98,21.475 14.712,21.683C14.442,21.895 14.106,22.007 13.762,22H10.29C9.946,22.007 9.61,21.895 9.339,21.683C9.072,21.474 8.888,21.178 8.819,20.846L8.443,19.042C8.111,18.881 7.789,18.702 7.479,18.503L5.693,19.092C5.54,19.14 5.382,19.164 5.222,19.163C4.965,19.161 4.713,19.095 4.488,18.971C4.266,18.847 4.08,18.666 3.95,18.448L2.213,15.582C2.032,15.293 1.963,14.948 2.019,14.612C2.074,14.275 2.25,13.971 2.514,13.755L3.903,12V11.455L2.513,10.217C2.256,10.003 2.084,9.704 2.029,9.374C1.974,9.044 2.038,8.705 2.211,8.419L3.948,5.554C4.078,5.335 4.264,5.154 4.487,5.029C4.711,4.905 4.964,4.839 5.22,4.837C5.379,4.827 5.537,4.842 5.691,4.88L7.442,5.496C7.755,5.296 8.079,5.117 8.414,4.959L8.79,3.154C8.858,2.822 9.043,2.526 9.31,2.317C9.58,2.105 9.916,1.993 10.26,2H13.703C14.047,1.993 14.383,2.105 14.654,2.317C14.923,2.528 15.108,2.825 15.174,3.154L15.549,4.959C15.883,5.118 16.204,5.297 16.514,5.497L18.302,4.909C18.5,4.845 18.71,4.822 18.917,4.843C19.125,4.864 19.326,4.927 19.508,5.029C19.731,5.156 19.916,5.337 20.046,5.553L21.782,8.419C21.965,8.705 22.037,9.048 21.986,9.384C21.934,9.72 21.762,10.026 21.502,10.245L20.089,11.448V12.545Z"
android:strokeWidth="1.2"
android:fillColor="#00000000"
android:strokeColor="#464646"/>
<path
android:pathData="M15.844,11.998C15.844,13.019 15.439,13.997 14.718,14.718C13.997,15.439 13.019,15.844 11.998,15.844C10.978,15.844 10,15.439 9.279,14.718C8.558,13.997 8.152,13.019 8.152,11.998C8.152,10.978 8.558,10 9.279,9.279C10,8.558 10.978,8.152 11.998,8.152C13.019,8.152 13.997,8.558 14.718,9.279C15.439,10 15.844,10.978 15.844,11.998Z"
android:strokeWidth="1.2"
android:fillColor="#00000000"
android:strokeColor="#464646"/>
</vector>
15 changes: 15 additions & 0 deletions core/design-system/src/main/res/drawable/ic_stats_selected.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M8.77,2.809H5.134C4.895,2.809 4.66,2.858 4.44,2.955C4.22,3.051 4.02,3.193 3.851,3.371C3.683,3.549 3.549,3.761 3.458,3.994C3.367,4.227 3.32,4.476 3.32,4.728V8.579C3.32,9.089 3.511,9.578 3.851,9.94C4.191,10.302 4.652,10.506 5.134,10.509H8.77C9.254,10.509 9.717,10.306 10.059,9.944C10.401,9.582 10.593,9.091 10.593,8.579V4.728C10.59,4.218 10.397,3.73 10.056,3.37C9.714,3.011 9.252,2.809 8.77,2.809ZM18.869,2.809H15.233C14.751,2.809 14.289,3.011 13.947,3.37C13.606,3.73 13.413,4.218 13.41,4.728V8.579C13.41,9.091 13.602,9.581 13.944,9.943C14.286,10.305 14.749,10.509 15.233,10.509H18.869C19.351,10.506 19.812,10.302 20.152,9.94C20.492,9.578 20.683,9.089 20.683,8.579V4.728C20.683,4.219 20.492,3.731 20.152,3.371C19.812,3.011 19.35,2.809 18.869,2.809ZM8.77,13.491H5.134C4.652,13.494 4.19,13.698 3.851,14.06C3.511,14.422 3.32,14.912 3.32,15.422V19.272C3.32,19.781 3.511,20.27 3.851,20.63C4.191,20.99 4.653,21.192 5.134,21.192H8.77C9.252,21.192 9.714,20.99 10.056,20.631C10.397,20.271 10.59,19.782 10.593,19.272V15.422C10.593,14.91 10.401,14.419 10.059,14.057C9.717,13.695 9.254,13.492 8.77,13.492M17.046,13.491C16.081,13.491 15.156,13.897 14.474,14.619C13.792,15.341 13.409,16.32 13.409,17.342C13.409,18.363 13.792,19.342 14.474,20.064C15.156,20.787 16.081,21.192 17.046,21.192C18.01,21.192 18.935,20.787 19.618,20.064C20.299,19.342 20.683,18.363 20.683,17.342C20.683,16.32 20.299,15.341 19.618,14.619C18.935,13.897 18.01,13.491 17.046,13.491Z"
android:fillColor="#171717"/>
<path
android:strokeWidth="1"
android:pathData="M8.77,13.491H5.134C4.652,13.494 4.19,13.698 3.851,14.06C3.511,14.422 3.32,14.912 3.32,15.422V19.272C3.32,19.781 3.511,20.27 3.851,20.63C4.191,20.99 4.653,21.192 5.134,21.192H8.77C9.252,21.192 9.714,20.99 10.056,20.631C10.397,20.271 10.59,19.782 10.593,19.272V15.422C10.593,14.91 10.401,14.419 10.059,14.057C9.717,13.695 9.254,13.492 8.77,13.492M8.77,2.809H5.134C4.895,2.809 4.66,2.858 4.44,2.955C4.22,3.051 4.02,3.193 3.851,3.371C3.683,3.549 3.549,3.761 3.458,3.994C3.367,4.227 3.32,4.476 3.32,4.728V8.579C3.32,9.089 3.511,9.578 3.851,9.94C4.191,10.302 4.652,10.506 5.134,10.509H8.77C9.254,10.509 9.717,10.306 10.059,9.944C10.401,9.582 10.593,9.091 10.593,8.579V4.728C10.59,4.218 10.397,3.73 10.056,3.37C9.714,3.011 9.252,2.809 8.77,2.809ZM18.869,2.809H15.233C14.751,2.809 14.289,3.011 13.947,3.37C13.606,3.73 13.413,4.218 13.41,4.728V8.579C13.41,9.091 13.602,9.581 13.944,9.943C14.286,10.305 14.749,10.509 15.233,10.509H18.869C19.351,10.506 19.812,10.302 20.152,9.94C20.492,9.578 20.683,9.089 20.683,8.579V4.728C20.683,4.219 20.492,3.731 20.152,3.371C19.812,3.011 19.35,2.809 18.869,2.809ZM17.046,13.491C16.081,13.491 15.156,13.897 14.474,14.619C13.792,15.341 13.409,16.32 13.409,17.342C13.409,18.363 13.792,19.342 14.474,20.064C15.156,20.787 16.081,21.192 17.046,21.192C18.01,21.192 18.935,20.787 19.618,20.064C20.299,19.342 20.683,18.363 20.683,17.342C20.683,16.32 20.299,15.341 19.618,14.619C18.935,13.897 18.01,13.491 17.046,13.491Z"
android:fillColor="#00000000"
android:strokeColor="#171717"
android:strokeLineCap="round"/>
</vector>
12 changes: 12 additions & 0 deletions core/design-system/src/main/res/drawable/ic_stats_unselected.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:strokeWidth="1"
android:pathData="M8.77,13.491H5.134C4.652,13.494 4.19,13.698 3.851,14.06C3.511,14.422 3.32,14.912 3.32,15.422V19.272C3.32,19.781 3.511,20.27 3.851,20.63C4.191,20.99 4.653,21.192 5.134,21.192H8.77C9.252,21.192 9.714,20.99 10.056,20.631C10.397,20.271 10.59,19.782 10.593,19.272V15.422C10.593,14.91 10.401,14.419 10.059,14.057C9.717,13.695 9.254,13.492 8.77,13.492M8.77,2.809H5.134C4.895,2.809 4.66,2.858 4.44,2.955C4.22,3.051 4.02,3.193 3.851,3.371C3.683,3.549 3.549,3.761 3.458,3.994C3.367,4.227 3.32,4.476 3.32,4.728V8.579C3.32,9.089 3.511,9.578 3.851,9.94C4.191,10.302 4.652,10.506 5.134,10.509H8.77C9.254,10.509 9.717,10.306 10.059,9.944C10.401,9.582 10.593,9.091 10.593,8.579V4.728C10.59,4.218 10.397,3.73 10.056,3.37C9.714,3.011 9.252,2.809 8.77,2.809ZM18.869,2.809H15.233C14.751,2.809 14.289,3.011 13.947,3.37C13.606,3.73 13.413,4.218 13.41,4.728V8.579C13.41,9.091 13.602,9.581 13.944,9.943C14.286,10.305 14.749,10.509 15.233,10.509H18.869C19.351,10.506 19.812,10.302 20.152,9.94C20.492,9.578 20.683,9.089 20.683,8.579V4.728C20.683,4.219 20.492,3.731 20.152,3.371C19.812,3.011 19.35,2.809 18.869,2.809ZM17.046,13.491C16.081,13.491 15.156,13.897 14.474,14.619C13.792,15.341 13.409,16.32 13.409,17.342C13.409,18.363 13.792,19.342 14.474,20.064C15.156,20.787 16.081,21.192 17.046,21.192C18.01,21.192 18.935,20.787 19.618,20.064C20.299,19.342 20.683,18.363 20.683,17.342C20.683,16.32 20.299,15.341 19.618,14.619C18.935,13.897 18.01,13.491 17.046,13.491Z"
android:fillColor="#00000000"
android:strokeColor="#171717"
android:strokeLineCap="round"/>
</vector>
21 changes: 21 additions & 0 deletions core/design-system/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<resources>

<!-- 단어 -->
<string name="word_home">홈</string>
<string name="word_stats">통계</string>
<string name="word_couple_page">커플페이지</string>
<string name="word_today">오늘</string>

<string name="word_sunday">일</string>
<string name="word_monday">월</string>
<string name="word_tuesday">화</string>
<string name="word_wednesday">수</string>
<string name="word_thursday">목</string>
<string name="word_friday">금</string>
<string name="word_saturday">토</string>

<!-- 홈 화면 -->
<string name="home_today_goal">오늘 우리 목표</string>
<string name="homt_empty_goal_guide">첫 목표를 세워볼까요?</string>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

오타 수정이 필요합니다: homthome

String key 이름에 오타가 있습니다. homt_empty_goal_guidehome_empty_goal_guide로 수정해주세요. 이 키를 참조하는 코드(EmptyGoalGuide.kt)도 함께 수정이 필요합니다.

🐛 수정 제안
-    <string name="homt_empty_goal_guide">첫 목표를 세워볼까요?</string>
+    <string name="home_empty_goal_guide">첫 목표를 세워볼까요?</string>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<string name="homt_empty_goal_guide">첫 목표를 세워볼까요?</string>
<string name="home_empty_goal_guide">첫 목표를 세워볼까요?</string>
🤖 Prompt for AI Agents
In `@core/design-system/src/main/res/values/strings.xml` at line 19, Rename the
malformed string resource key homt_empty_goal_guide to home_empty_goal_guide in
strings.xml and update all usages to match (for example the reference in
EmptyGoalGuide.kt), ensuring the string value remains unchanged and any
import/lookup (e.g., R.string.homt_empty_goal_guide) is replaced with
R.string.home_empty_goal_guide so resource lookups compile correctly.


</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ fun AppNavHost() {
}
val start =
contributors
.firstOrNull { it.graphRoute == NavRoutes.LoginGraph }
.firstOrNull { it.graphRoute == NavRoutes.MainGraph }
?.graphRoute
?: error("해당 Graph를 찾을 수 없습니다.")
val duration = 300
Expand Down
16 changes: 9 additions & 7 deletions core/navigation/src/main/java/com/twix/navigation/NavRoutes.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,17 @@ package com.twix.navigation
sealed class NavRoutes(
val route: String,
) {
/**
* LoginGraph
* */
object LoginGraph : NavRoutes("login_graph")

object Login : NavRoutes("login")
object LoginRoute : NavRoutes("login")

object HomeGraph : NavRoutes("home_graph")
/**
* MainGraph
* */
object MainGraph : NavRoutes("main_graph")

object Home : NavRoutes("home")

object HomeDetail : NavRoutes("home_detail/{id}") {
fun createRoute(id: String) = "home_detail/$id"
}
object MainRoute : NavRoutes("main")
}
1 change: 1 addition & 0 deletions core/ui/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
plugins {
alias(libs.plugins.twix.android.library)
alias(libs.plugins.twix.android.compose)
alias(libs.plugins.twix.kermit)
}

android {
Expand Down
Loading