From f818ce8200c8a534d8c10dbe9656318c7d9a233e Mon Sep 17 00:00:00 2001 From: Taewan Park Date: Fri, 15 Dec 2023 01:46:54 +0900 Subject: [PATCH] v1.0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ๐Ÿš€ Feature Updates - ์ฐจํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ๐Ÿ”ง Bug Fixes - ํšŒ์›๊ฐ€์ž… ์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ์— ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ์—†์–ด๋„ ํšŒ์›๊ฐ€์ž… ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜ ์ˆ˜์ • - ๋งํฌ๊ฐ€ ๋น„์–ด์žˆ์„ ์‹œ ๋“ฑ๋ก ๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™”๋˜๋„๋ก ์ˆ˜์ • Co-Authored-By: EunhoKang Co-Authored-By: ootr47 <83055885+ootr47@users.noreply.github.com> Co-Authored-By: ์†๋ฌธ๊ธฐ <39684860+Muungi@users.noreply.github.com> Co-Authored-By: ByeongIk Choi --- README.md | 91 ++++++++++++++++--- android/app/build.gradle.kts | 6 +- .../additem/link/RegisterItemLinkViewModel.kt | 2 +- .../app/priceguard/ui/login/LoginViewModel.kt | 2 +- .../priceguard/ui/signup/SignupViewModel.kt | 2 +- android/release_notes.txt | 10 +- 6 files changed, 89 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 8196f9c..551c683 100644 --- a/README.md +++ b/README.md @@ -18,28 +18,93 @@ PriceGuard๋Š” ๊ตญ๋‚ด ์ƒ๊ฑฐ๋ž˜ ์‚ฌ์ดํŠธ๋“ค์˜ ์ƒํ’ˆ ๊ฐ€๊ฒฉ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํŒ€์€ ์ด ํ”„๋กœ์ ํŠธ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ์ˆ ์  ๋„์ „ ๊ณผ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. -1. ๊ทธ๋ž˜ํ”„ ์ž‘์„ฑ์„ ์œ„ํ•œ ๋Œ€์šฉ๋Ÿ‰์˜ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•˜๊ณ  ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ์•ˆํ•œ๋‹ค. -2. ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ์งง์€ ์ฃผ๊ธฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•ด์•ผํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ํšจ์œจ์ ์ธ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๋Š”๋‹ค. -3. ๊ฐœ๋ฐœํ•œ ๊ธฐ๋Šฅ์„ ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์— ์“ธ ์ˆ˜ ์žˆ๋„๋ก ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌํ™”ํ•œ๋‹ค. +1. ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์ด๋ฅผ ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์— ์“ธ ์ˆ˜ ์žˆ๋„๋ก ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌํ™”ํ•œ๋‹ค. +2. ๋‹ค์–‘ํ•œ ์•ˆ๋“œ๋กœ์ด๋“œ ํ…Œ๋งˆ์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์„ ๊ฐœ๋ฐœํ•œ๋‹ค. +3. ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ ๋ฐ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•œ ํšจ์œจ์ ์ธ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๋Š”๋‹ค. ์ด์™€ ๊ฐ™์€ ๊ธฐ์ˆ ์  ๋„์ „์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์€ ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1. [๊ทธ๋ž˜ํ”„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ตฌํ˜„](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/%EA%B7%B8%EB%9E%98%ED%94%84-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EB%A1%9D) -2. [๋ฐ์ดํ„ฐ ์บ์‹ฑ](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/Cache-%EC%A0%81%EC%9A%A9%EA%B8%B0) -3. [DB ์ฟผ๋ฆฌ ๊ฐœ์„ ](https://velog.io/@kdogs/MongoDB%EC%97%90%EC%84%9C-%EC%BF%BC%EB%A6%AC-%EC%84%B1%EB%8A%A5-%EB%B6%84%EC%84%9D%ED%95%98%EA%B8%B0) +2. [์•ˆ๋“œ๋กœ์ด๋“œ ํ…Œ๋งˆ ์ ์šฉ](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%ED%85%8C%EB%A7%88-%EC%A0%81%EC%9A%A9) +3. [๋ฐ์ดํ„ฐ ์บ์‹ฑ](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/Cache-%EC%A0%81%EC%9A%A9%EA%B8%B0) + +๊ทธ๋ž˜ํ”„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ตฌํ˜„ ๋ฐ ๋ฐฐํฌ ์ €์žฅ์†Œ๋Š” ์—ฌ๊ธฐ์„œ ํ™•์ธํ•ด์ฃผ์„ธ์š”. + + + + + + + + -[๊ทธ๋ž˜ํ”„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ตฌํ˜„ ๋ฐ ๋ฐฐํฌ ์ €์žฅ์†Œ](https://github.com/Taewan-P/material-android-chart)๋Š” ์—ฌ๊ธฐ์„œ ํ™•์ธํ•ด์ฃผ์„ธ์š”. ## โ“ ๋ฌธ์ œ ํ•ด๊ฒฐ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ๊ณผ์ •์—์„œ ๋งŒ๋‚œ ์ด์Šˆ๋“ค๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -1. [์•ˆ๋“œ๋กœ์ด๋“œ ํ…Œ๋งˆ ์ ์šฉ](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%ED%85%8C%EB%A7%88-%EC%A0%81%EC%9A%A9) -2. [๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/TroubleShooting-%E2%80%90-Memory-Leak) -3. [JWT ์ธ์ฆ ์ฒ˜๋ฆฌ](https://velog.io/@mks1103/JWT%EB%A1%9C-%EC%9D%B8%EC%A6%9D-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0) -4. [HTTPS](https://velog.io/@kdogs/HTTPS-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0feat.-Lets-Encrypt) -5. [Navigation ๋ฐฑ์Šคํƒ ์˜ค๋ฅ˜](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/TroubleShooting-%E2%80%90-Navigation-%EB%B0%B1%EC%8A%A4%ED%83%9D-%EC%98%A4%EB%A5%98) -6. [ํ…Œ๋งˆ ๋ณ€๊ฒฝ](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/ํ…Œ๋งˆ-๋ณ€๊ฒฝ-(compose-vs-xml)) +**DB ์ฟผ๋ฆฌ ๊ฐœ์„ ** +> ๊ฐ€๊ฒฉ ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋Š” DB์—์„œ ์ž์ฃผ ์กฐํšŒ๋˜๋ฉฐ, 1๊ฐœ์›”, 3๊ฐœ์›” ๋‹จ์œ„๋กœ ๋„“์€ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์–‘์ด ๋งŽ์Šต๋‹ˆ๋‹ค. +> +> ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์—์„œ ๋ฐ์ดํ„ฐ ์กฐํšŒ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋…ธ๋ ฅ์„ ํ–ˆ๋Š”์ง€ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. +> +> [๋ฐ”๋กœ๊ฐ€๊ธฐ](https://velog.io/@kdogs/MongoDB%EC%97%90%EC%84%9C-%EC%BF%BC%EB%A6%AC-%EC%84%B1%EB%8A%A5-%EB%B6%84%EC%84%9D%ED%95%98%EA%B8%B0) + +**๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜** +> ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ฐœ๊ฒฌ๋œ ์—ฌ๋Ÿฌ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์ƒํ™ฉ์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. +> +> ์–ด๋–ป๊ฒŒ ๋ฐœ๊ฒฌํ–ˆ๋Š”์ง€, ์™œ ๋ฐœ์ƒํ•˜๋Š”์ง€, ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +> +> [๋ฐ”๋กœ๊ฐ€๊ธฐ](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/TroubleShooting-%E2%80%90-Memory-Leak) + +**RecyclerView ๊ฐฑ์‹  ์˜ค๋ฅ˜** +> ์•Œ๋ฆผ ํ† ๊ธ€์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ณ , ์Šคํฌ๋กค์„ ๋‚ด๋ ธ๋‹ค๊ฐ€ ๋‹ค์‹œ ๋Œ์•„์˜ค๋ฉด ํ•ด๋‹น ํ† ๊ธ€์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ ์ด์ „์˜ ๊ฐ’์œผ๋กœ ๋˜๋Œ์•„๊ฐ€๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. +> +> ์–ด๋–ค ๋ถ€๋ถ„์ด ์ž˜๋ชป๋˜์—ˆ๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. +> +> [๋ฐ”๋กœ๊ฐ€๊ธฐ](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/Troubleshooting-%E2%80%90-RecyclerView%EC%9D%98-View%EA%B0%80-%EC%8A%A4%ED%81%AC%EB%A1%A4-%EB%B0%96%EC%9C%BC%EB%A1%9C-%EB%B2%97%EC%96%B4%EB%82%98%EB%A9%B4-%EA%B0%92%EC%9D%B4-%EB%B0%94%EB%80%8C%EB%8A%94-%ED%98%84%EC%83%81) + +**JWT ์ธ์ฆ ์ฒ˜๋ฆฌ** +> ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ๊ตฌํ˜„ํ–ˆ๋˜ ๊ณผ์ •์— ๋Œ€ํ•ด ์ ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. +> +> JWT ์ธ์ฆ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋ฉด์„œ ํ–ˆ๋˜ ๊ณ ๋ฏผ๊ณผ ์„ ํƒ ์ด์œ ๋ฅผ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. +> +> [๋ฐ”๋กœ๊ฐ€๊ธฐ](https://velog.io/@mks1103/JWT%EB%A1%9C-%EC%9D%B8%EC%A6%9D-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0) + +**HTTPS** +> app ๋ฃจํŠธ ๋„๋ฉ”์ธ์€ ๋ชจ๋“  ์—ฐ๊ฒฐ์— HTTPS๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. +> +> Let's Encrypt๋ฅผ ํ™œ์šฉํ•ด ์–ด๋–ป๊ฒŒ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์— HTTPS๋ฅผ ์ ์šฉํ–ˆ๋Š”์ง€ ๊ธฐ์ˆ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. +> +> [๋ฐ”๋กœ๊ฐ€๊ธฐ](https://velog.io/@kdogs/HTTPS-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0feat.-Lets-Encrypt) + +**DeepLink ์ง€์› ๋ฐ DeepLink์šฉ ์›นํŽ˜์ด์ง€ ๊ตฌํ˜„** +> ์•ฑ์ด ๊น”๋ฆฐ ๋‘ ์‚ฌ๋žŒ์ด ์„œ๋กœ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ํ…์ŠคํŠธ๋กœ ๊ณต์œ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ๋ ๊นŒ์š”? +> +> Deeplink ์™€ Deeplink ์ด๋™์šฉ ์›นํŽ˜์ด์ง€์˜ ๊ตฌํ˜„ ๊ณผ์ •์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. +> +> [๋ฐ”๋กœ๊ฐ€๊ธฐ](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/Deeplink-%EC%A7%80%EC%9B%90-%EB%B0%8F-Deeplink-%EC%9D%B4%EB%8F%99%EC%9A%A9-%EC%9B%B9%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0) + +**Navigation ๋ฐฑ์Šคํƒ ์˜ค๋ฅ˜** +> Jetpack Navigate์—์„œ ๋ฐœ์ƒํ–ˆ๋˜ ์—๋Ÿฌ์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. +> +> ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ์—๋Ÿฌ์˜ ์›์ธ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•๋„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. +> +> [๋ฐ”๋กœ๊ฐ€๊ธฐ](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/TroubleShooting-%E2%80%90-Navigation-%EB%B0%B1%EC%8A%A4%ED%83%9D-%EC%98%A4%EB%A5%98) + +**ํ…Œ๋งˆ ๋ณ€๊ฒฝ** +> ํ…Œ๋งˆ ๋ณ€๊ฒฝ ๋‹ค์ด์–ผ๋กœ๊ทธ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ฐธ๊ณ ํ–ˆ๋˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Now in Android์ž…๋‹ˆ๋‹ค. +> +> ํ•ด๋‹น ๊ธฐ๋Šฅ๊ณผ ๋˜‘๊ฐ™์€ ์ธํ„ฐ๋ ‰์…˜์„ ๊ตฌํ˜„ํ•˜๋ ค ํ–ˆ์œผ๋‚˜ ์ž˜ ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ์— ๋Œ€ํ•ด ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค. +> +> [ํ…Œ๋งˆ ๋ณ€๊ฒฝ](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/ํ…Œ๋งˆ-๋ณ€๊ฒฝ-(compose-vs-xml)) + +**NestJS์—์„œ Redis ์‚ฌ์šฉํ•˜๊ธฐ** +>์บ์‹ฑ์„ ์œ„ํ•ด Redis๋ฅผ NestJS์— ์ ์šฉํ•˜๋ฉฐ ๊ฒช์€ ์ด์Šˆ๋“ค์— ๋Œ€ํ•ด ์ ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. +> +>Redis๋ฅผ ์ ์šฉํ•˜๋ฉฐ ๋ชจ๋“ˆ์„ 2๋ฒˆ์ด๋‚˜ ๋ณ€๊ฒฝํ•˜๊ณ , ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋˜ ๊ณผ์ •์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. +> +>[๋ฐ”๋กœ๊ฐ€๊ธฐ](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/NestJS%EC%97%90%EC%84%9C-Redis-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0) ## ๐Ÿ“š ๊ธฐ์ˆ  ์Šคํƒ @@ -117,7 +182,7 @@ PriceGuard๋Š” ๊ตญ๋‚ด ์ƒ๊ฑฐ๋ž˜ ์‚ฌ์ดํŠธ๋“ค์˜ ์ƒํ’ˆ ๊ฐ€๊ฒฉ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ## ๐Ÿ›๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ -![์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜](https://github.com/boostcampwm2023/and09-PriceGuard/assets/39708676/f7a943cd-5226-43dd-9130-9928f27067c4) +![system_architecture](https://github.com/boostcampwm2023/and09-PriceGuard/assets/39708676/21b9516b-3c01-49bf-8805-824b92c94500) ## ๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ ํŒ€์› ์†Œ๊ฐœ diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 6ce775a..0e0f3c6 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -19,8 +19,8 @@ android { applicationId = "app.priceguard" minSdk = 29 targetSdk = 34 - versionCode = 7 - versionName = "1.0.0" + versionCode = 8 + versionName = "1.0.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } @@ -111,7 +111,7 @@ dependencies { kapt("androidx.hilt:hilt-compiler:1.1.0") // Material chart - implementation("app.priceguard:materialchart:0.2.0") + implementation("app.priceguard:materialchart:0.2.1") } kapt { diff --git a/android/app/src/main/java/app/priceguard/ui/additem/link/RegisterItemLinkViewModel.kt b/android/app/src/main/java/app/priceguard/ui/additem/link/RegisterItemLinkViewModel.kt index 15c4659..ebfec19 100644 --- a/android/app/src/main/java/app/priceguard/ui/additem/link/RegisterItemLinkViewModel.kt +++ b/android/app/src/main/java/app/priceguard/ui/additem/link/RegisterItemLinkViewModel.kt @@ -69,6 +69,6 @@ class RegisterItemLinkViewModel } fun updateLink(link: String) { - _state.value = state.value.copy(isLinkError = false, isNextReady = true, link = link) + _state.value = state.value.copy(isLinkError = false, isNextReady = link.isNotEmpty(), link = link) } } diff --git a/android/app/src/main/java/app/priceguard/ui/login/LoginViewModel.kt b/android/app/src/main/java/app/priceguard/ui/login/LoginViewModel.kt index 737f9d5..2bc1b53 100644 --- a/android/app/src/main/java/app/priceguard/ui/login/LoginViewModel.kt +++ b/android/app/src/main/java/app/priceguard/ui/login/LoginViewModel.kt @@ -43,7 +43,7 @@ class LoginViewModel @Inject constructor( private val emailPattern = """^[\w.+-]+@((?!-)[A-Za-z0-9-]{1,63}(?|\-\[\]\\/]*\d)(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*[a-z])(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*[A-Z])(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/])[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]{8,16}$""".toRegex() + """^(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*\d)(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*[a-z])(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*[A-Z])(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*[!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/])[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]{8,16}$""".toRegex() private var _event = MutableSharedFlow() val event: SharedFlow = _event.asSharedFlow() diff --git a/android/app/src/main/java/app/priceguard/ui/signup/SignupViewModel.kt b/android/app/src/main/java/app/priceguard/ui/signup/SignupViewModel.kt index 1ed9b68..987b3be 100644 --- a/android/app/src/main/java/app/priceguard/ui/signup/SignupViewModel.kt +++ b/android/app/src/main/java/app/priceguard/ui/signup/SignupViewModel.kt @@ -50,7 +50,7 @@ class SignupViewModel @Inject constructor( private val emailPattern = """^[\w.+-]+@((?!-)[A-Za-z0-9-]{1,63}(?|\-\[\]\\/]*\d)(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*[a-z])(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*[A-Z])(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/])[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]{8,16}$""".toRegex() + """^(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*\d)(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*[a-z])(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*[A-Z])(?=[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]*[!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/])[A-Za-z\d!@#$%^&*()_+={};:'"~`,.?<>|\-\[\]\\/]{8,16}$""".toRegex() private val _state: MutableStateFlow = MutableStateFlow(SignupUIState()) val state: StateFlow = _state.asStateFlow() diff --git a/android/release_notes.txt b/android/release_notes.txt index 2e6a1f3..3910c5c 100644 --- a/android/release_notes.txt +++ b/android/release_notes.txt @@ -1,12 +1,12 @@ -December 14, 2023 -v1.0.0 +December 15, 2023 +v1.0.1 ๐Ÿš€ Feature Updates -- ์•ฑ์ด Foreground์— ์žˆ์–ด๋„ ์•Œ๋ฆผ์ด ์˜ค๊ฒŒ๋” ์ง€์› +- ์ฐจํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ๐Ÿ”ง Bug Fixes -- ๋ชฉํ‘œ ๊ฐ€๊ฒฉ ์„ค์ • ๋ฒ”์œ„๊ฐ€ 0~999999999 ์‚ฌ์ด์—์„œ ์„ค์ •๋˜๋„๋ก ์ˆ˜์ • -- ์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€ ์ œ๋ชฉ ์ตœ๋Œ€ ์ค„ ์ˆ˜๋ฅผ 3์ค„๋กœ ๋ณ€๊ฒฝ +- ํšŒ์›๊ฐ€์ž… ์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ์— ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ์—†์–ด๋„ ํšŒ์›๊ฐ€์ž… ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜ ์ˆ˜์ • +- ๋งํฌ๊ฐ€ ๋น„์–ด์žˆ์„ ์‹œ ๋“ฑ๋ก ๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™”๋˜๋„๋ก ์ˆ˜์ •