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

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

Kotlin 24

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

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

Android 2023.05.19

[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

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ ListAdapter์™€ DiffUtil , AsyncListDiffer๋ฅผ ํ™œ์šฉํ•œ RecyclerViewAdapter ๊ตฌํ˜„ํ•˜๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ RecyclerView๋ฅผ ์ข€ ๋” ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ListAdapter, DiffUtil , AsyncListDiffer์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € RecyclerView์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์€ ์•„๋ž˜์—์„œ ํ™•์ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๐Ÿ™ [Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ RecyclerView(๋ฆฌ์‹ธ์ดํด๋Ÿฌ ๋ทฐ)์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ• ์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ RecyclerView์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. RecyclerView(๋ฆฌ์‹ธ์ดํด๋Ÿฌ ๋ทฐ)๋ž€? RecyclerView๋Š” ListView์ฒ˜๋Ÿผ ์ œํ•œ๋œ ํ™”๋ฉด(Window)์— ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์…‹์„ ๋ณด์—ฌ์ค„ ๋•Œ ์‚ฌ์šฉํ•ฉ devyo-111commit.tistory.com DiffUtil์ด๋ž€? RecyclerView๋ฅผ ์‚ฌ์šฉํ• ๋•Œ Recycl..

Android/Kotlin 2023.02.03

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ ItemTouchHelper์— ๋Œ€ํ•ด์„œ (Drag and Drop ๊ณผ Swipe ๊ตฌํ˜„ํ•˜๊ธฐ)

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ItemTouchHelper๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ItemTouchHelper๋ž€? ItemTouchHelper๋Š” RecyclerView์— ์‚ญ์ œ๋ฅผ ์œ„ํ•œ Swipte ๋ฐ Drag and Drop์„ ์ง€์›ํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ItemTouchHelper๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์•ก์…˜์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” RecyclerView ๋ฐ ์ด๋ฒคํŠธ์— ๋ฐ˜์‘ํ•˜๋Š” ์ฝœ๋ฐฑ ๋ฉ”์„œ๋“œ๊ฐ€ ์„ ์–ธ๋˜์–ด ์žˆ๋Š” Callback ํด๋ž˜์Šค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜Ž ์ด๋ฒˆ ์—์ œ์—์„œ๋Š” ItemTouchHelper์™€ RecyclerView๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. RecyclerView์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์€ ์•„๋ž˜ ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ˆ ํ•จ๊ป˜ ํ™•์ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. [Kotlin][A..

Android/Kotlin 2023.01.02

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ Room์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์•ˆ๋“œ๋กœ์ด๋“œ Room์˜ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. Room์ด๋ž€? ์Šค๋งˆํŠธํฐ ๋‚ด์žฅ DB์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ORM(Object Relational Mapping)๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. Room์€ DB ๋ฐ์ดํ„ฐ๋ฅผ Java ๋˜๋Š” ์ฝ”ํ‹€๋ฆฐ ๊ฐ์ฒด๋กœ ๋งคํ•‘ํ•ด์ฃผ๋ฉฐ, SQLite๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ DB๋ฅผ ๊ตฌ์กฐ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์˜ ํŽธ์˜์„ฑ์„ ๋†’์—ฌ์ฃผ์–ด ์œ ์ง€๋ณด์ˆ˜๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•ด ์ค๋‹ˆ๋‹ค. Room์˜ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ room์˜ ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ Database , DAO , Entity๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” Room์˜ ๊ตฌ์กฐ์ด๋ฉฐ ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Entity(์—”ํ‹ฐํ‹ฐ) DB ๋‚ด์˜ Table๋กœ class์˜ ๋ณ€์ˆ˜๋“ค์ด ์นผ๋Ÿผ(column)์ด ๋˜์–ด Table์ด ์ƒ์„ฑ..

Android/Kotlin 2022.12.16

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ ์นด์นด์˜ค๋งต API ์‚ฌ์šฉํ•˜๊ธฐ - ์นด์นด์˜ค๋งต ํ™”๋ฉด์— ๋„์šฐ๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ์นด์นด์˜ค ๋งต API๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์œ„์น˜์ •๋ณด๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” API๋Š” ๋งŽ์ง€๋งŒ ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์นด์นด์˜ค ๋งต์ด ๋ฌธ์„œ๊ฐ€ ์ž˜ ์ •๋ฆฌ๋˜์–ด์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ฐ”๋กœ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณผ๊นŒ์š”?? API ์„ค์ • 1. ๋จผ์ € Kakao Developers๋กœ ๊ฐ€์„œ ๋กœ๊ทธ์ธ์„ ํ•ด์ค๋‹ˆ๋‹ค. Kakao Developers ์นด์นด์˜ค API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•ด๋ณด์„ธ์š”. ์นด์นด์˜ค ๋กœ๊ทธ์ธ, ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๊ธฐ, ์นœ๊ตฌ API, ์ธ๊ณต์ง€๋Šฅ API ๋“ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. developers.kakao.com 2. ๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋“ค์–ด๊ฐ€ ์•ฑ์„ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค. 3. ์ƒ์„ฑ๋œ ์•ฑ์—์„œ ํ”Œ๋žซํผ์„ ๋“ฑ๋กํ•ด์ค๋‹ˆ๋‹ค. ํ”Œ๋žซํผ ๋“ฑ๋ก์‹œ์— ํŒจํ‚ค์ง€๋ช…์€ AndroidManifestํŒŒ์ผ์˜ package๋ช…..

Android/Kotlin 2022.11.25

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ MVVM ํŒจํ„ด์— ๋Œ€ํ•ด์„œ - Retrofit์œผ๋กœ ์ „์†ก๋ฐ›์€ ๊ฐ’์„ MVVM๊ตฌ์กฐ ์ ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ MVVM ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. MVVM ํŒจํ„ด์ด๋ž€? MVVM ํŒจํ„ด์€ Model, View, ViewModel์„ ๋ถ„๋ฆฌํ•ด View์™€ Model ๊ฐ„์˜ ์˜์กด์„ฑ์„ ์ค„์—ฌ์ฃผ๋Š” ํŒจํ„ด์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. View ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญ โฌ‡๏ธ ViewModel View์—์„œ ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ํ•จ์ˆ˜ ๋“ฑ์„ ํ˜ธ์ถœ โฌ‡๏ธ Model ViewModel์—์„œ ์š”์ฒญํ•˜๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ โฌ‡๏ธ ViewModel ๋ชจ๋ธ์—์„œ ๋ฐ˜ํ™˜๋ฐ›์€ ๊ฐ’์„ LiveData๋กœ ๊ฐ์‹ธ์คŒ โฌ‡๏ธ View ๋ผ์ด๋ธŒ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ์ถœ๋ ฅ ๊ทธ๋ ‡๋‹ค๋ฉด.. ์™œ MVVMํŒจํ„ด์„ ์‚ฌ์šฉํ• ๊นŒ์š”? ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ ํŒจํ„ด์œผ๋ก  MVC , MVP ํŒจํ„ด์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. MVC์˜ ๊ฒฝ์šฐ View์™€ Controller๋ฅผ ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ์— Vie..

Android/Kotlin 2022.11.10

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ Coroutine(์ฝ”๋ฃจํ‹ด) ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋”ฉ ํ™”๋ฉด(๋‹ค์ด์–ผ๋กœ๊ทธ) ๋งŒ๋“ค๊ธฐ

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

Android/Kotlin 2022.11.01

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ RecyclerView(๋ฆฌ์‹ธ์ดํด๋Ÿฌ ๋ทฐ)์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ RecyclerView์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. RecyclerView(๋ฆฌ์‹ธ์ดํด๋Ÿฌ ๋ทฐ)๋ž€? RecyclerView๋Š” ListView์ฒ˜๋Ÿผ ์ œํ•œ๋œ ํ™”๋ฉด(Window)์— ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์…‹์„ ๋ณด์—ฌ์ค„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ListView๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ View๋ฅผ ๊ณ„์† ์ƒˆ๋กœ ์ƒ์„ฑ ํ•˜์ง€๋งŒ RecyclerView๋Š” ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ View๋ฅผ ๊ณ„์† '์žฌํ™œ์šฉ(Recycle)' ํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ListView์— ๋น„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์ ์œผ๋กœ ํšจ์œจ์ ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RecyclerView.ViewHolder RecyclerView๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” View์˜ ViewHolder๋กœ View์˜ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. RecyclerViewAdapter๋ฅผ ํ†ตํ•ด ViewHol..

Android/Kotlin 2022.10.28