Skip to content

Commit ee2e43b

Browse files
Taewan-Pootr47EunhoKangsickbirddMuungi
committed
v1.2.0
- ํšŒ์› ํƒˆํ‡ด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ - ์Šฌ๋ผ์ด๋” ๋””์ž์ธ ๋ณ€๊ฒฝ - ๋”ฅ๋งํฌ ์ง€์› ๋ฐฉ์‹ ๋ณ€๊ฒฝ (11๋ฒˆ๊ฐ€์™€ ๋„ค์ด๋ฒ„ ์Šค๋งˆํŠธ์Šคํ† ์–ด) - ์ธ์•ฑ ์—…๋ฐ์ดํŠธ ๊ตฌํ˜„ - ์ƒํ’ˆ ์ตœ๋Œ€ ๋“ฑ๋ก ๊ฐœ์ˆ˜ ์ œํ•œ - ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ, ์ด๋ฉ”์ผ ์ธ์ฆ ๊ตฌํ˜„ Co-Authored-By: ootr47 <[email protected]> Co-Authored-By: EunhoKang <[email protected]> Co-Authored-By: ByeongIk Choi <[email protected]> Co-Authored-By: ์†๋ฌธ๊ธฐ <[email protected]>
1 parent f818ce8 commit ee2e43b

File tree

101 files changed

+3296
-385
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+3296
-385
lines changed

โ€Ž.github/workflows/firebase-deploy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77

88
jobs:
99
deploy:
10-
runs-on: ubuntu-latest
10+
runs-on: macos-14
1111
steps:
1212
- uses: actions/checkout@v4
1313
with:
@@ -41,4 +41,4 @@ jobs:
4141
serviceCredentialsFileContent: ${{ secrets.FIREBASE_APP_DISTRIBUTION }}
4242
groups: tester
4343
releaseNotesFile: android/release_notes.txt
44-
file: android/app/build/outputs/apk/release/app-release.apk
44+
file: android/app/build/outputs/bundle/release/app-release.aab

