๐ 4๋จ๊ณ - GitHub(์ธ๊ธฐ ์ ์ฅ์) - #73
Conversation
- Preview interactiveMode์์ ์ค๋ต๋ฐ๊ฐ ๋ ธ์ถ๋๋๋ก ์์
BeokBeok
left a comment
There was a problem hiding this comment.
์ด์ ๋จ๊ณ ํผ๋๋ฐฑ๊ณผ Github(์ธ๊ธฐ ์ ์ฅ์) ๋ฏธ์
ํ์๋๋ผ ๊ณ ์ํ์
จ์ต๋๋ค. ๐
๊ณ ๋ฏผํด๋ณผ๋งํ ์๊ฒฌ๋ค์ ์ฝ๋งจํธ๋ก ์์ฑํ์์ผ๋, ์ถฉ๋ถํ ๊ณ ๋ฏผํด๋ณด์๊ณ ๋์ ํด๋ณด์ธ์. ๐ช
| operator fun invoke(stars: Int): Boolean { | ||
| return stars >= 50 | ||
| } |
There was a problem hiding this comment.
Star ๊ฐ์๊ฐ 50๊ฐ ์ด์์ธ์ง ํ๋จํ๋ ๋ก์ง์ด domain์ UseCase๋ก ๋ฃ๊ฒ๋์์ต๋๋ค. Hot์ ํ๋จํ๋ ๋ก์ง์ ์๋น์ค ์ ์ฑ ์ ๊ฒฐ์ ๋ ๊ฒ์ผ๋ก ๋น์ฆ๋์ค ๋ก์ง์ผ๋ก ํ๋จํ์ฌ ๋๋ฉ์ธ ๋ ์ด์ด์ ๋ฃ์์ต๋๋ค.
ํธํ๋์ด ์๊ฐํ์๋ ๋น์ฆ๋์ค ๋ก์ง๊ณผ UI ๋ก์ง์ ์ด๋ค ์ฐจ์ด์ ์ด ์๋ ๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค! ๐ค
๋ํ UseCase๋ ๋ฌด์์ด๋ผ๊ณ ์๊ฐํ์๋์ง๋ ๊ถ๊ธํฉ๋๋ค!
ํ์์(actor) ์
์ฅ์์ Hot ์ฌ๋ถ๋ฅผ ํ๋จํ ์ ์๋๊ฑด๊ฐ์? ๐ค
There was a problem hiding this comment.
ํธํ๋์ด ์๊ฐํ์๋ ๋น์ฆ๋์ค ๋ก์ง๊ณผ UI ๋ก์ง์ ์ด๋ค ์ฐจ์ด์ ์ด ์๋ ๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค! ๐ค
๋ํ UseCase๋ ๋ฌด์์ด๋ผ๊ณ ์๊ฐํ์๋์ง๋ ๊ถ๊ธํฉ๋๋ค!
๋น์ฆ๋์ค ๋ก์ง์ด๋ผ๋ ๊ฒ์ ๋๊ฐ ์๊ณ ์๋ค๊ฐ ํ ์คํธ๋ก ๊บผ๋ด์ด ์ ๋ฌํ๋ ค๋ ๋ง์ ์๊ฐ์ด ๋๋๋ฐ์, ๊ด๋ฒ์ํ๊ณ ๊ฒฝ๊ณ๊ฐ ์ ๋งคํด ๋ณด์ด๋ ๋น์ฆ๋์ค ๋ก์ง์ ๋ญ๋ผ ๋งํ๊ธฐ๊ฐ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค๋ง ์ํคํ ์ฒ ๊ด์ ์์ ์ค๋ช ํด ๋ณด์๋ฉด ์ ๊ฐ ์๊ฐํ๋ ๋น์ฆ๋์ค ๋ก์ง์ด๋, UI ํน์ ๋ฐ์ดํฐ ๋ ์ด์ด์ ์๊ดํ์ง ์๊ณ ์ฑ์ ์๊ตฌ์ฌํญ์ ๋ง์กฑ์ํค๊ธฐ ์ํ ๋ก์ง์ ๋๋ค. ๋๋ฌธ์ ๋ค๋ฅธ UI ๋ ์ด์ด๋ ๋ฐ์ดํฐ ๋ ์ด์ด๊ฐ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๊ต์ฒด๋์ด๋ ์ ์ง๋์ด์ผ ํ๋ ๋ก์ง์ ๋๋ค.
์ ์ฆ์ผ์ด์ค๋ ์ด๋ฌํ ๋ก์ง๋ค์ ๋ด๊ณ ์๋ ํ๋์ ๋จ์๋ผ๊ณ ์๊ฐํฉ๋๋ค.
UI๋ก์ง์ ๋จ์ํ๊ฒ ๋ง ๊ทธ๋๋ก UI์ ๋ํด์๋ง ๊ด์ฌ์ ๊ฐ๊ณ ์๋ ๋ก์ง์ด๋ผ๊ณ ์๊ฐํ๊ณ ์์ต๋๋ค.
ํ์์(actor) ์ ์ฅ์์ Hot ์ฌ๋ถ๋ฅผ ํ๋จํ ์ ์๋๊ฑด๊ฐ์? ๐ค
์ฌ๊ธฐ์ ๋ง์ํ์๋ ํ์์๊ฐ UI๋ผ๊ณ ์๊ฐ์ด ๋๋๋ฐ์, Hot ์ฌ๋ถ๋ฅผ ํ๋จํ ์ ์๋์ง ์๋์ง๋ UI์ ๋๋ฉ์ธ์ด ๋๋ ์ ธ ์๋ ์ํคํ ์ณ์์๋ UI๊ฐ Hot ์ฌ๋ถ๋ฅผ ํ๋จํ๋ ๋ก์ง์ ๊ฐ์ง๋ฉด ์๋๋ค๊ณ ์๊ฐ์ด ๋ญ๋๋ค.
| } | ||
| } | ||
|
|
||
| @SuppressLint("CoroutineCreationDuringComposition") |
There was a problem hiding this comment.
CoroutineCreationDuringComposition๊ฐ ์ ๋ฐ์ํ๋ ๊ฑด๊ฐ์?
CoroutineCreationDuringComposition์ด ๋ฐ์ํ์ง ์๋๋ก ๊ฐ์ ํด๋ณด๋ฉด ์ด๋จ๊น์?
There was a problem hiding this comment.
Composable์ด ๋ฆฌ์ปดํฌ์ง์
๋ ๋ ๋ง๋ค ์ฝ๋ฃจํด์ด ์คํ๋ ์ ์์์ ๋ํ๋ด๋ ๊ฒฝ๊ณ ๊ฐ์ต๋๋ค ... !
์์ ํ๊ฒ ์ต๋๋ค.
| val fullName: String, | ||
| val description: String, | ||
| val stars: Int, | ||
| val isHot: Boolean, |
There was a problem hiding this comment.
Star ๊ฐ์๊ฐ 50๊ฐ ์ด์์ธ์ง ํ๋จํ๋ ๋ก์ง์ด domain์ UseCase๋ก ๋ฃ๊ฒ๋์์ต๋๋ค. Hot์ ํ๋จํ๋ ๋ก์ง์ ์๋น์ค ์ ์ฑ ์ ๊ฒฐ์ ๋ ๊ฒ์ผ๋ก ๋น์ฆ๋์ค ๋ก์ง์ผ๋ก ํ๋จํ์ฌ ๋๋ฉ์ธ ๋ ์ด์ด์ ๋ฃ์์ต๋๋ค.
isHot์ ์ํด RepositoryUiModel์ ๋ง๋ค์ด์ฃผ์ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค.
ํธํ๋ ๋ง์์ ์ํ๋ฉด, Star ๊ฐ์๋ฅผ ํ๋จํ๋ ๋ก์ง์ domain์ ์์ด์ผํ๋ ๊ฒ์ผ๋ก ์ดํด๋ฅผ ํ๋๋ฐ์.
๊ทธ๋ ๋ค๋ฉด isHot์ ๋ํ ์ ๋ณด๋ RepositoryUiModel์ด ์๋ Repository์ ์์ด์ผ ํ์ง ์์๊น์? ๐ค
There was a problem hiding this comment.
isHot์ ๋ถ๋ฌ์ค๋ ๋ก์ง์ UI์ ์์ด์ผ ํ๋๊ฑฐ ์๋๊ฐ? ๋ผ๋ ์๊ฐ์ด ๋ค์ด์ ViewModel์ ์์ฑ ํ์๋๋ฐ์,
๋ฆฌ๋ทฐ์ด๋ ๋ง์์ ๋ณด๊ณ ๋ค์ ์๊ฐ ํด๋ณด๋ UI ๋ ์ด์ด์์ isHot์ ๋ฐ๋ก ํธ์ถํ๋ ๊ฒ ์์ฒด๊ฐ ๋น์ฆ๋์ค ๋ก์ง์ ํฌํจํ๊ณ ์๋ค๋ ์๊ฐ์ด ๋๋ค์ ...
Repository์ isHot์ ๋ค๊ณ ๊ฐ์ด ์ค๋ ๊ฒ ๋ง๋ ๊ฒ ๊ฐ์ต๋๋ค...!
๊ฐ์
์์ ๋ด์ฉ
๋ฆฌ๋ทฐ์ด๋์๊ฒ
์๋ ํ์ธ์ ๋ฆฌ๋ทฐ์ด๋.
๋ฆฌ๋ทฐ ์ ๋ถํ๋๋ฆฝ๋๋ค!