๊พธ์ค€ํ•จ์ด ์ง„๋ฆฌ๋‹ค!!

์–ด์ œ๋ณด๋‹ค ๋ฐœ์ „ํ•œ ์˜ค๋Š˜์ด ๋˜๊ณ ํ”ˆ ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป ์˜ ๋ธ”๋กœ๊ทธ

Android 33

[Kotlin][Android] Base RecyclerView Adapter ๋งŒ๋“ค๊ธฐ (feat. Android TV List ๊ตฌํ˜„ํ•˜๊ธฐ)

์•ˆ๋…•ํ•˜์„ธ์š” ๋„ˆ๋ฌด ์˜ค๋žœ๋งŒ์— ํฌ์ŠคํŒ…์„ ์˜ฌ๋ฆฌ๋„ค์š”!! ํ•œ๋™์•ˆ ํšŒ์‚ฌ์—์„œ ๋ฆฌํŒฉํ† ๋ง ๋•Œ๋ฌธ์— ๋„ˆ๋ฌด ์ผ์ด ๋ฐ”๋นด๋„ค์š”.. ์ด์ œ ๋‹ค์‹œ ๊พธ์ค€ํžˆ ํฌ์ŠคํŒ… ์˜ฌ๋ ค๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ . . ์ œ๊ฐ€ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ํŠน์„ฑ์ƒ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ์š”! ๊ฒฐ๊ตญ, ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ๋“ค์— ๋™์ผํ•œ ๋™์ž‘์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ๊ณ , ๋งค๋ฒˆ ๋™์ž‘๋“ค์„ ์ถ”๊ฐ€ํ•˜๋‹ค ๋ณด๋‹ˆ ๋ณด์ผ๋Ÿฌ ํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์ด ๋ฐœ์ƒํ•˜์—ฌ ๊ฐ Adapter์˜ BaseClass๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ๊ด€๋ จํ•ด์„œ ๊ณต์œ ํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! 1. BaseViewHolder ๋งŒ๋“ค๊ธฐ abstract class BaseViewHolder(binding: VB) : RecyclerView.ViewHolder(binding.root) { abstract val binding: VB a..

Android/Kotlin 2024.01.12

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ ExoPlayer2์˜ Deprecated์™€ Media3์— ๋Œ€ํ•ด์„œ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ExoPlayer2๊ฐ€ Deprecated ๋œ ๊ฒƒ๊ณผ ๊ทธ๋กœ ์ธํ•ด ์—…๋ฌด์ค‘์— ๊ฒช์—ˆ๋˜ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ผ์ƒ(?)๋“ค์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ์–ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜Ž 1. ํฌ์ŠคํŒ… ํ•˜๊ฒŒ๋œ ์ด์œ  ๐Ÿค” ์ตœ๊ทผ ํšŒ์˜์—์„œ ExoPlayer์˜ ๋ฒ„์ „์ด ๋„ˆ๋ฌด ๋‚ฎ๋‹ค๋Š” ์–˜๊ธฐ๋ฅผ ์‹œ์ž‘์œผ๋กœ ํ”„๋กœ์ ํŠธ์˜ ExoPlayer์˜ ๋ฒ„์ „์„ ๋†’์ด์ž๋Š” ์ œ์•ˆ์ด ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (์ œ์ผ ๋‚ฎ์€ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋˜ ํ”„๋กœ์ ํŠธ๋Š” 1.5.5๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ œ๊ฐ€ ๋‹ด๋‹นํ•œ ํ”„๋กœ์ ํŠธ๋Š” 2.9.3์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค..) ์ƒ๋Œ€์ ์œผ๋กœ ์ ์šฉํ•˜๊ธฐ ์‰ฌ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋˜ ์ €๋Š” ํ•ด๋‹น ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋จผ์ € ๊ฒ€ํ† ๋ฅผ ํ•ด๋ณด์•˜๊ณ  ์ด๋ ‡๊ฒŒ ํฌ์ŠคํŒ…์„ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 2. ExoPlayer2์˜ Deprecated ํ•ด๋‹น ์‚ฌ์‹ค์— ๋Œ€ํ•ด์„œ ์•Œ๊ฒŒ ๋œ ๊ฒƒ์€ build.gradle์—์„œ ExoPlayer๋ฅผ ์ตœ์‹ ๋ฒ„์ „..

Android 2023.07.19

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ ENUM์— ๋Œ€ํ•ด์„œ(IntDef , StringDef์˜ ์‚ฌ์šฉ๋ฒ•)

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ํšŒ์‚ฌ์—์„œ ์—…๋ฌด๋ฅผ ํ•˜๋˜ ์ค‘ enum class ์‚ฌ์šฉ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์œผ๋ฉฐ ์ƒˆ๋กญ๊ฒŒ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋œ @IntDef , @StringDef์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ํฌ์ŠคํŒ… ํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜Ž Kotlin ๋ฐ Java์—์„œ ๊ณ ์ •๋œ ๊ฐ’์„ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ๋กœ ์ƒ์ˆ˜๋ฅผ ์ง€์ •ํ•˜์—ฌ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ƒ์ˆ˜๋“ค์„ ํƒ€์ž…์œผ๋กœ ๋ฌถ์–ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„๋•Œ๋Š” enum class๋ฅผ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ด๋“ค ์žˆ์—ˆ์„ ๊ฒ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Android์—์„œ enum class๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์•ฑ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๊ณ  ํผํฌ๋จผ์Šค์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด ์‚ฌ์šฉ์„ ์ง€์–‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, TV๋‚˜ AVN๊ฐ™์€ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€์ง€๋Š” ๊ธฐ๊ธฐ์—์„œ๋Š” ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! (์ฐธ๊ณ ์ž๋ฃŒ๋Š” ์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ํ™•์ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.) Android Perfo..

Android/Kotlin 2023.07.10

[Kotlin][Android] SharedFlow์™€ StateFlow ํ™œ์šฉํ•˜๊ธฐ (feat. UIState ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํ‘œ์‹œํ•˜๊ธฐ)

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์ด์ „ ํฌ์ŠคํŒ…์—์„œ LiveData๋ฅผ Coroutine Flow๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์•˜๋Š”๋ฐ์š” ๊ด€๋ จ ํฌ์ŠคํŒ…์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š” :) [Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ Coroutine Flow ์ ์šฉํ•˜๊ธฐ (2) ( LiveData๋ฅผ Flow๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ : LiveData ์™€ Flow ๋น„๊ต ์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ €๋ฒˆ ํฌ์ŠคํŒ…์— ์ด์–ด LiveData๋ฅผ Flow๋กœ ์ด์ „ํ•˜๋Š” ๊ณผ์ •์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, LiveData์™€ Flow์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ๋„ ํ•จ๊ป˜ ๋‹ค๋ค„๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค ๐Ÿ˜ƒ ์ด์ „ ํฌ์ŠคํŒ…์€ ์•„ devyo-111commit.tistory.com ์˜ค๋Š˜์€ SharedFlow์™€ StateFlow๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ™”๋ฉด์„ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š”์ง€ UIState๋กœ ๊ด€๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ..

Android/Kotlin 2023.07.05

[Java][Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ ์ž๋ฐ”์™€ ์ฝ”ํ‹€๋ฆฐ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ - ์•ˆ๋“œ๋กœ์ด๋“œ Legacy ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜ ํ•˜๊ธฐ (2)

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ €๋ฒˆ ํฌ์ŠคํŒ…์— ์ด์–ด์„œ Legacy ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜Ž ์˜ค๋Š˜ ํฌ์ŠคํŒ…ํ•  ๋‚ด์šฉ์€ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”ํ‹€๋ฆฐ๊ณผ ์ž๋ฐ”๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ์ด์ „ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค! [Java][Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ ์ž๋ฐ”์™€ ์ฝ”ํ‹€๋ฆฐ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ - ์•ˆ๋“œ๋กœ์ด๋“œ Legacy ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜ ํ•˜ ์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ๊ฑฐ์˜ ํ•œ ๋‹ฌ ๋งŒ์— ํฌ์ŠคํŒ…์œผ๋กœ ์ฐพ์•„๋ต™๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋“ค์„ ๊ฒฝํ—˜ํ•˜๋‹ค ๋ณด๋ฉด ์ž๋ฐ”๋กœ ๋˜์–ด์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๋“ค์„ ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๋ฉด์„œ ์ฝ”ํ‹€๋ฆฐ์„ devyo-111commit.tistory.com Java ํŒŒ์ผ Kotlin์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์›ํ•˜๋Š” ํŒŒ์ผ์„ 'Con..

Android 2023.05.30

[Java][Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ ์ž๋ฐ”์™€ ์ฝ”ํ‹€๋ฆฐ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ - ์•ˆ๋“œ๋กœ์ด๋“œ Legacy ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜ ํ•˜๊ธฐ (1)

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ๊ฑฐ์˜ ํ•œ ๋‹ฌ ๋งŒ์— ํฌ์ŠคํŒ…์œผ๋กœ ์ฐพ์•„๋ต™๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋“ค์„ ๊ฒฝํ—˜ํ•˜๋‹ค ๋ณด๋ฉด ์ž๋ฐ”๋กœ ๋˜์–ด์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๋“ค์„ ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๋ฉด์„œ ์ฝ”ํ‹€๋ฆฐ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋”๋Ÿฌ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด๋Ÿฐ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋‚ด์šฉ๋“ค์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ์ด 2ํŽธ์œผ๋กœ ๊ธฐํš์ด ๋  ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ 1ํŽธ(๋ณธ ํฌ์ŠคํŒ…)์€ ์ž๋ฐ”์™€ ์ฝ”ํ‹€๋ฆฐ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• 2ํŽธ์€ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ… ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๋Ÿผ ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด๋ณด๋„๋ก ํ• ๊นŒ์š”? ๐Ÿ˜Ž 1. ์„ค์ • ์ž๋ฐ” ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ์—์„œ ์ฝ”ํ‹€๋ฆฐ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์œ„ ์ฝ”๋“œ์™€ ๊ฐ™์ด build.gradle์„ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค. // Project gradle plugins { ... // ์ƒ๋žต id 'org.jetbrai..

Android 2023.05.19

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ Coroutine Flow ์ ์šฉํ•˜๊ธฐ (2) ( LiveData๋ฅผ Flow๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ : LiveData ์™€ Flow ๋น„๊ตํ•˜๊ธฐ )

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ €๋ฒˆ ํฌ์ŠคํŒ…์— ์ด์–ด LiveData๋ฅผ Flow๋กœ ์ด์ „ํ•˜๋Š” ๊ณผ์ •์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, LiveData์™€ Flow์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ๋„ ํ•จ๊ป˜ ๋‹ค๋ค„๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค ๐Ÿ˜ƒ ์ด์ „ ํฌ์ŠคํŒ…์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค. ๐Ÿ™ [Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ Coroutine Flow ์ ์šฉํ•˜๊ธฐ (1) (๋„คํŠธ์›Œํฌ ํ†ต์‹  Flow๋กœ ์ด์ „ํ•˜๊ธฐ) ์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์•ˆ๋“œ๋กœ์ด๋“œ MVVMํŒจํ„ด์—์„œ Flow๋ฅผ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๋Š”์ง€๋ฅผ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜Ž Flow์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ํฌ์ŠคํŒ…์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค ๐Ÿ™ [Kotlin] ์ฝ”ํ‹€๋ฆฐ Coroutine์— ๋Œ€ํ•˜์—ฌ (3) - devyo-111commit.tistory.com LiveData๋ฅผ Flow๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ์— ์•ž์„œ ๋‘˜์˜ ์ฐจ์ด์ ๊ณผ ์™œ Flow..

Android/Kotlin 2023.03.23

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ Coroutine Flow ์ ์šฉํ•˜๊ธฐ (1) (๋„คํŠธ์›Œํฌ ํ†ต์‹  Flow๋กœ ์ด์ „ํ•˜๊ธฐ)

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์•ˆ๋“œ๋กœ์ด๋“œ MVVMํŒจํ„ด์—์„œ Flow๋ฅผ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๋Š”์ง€๋ฅผ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜Ž Flow์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ํฌ์ŠคํŒ…์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค ๐Ÿ™ [Kotlin] ์ฝ”ํ‹€๋ฆฐ Coroutine์— ๋Œ€ํ•˜์—ฌ (3) - Coroutine Flow(ํ”Œ๋กœ์šฐ) ์•ˆ๋…•ํ•˜์„ธ์š”๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ฝ”๋ฃจํ‹ด ๊ด€๋ จ ๋งˆ์ง€๋ง‰ ํฌ์ŠคํŒ…์œผ๋กœ ์ฝ”๋ฃจํ‹ด Flow์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. 1. Coroutine Flow๋ž€? Flow๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐ’์„ ๋‚ด๋ณด๋‚ด๊ณ  ์ •์ƒ์ ์œผ๋กœ ๋˜๋Š” ์˜ˆ์™ธ๋กœ ์™„๋ฃŒ๋˜ devyo-111commit.tistory.com ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด์ „ Clean Architecture์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์„ ํ•  ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ ์˜ˆ์ œ๋ฅผ Flow๋กœ ์ด์ „ํ•˜๋ฉฐ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์˜ˆ์ œ์˜ ์ „์ฒด ์ฝ”๋“œ ๋ฐ ์„ค๋ช…์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ..

Android/Kotlin 2023.03.22

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ Clean Architecture์— ๋Œ€ํ•ด์„œ (2) - ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ง€๋‚œ ํฌ์ŠคํŒ…์— ์ด์–ด ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ์—์„œ ์–ด๋–ป๊ฒŒ Clean Architecture๋ฅผ ์ ์šฉ์‹œํ‚ค๋Š”์ง€์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. Clean Architecture์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿค” [Android] ์•ˆ๋“œ๋กœ์ด๋“œ Clean Architecture์— ๋Œ€ํ•ด์„œ ( 1 ) - Clean Architecture์˜ ๊ฐœ๋… ์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ Clean Architecture์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ํฌ์ŠคํŒ…ํ•˜๊ธฐ์—” ๋‚ด์šฉ์ด ๊ธธ์–ด์งˆ ๊ฒƒ ๊ฐ™์•„ ์˜ค๋Š˜์€ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฐ„๋žตํ•˜๊ฒŒ ํฌ devyo-111commit.tistory.com Android์—์„œ Clean Architecture๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•ž์„œ ๋งํ–ˆ๋“ฏ 3๊ฐ€์ง€ lay..

Android 2023.02.21

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ Clean Architecture์— ๋Œ€ํ•ด์„œ ( 1 ) - Clean Architecture์˜ ๊ฐœ๋…

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ Clean Architecture์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ํฌ์ŠคํŒ…ํ•˜๊ธฐ์—” ๋‚ด์šฉ์ด ๊ธธ์–ด์งˆ ๊ฒƒ ๊ฐ™์•„ ์˜ค๋Š˜์€ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฐ„๋žตํ•˜๊ฒŒ ํฌ์ŠคํŒ… ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ €, Clean Architecture๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”? Clean Architecture๋ž€? ํด๋ฆฐ ์ฝ”๋“œ(Clean Code)๋ฅผ ์ €์ˆ ํ•œ ๋กœ๋ฒ„ํŠธ ๋งˆํ‹ด(Robert C. Martin)์ด ์ œ์•ˆํ•œ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜๋กœ, ๊ธฐ์กด์˜ ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๊ฐ€์ง€๋˜ ์˜์กด์„ฑ์—์„œ ๋ฒ—์–ด๋‚˜๋„๋ก ํ•˜๋Š” ์„ค๊ณ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Clean Architecture๋Š” ์™œ ์“ฐ๋Š”๋ฐ? Clean Architecture๋ฅผ ํ†ตํ•œ ์„ค๊ณ„๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ๊ด€์‹ฌ์‚ฌ๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ํ™•์žฅ์„ฑ์ด ์ข‹์•„์ง€๊ณ  ์‰ฝ๊ฒŒ ํŒจํ‚ค์ง€ ๋ฐ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๊ธฐ์— ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—..

Android 2023.02.20