โ€ŽREADME.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ PriceGuard๋Š” ๊ตญ๋‚ด ์ƒ๊ฑฐ๋ž˜ ์‚ฌ์ดํŠธ๋“ค์˜ ์ƒํ’ˆ ๊ฐ€๊ฒฉ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.
1212
๋˜ํ•œ ์•ฑ ๋‚ด์—์„œ ์›ํ•˜๋Š” ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ ๋ณ€ํ™”๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.
1313
```
1414

15-
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ [๋งํฌ](https://appdistribution.firebase.google.com/pub/i/b299ae01bd67c829)๋ฅผ ํ†ตํ•ด ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
15+
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์•„๋ž˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
16+
17+
<a href='https://play.google.com/store/apps/details?id=app.priceguard&utm_source=github&utm_campaign=gh-readme'>
18+
<img width="250px" alt='๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ Google Play' src='https://play.google.com/intl/en_us/badges/static/images/badges/ko_badge_web_generic.png'/>
19+
</a>
1620

1721
## ๐Ÿฅ… ๊ธฐ์ˆ ์  ๋„์ „
1822

@@ -129,7 +133,7 @@ PriceGuard๋Š” ๊ตญ๋‚ด ์ƒ๊ฑฐ๋ž˜ ์‚ฌ์ดํŠธ๋“ค์˜ ์ƒํ’ˆ ๊ฐ€๊ฒฉ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.
129133
<img src="https://img.shields.io/badge/Firebase%20Cloud%20Messaging-FFA000?logo=firebase&logoColor=FFFFFF">
130134
<img src="https://img.shields.io/badge/Material%20Design-757575?logo=materialdesign&logoColor=FFFFFF">
131135
<img src="https://img.shields.io/badge/Retrofit-3E4348?logo=square&logoColor=FFFFFF">
132-
<img src="https://camo.githubusercontent.com/c71519c505cafc8d4cc686186e518c03d489b6e6038f3fdcd2d57e9c87d308f3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f726f7574696e65732d6633383431633f7374796c653d666f7274686562616765266c6f676f3d4b6f746c696e266c6f676f436f6c6f723d626c756576696f6c6574">
136+
<img src="https://img.shields.io/badge/Coroutines-7F52FF?logo=kotlin&logoColor=FFFFFF">
133137
</td>
134138
</tr>
135139
<tr>
@@ -154,9 +158,9 @@ PriceGuard๋Š” ๊ตญ๋‚ด ์ƒ๊ฑฐ๋ž˜ ์‚ฌ์ดํŠธ๋“ค์˜ ์ƒํ’ˆ ๊ฐ€๊ฒฉ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.
154158
<img src="https://img.shields.io/badge/Firebase%20App%20Distribution-FFA000?logo=firebase&logoColor=FFFFFF">
155159
<img src="https://img.shields.io/badge/Sonatype-1B1C30?logo=sonatype&logoColor=FFFFFF">
156160
<img src="https://img.shields.io/badge/Nginx-014532?logo=Nginx&logoColor=009639&">
157-
<img src="https://img.shields.io/badge/Naver Cloud Platform-03C75A?logo=naver&logoColor=ffffff">
161+
<img src="https://img.shields.io/badge/Oracle Cloud-F80000?logo=oracle&logoColor=ffffff">
158162
<img src="https://img.shields.io/badge/Docker-2496ED?logo=Docker&logoColor=white">
159-
<img src="https://camo.githubusercontent.com/6841025a5cd57f3ac26ae8b48390b17454c7a553e747ed06e569edd2c47e9b8e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f47697448756220416374696f6e732d3230383846463f7374796c653d666f7274686562616765266c6f676f3d47697448756220416374696f6e73266c6f676f436f6c6f723d626c61636b">
163+
<img src="https://img.shields.io/badge/GitHub%20Actions-2088FF?logo=githubactions&logoColor=white">
160164
</td>
161165
</tr>
162166
<tr>
@@ -215,7 +219,7 @@ PriceGuard๋Š” ๊ตญ๋‚ด ์ƒ๊ฑฐ๋ž˜ ์‚ฌ์ดํŠธ๋“ค์˜ ์ƒํ’ˆ ๊ฐ€๊ฒฉ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.
215219
## ๐Ÿ“บ๏ธŽ ์ž‘๋™ ํ™”๋ฉด
216220
| ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… | ์ƒํ’ˆ ์ถ”์ฒœ/์ƒํ’ˆ ์ƒ์„ธ | ์ƒํ’ˆ ์ถ”๊ฐ€ / ๋งˆ์ดํŽ˜์ด์ง€ | ์•Œ๋žŒ ํ™•์ธ |
217221
| ----------- | --------------- | ----------------- | ------- |
218-
|<img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/37584805/5508d8e1-f0ad-44d8-9278-70e9e41b5df0" width="200" height="400"/> <img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/37584805/27e4d667-0ffb-4be9-ae22-fae9cab068e9" width="200" height="400"/> | <img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/37584805/7c418d77-eca0-437c-b220-22ad89fdc76d" width="200" height="400"/> <img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/37584805/4a111411-46b6-4f86-b750-5827948d246b" width="200" height="400"/> | <img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/37584805/e6d89da9-cb39-49f2-b0ee-073aa666a695" width="200" height="400"/> <img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/37584805/f7778bae-e10c-4459-98d6-a74bbc686efa" width="200" height="400"/> | <img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/37584805/a43b64c9-2b6b-431c-8fbb-a93d8560f605" width="200"/> |
222+
|<img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/83055885/f5c9cbab-c274-48b3-af62-76c74cf3a24e" width="200" height="400"/> <img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/83055885/cc932b39-9a82-4790-afc9-75d942b07c2f" width="200" height="400"/> | <img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/83055885/1632223d-62b4-410d-8ebd-619fdc10afe5" width="200" height="400"/> <img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/83055885/edd8efc4-ec57-480e-b14e-ee1ce410f095" width="200" height="400"/> | <img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/83055885/78a6263e-f589-4fe3-be9d-5867c7602c47" width="200" height="400"/> <img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/83055885/a8007a7f-b7bb-4181-a125-4ab0aceb0362" width="200" height="400"/> | <img src="https://github.com/boostcampwm2023/and09-PriceGuard/assets/83055885/ccdfb93e-ed85-4b57-9b87-e16e34f5fd96" width="200"/> |
219223

220224
## :memo: ๊ธฐ์ˆ  ๋ฌธ์„œ
221225
- [Feature List](https://docs.google.com/spreadsheets/d/1e1Z9YpHPZxcBZN2XBPeoaz88hDby6WG5jmMz8xjqMrU/edit#gid=1955813262)

โ€Žandroid/.idea/.gitignore

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

โ€Žandroid/.idea/appInsightsSettings.xml

Lines changed: 45 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

โ€Žandroid/app/build.gradle.kts

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ android {
1919
applicationId = "app.priceguard"
2020
minSdk = 29
2121
targetSdk = 34
22-
versionCode = 8
23-
versionName = "1.0.1"
22+
versionCode = 10
23+
versionName = "1.2.0"
2424

2525
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2626
}
@@ -58,7 +58,7 @@ android {
5858

5959
dependencies {
6060
// Firebase
61-
implementation(platform("com.google.firebase:firebase-bom:32.6.0"))
61+
implementation(platform("com.google.firebase:firebase-bom:32.8.0"))
6262
implementation("com.google.firebase:firebase-analytics")
6363
implementation("com.google.firebase:firebase-crashlytics")
6464
implementation("com.google.firebase:firebase-perf")
@@ -67,11 +67,9 @@ dependencies {
6767
// Android
6868
implementation("androidx.core:core-ktx:1.12.0")
6969
implementation("androidx.appcompat:appcompat:1.6.1")
70-
implementation("com.google.android.material:material:1.10.0")
71-
implementation("androidx.activity:activity-ktx:1.8.1")
70+
implementation("com.google.android.material:material:1.11.0")
71+
implementation("androidx.activity:activity-ktx:1.8.2")
7272
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
73-
implementation("androidx.navigation:navigation-fragment-ktx:2.7.5")
74-
implementation("androidx.navigation:navigation-ui-ktx:2.7.5")
7573

7674
// Retrofit, Serialization
7775
implementation("com.squareup.retrofit2:retrofit:2.9.0")
@@ -82,7 +80,7 @@ dependencies {
8280
implementation("androidx.datastore:datastore-preferences:1.0.0")
8381

8482
// Hilt
85-
val hiltVersion = "2.48.1"
83+
val hiltVersion = "2.49"
8684
implementation("com.google.dagger:hilt-android:$hiltVersion")
8785
kapt("com.google.dagger:hilt-android-compiler:$hiltVersion")
8886

@@ -92,7 +90,7 @@ dependencies {
9290
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
9391

9492
// Navigation
95-
val navVersion = "2.7.5"
93+
val navVersion = "2.7.7"
9694
implementation("androidx.navigation:navigation-fragment-ktx:$navVersion")
9795
implementation("androidx.navigation:navigation-ui-ktx:$navVersion")
9896

@@ -107,11 +105,15 @@ dependencies {
107105

108106
// Worker
109107
implementation("androidx.work:work-runtime-ktx:2.9.0")
110-
implementation("androidx.hilt:hilt-work:1.1.0")
111-
kapt("androidx.hilt:hilt-compiler:1.1.0")
108+
implementation("androidx.hilt:hilt-work:1.2.0")
109+
kapt("androidx.hilt:hilt-compiler:1.2.0")
112110

113111
// Material chart
114-
implementation("app.priceguard:materialchart:0.2.1")
112+
implementation("app.priceguard:materialchart:0.2.2")
113+
114+
// In app update
115+
implementation("com.google.android.play:app-update:2.1.0")
116+
implementation("com.google.android.play:app-update-ktx:2.1.0")
115117
}
116118

117119
kapt {

โ€Žandroid/app/src/main/AndroidManifest.xml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@
2121
<meta-data
2222
android:name="com.google.firebase.messaging.default_notification_icon"
2323
android:resource="@drawable/ic_priceguard_notification" />
24-
25-
<activity
26-
android:name=".ui.additem.link.LinkHelperWebViewActivity"
27-
android:exported="false" />
2824
<activity
2925
android:name=".ui.splash.SplashScreenActivity"
3026
android:exported="true">
@@ -78,6 +74,15 @@
7874
<activity
7975
android:name="com.google.android.gms.oss.licenses.OssLicensesActivity"
8076
android:theme="@style/Theme.PriceGuard.WithActionBar" />
77+
<activity
78+
android:name=".ui.additem.link.LinkHelperWebViewActivity"
79+
android:exported="false" />
80+
<activity
81+
android:name=".ui.home.mypage.DeleteAccountActivity"
82+
android:exported="false" />
83+
<activity
84+
android:name=".ui.login.findpassword.FindPasswordActivity"
85+
android:exported="false" />
8186

8287
<service
8388
android:name=".service.PriceGuardFirebaseMessagingService"
@@ -91,7 +96,6 @@
9196
android:name="androidx.startup.InitializationProvider"
9297
android:authorities="${applicationId}.androidx-startup"
9398
tools:node="remove" />
94-
9599
</application>
96100

97101
</manifest>

โ€Žandroid/app/src/main/java/app/priceguard/data/datastore/TokenDataSource.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ package app.priceguard.data.datastore
22

33
interface TokenDataSource {
44
suspend fun saveTokens(accessToken: String, refreshToken: String)
5+
suspend fun saveEmailVerified(isVerified: Boolean)
56
suspend fun getAccessToken(): String?
67
suspend fun getRefreshToken(): String?
8+
suspend fun getIsEmailVerified(): Boolean?
79
suspend fun clearTokens()
810
}

โ€Žandroid/app/src/main/java/app/priceguard/data/datastore/TokenDataSourceImpl.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package app.priceguard.data.datastore
22

33
import androidx.datastore.core.DataStore
44
import androidx.datastore.preferences.core.Preferences
5+
import androidx.datastore.preferences.core.booleanPreferencesKey
56
import androidx.datastore.preferences.core.edit
67
import androidx.datastore.preferences.core.stringPreferencesKey
78
import app.priceguard.di.TokensQualifier
@@ -15,6 +16,7 @@ class TokenDataSourceImpl @Inject constructor(
1516

1617
private val accessTokenKey = stringPreferencesKey("access_token")
1718
private val refreshTokenKey = stringPreferencesKey("refresh_token")
19+
private val isEmailVerifiedKey = booleanPreferencesKey("is_email_verified")
1820

1921
override suspend fun saveTokens(accessToken: String, refreshToken: String) {
2022
dataStore.edit { preferences ->
@@ -23,6 +25,12 @@ class TokenDataSourceImpl @Inject constructor(
2325
}
2426
}
2527

28+
override suspend fun saveEmailVerified(isVerified: Boolean) {
29+
dataStore.edit { preferences ->
30+
preferences[isEmailVerifiedKey] = isVerified
31+
}
32+
}
33+
2634
override suspend fun getAccessToken(): String? {
2735
return dataStore.data.map { preferences ->
2836
preferences[accessTokenKey]
@@ -35,6 +43,12 @@ class TokenDataSourceImpl @Inject constructor(
3543
}.first()
3644
}
3745

46+
override suspend fun getIsEmailVerified(): Boolean? {
47+
return dataStore.data.map { preferences ->
48+
preferences[isEmailVerifiedKey]
49+
}.first()
50+
}
51+
3852
override suspend fun clearTokens() {
3953
dataStore.edit { preferences ->
4054
preferences.clear()

โ€Žandroid/app/src/main/java/app/priceguard/data/dto/add/ProductAddRequest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import kotlinx.serialization.Serializable
44

55
@Serializable
66
data class ProductAddRequest(
7+
val shop: String,
78
val productCode: String,
89
val targetPrice: Int
910
)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package app.priceguard.data.dto.deleteaccount
2+
3+
import kotlinx.serialization.Serializable
4+
5+
@Serializable
6+
data class DeleteAccountRequest(
7+
val email: String,
8+
val password: String
9+
)

0 commit comments

Comments
ย (0)