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

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

Android 31

[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] ์•ˆ๋“œ๋กœ์ด๋“œ RxBinding์— ๋Œ€ํ•ด์„œ(RxBinding์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•)

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ œ๊ฐ€ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉฐ ์‚ฌ์šฉํ–ˆ๋˜ RxBinding์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € RxBinding์ด๋ž€? RxBinding์€ RxJava์™€ RxAndroid๋ฅผ ์ด์šฉํ•ด ์•ˆ๋“œ๋กœ์ด๋“œ์˜ ์œ„์ ฏ์ด๋‚˜ View์— Rx๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•ด์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค์ž…๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋ก  TextWatcher์˜ ๊ธฐ๋Šฅ์ด๋‚˜ Button Click ์ด๋ฒคํŠธ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Rxbinding์„ ํ†ตํ•ด ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” Operator๋“ค๋กœ๋Š” throttleFirst() , debounce()๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‘ ํ•จ์ˆ˜์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์šฐ์„  ์„ค๋ช… ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. throttleFirst() ์ •ํ•ด์ง„ ์‹œ๊ฐ„ ์•ˆ์— ์ผ์–ด๋‚˜๋Š” ์—ฌ๋Ÿฌ ์ด๋ฒคํŠธ๋“ค์€ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœ๋œ ์ด๋ฒคํŠธ๋งŒ ๋ฐฉ์ถœํ•˜๊ณ  ๊ทธ ์ดํ›„์— ๋“ค์–ด์˜จ ์ด๋ฒคํŠธ๋Š” ๋ฌด์‹œํ•˜๋Š” Operator์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ..

Android/Kotlin 2022.12.21

[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

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ LiveData ๋ฐ”๋กœ ์ˆ˜์ • ๋˜์ง€ ์•Š๋Š” ์ด์œ  ๋ฐ ํ•ด๊ฒฐ๋ฐฉ์•ˆ - setValue() ์™€ postValue()์˜ ์ฐจ์ด์ 

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ๊ฐœ๋ฐœ ์ค‘์— ๋งˆ์ฃผ์นœ ์ž‘์€ ์ด์Šˆ๋ฅผ ์ˆ˜์ •ํ•˜๋‹ค๊ฐ€ ์•Œ๊ฒŒ ๋œ ์‚ฌ์‹ค์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ViewModel์„ ์‚ฌ์šฉ์‹œ์— LiveData์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋˜๋ฉด postValue() ํ•จ์ˆ˜๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ViewModel์˜ ๊ฐ’์„ ๋ณ€๊ฒฝ ํ›„์— ๋ฐ”๋กœ ๊ฐ’์„ ์ฝ์œผ๋ ค ํ•  ๊ฒฝ์šฐ ๋ณ€๊ฒฝ๋œ ๊ฐ’์„ ์ฝ์ง€ ๋ชปํ•˜๊ณ ์ด์ „ ๊ฐ’์„ ์ฝ์–ด ๋™์ž‘์ด ์ž˜๋ชป๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋”๋Ÿฌ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿค” ์•Œ์•„๋ณด๋‹ˆ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€ ์•„์ฃผ ๊ฐ„๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ฝ์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” postValue()๋ฅผ ํ†ตํ•œ ๋ณ€๊ฒฝ์ด ์•„๋‹Œ setValue()๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ฝ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๐Ÿคฉ ์ด๋ ‡๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด ๋‹น์—ฐํ•œ๋ฐ ํ•ด๋‹น ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ž˜ ์„ค๋ช…์„ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. setValue()์™€ postValue()์˜ ์ฐจ์ด ๋จผ์ € ๋‘..

Android 2022.12.02

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

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ €๋ฒˆ ํฌ์ŠคํŠธ์— ์ด์–ด์„œ ์นด์นด์˜ค ๋งต API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ง€๋„์— PIN์„ ์ฐ๋Š” ๋ฒ•์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค! ์นด์นด์˜ค ๋งต API์˜ ๊ธฐ๋ณธ ์„ค์ • ๋ฐ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ง€๋„๋ฅผ ๋„์šฐ๋Š” ๋ฐฉ๋ฒ•์€ ์ด์ „ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š” ๐Ÿ˜Ž [Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ ์นด์นด์˜ค๋งต API ์‚ฌ์šฉํ•˜๊ธฐ - ์นด์นด์˜ค๋งต ํ™”๋ฉด์— ๋„์šฐ๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ์นด์นด์˜ค ๋งต API๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์œ„์น˜์ •๋ณด๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” API๋Š” ๋งŽ์ง€๋งŒ ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์นด์นด์˜ค ๋งต์ด ๋ฌธ์„œ๊ฐ€ ์ž˜ ์ •๋ฆฌ๋˜์–ด์žˆ๋‹ค๊ณ  ์ƒ๊ฐ devyo-111commit.tistory.com ์นด์นด์˜ค ๋งต API์—์„œ๋Š” ํ‚ค์›Œ๋“œ์— ๋”ฐ๋ฅธ ์œ„์น˜ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๋Š” API๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋ฌธ์„œ๋Š” https://apis.map.kakao.com/andr..

Android/Kotlin 2022.11.28

[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] ์•ˆ๋“œ๋กœ์ด๋“œ REST ํ†ต์‹  - Retrofit2(๋ ˆํŠธ๋กœํ•)์˜ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด์„œ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ Rest ํ†ต์‹ ์„ ํ•˜๋Š” ๋ฒ•๊ณผ Retrofit2์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. REST(’RE’presentational ‘S’tate ‘T’ransfer)๋ž€? HTTP URI(Uniform Resource Identifier)๋ฅผ ํ†ตํ•ด ์ž์›(Resource)์„ ๋ช…์‹œํ•˜๊ณ , HTTP Method(POST, GET, PUT, DELETE)๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ž์›์— ๋Œ€ํ•œ CRUD Operation์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Retrofit2์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”? Retrofit2 ๋ž€? OkHttp๋ฅผ ๋งŒ๋“  Square์‚ฌ์—์„œ ๋งŒ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ Annotation์„ ์ด์šฉํ•˜์—ฌ REST๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (OkHttp๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ reflect๋ฅผ ์ ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ) ๊ทธ..

Android/Kotlin 2022.11.07

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ 13(SDK 33)์ด์ƒ OnBackPressed() deprecated์— ๊ด€ํ•œ์—ฌ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์•ˆ๋“œ๋กœ์ด๋“œ 13(targetSDK 33) ์ด์ƒ ๋ฒ„์ „์—์„œ onBackPressed๊ฐ€ deprecated๋œ๊ฑด์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค! ํฌ์ŠคํŒ…์„ ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ๋Š” targetSDK 33์œผ๋กœ ์„ค์ •ํ›„ ์ฝ”๋”ฉ ์ค‘.. ์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ide์—์„œ ๊ณ„์† warning์„ ์žก๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋™์ž‘์€ ์ •์ƒ์ ์œผ๋กœ ํ•˜๋Š”๋ฐ ์™œ deprecated๊ฐ€ ๋œ ๊ฒƒ์ธ์ง€ ์•Œ์•„๋ณด๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์ด์œ ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿค” ์•ˆ๋“œ๋กœ์ด๋“œ 10๋ถ€ํ„ฐ ์‹œ์Šคํ…œ์ด ์ œ์Šค์ฒ˜ ํƒ์ƒ‰ ๊ธฐ๋Šฅ (์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์Šค์™€์ดํ”„ ํ•ด์„œ ๋’ค๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์ œ์Šค์ฒ˜)์„ ์ œ๊ณตํ•˜์˜€๋Š”๋ฐ์š” ์•ฑ์—์„œ ์ด ์ œ์Šค์ฒ˜๋ฅผ ์Šค์™€์ดํ”„์™€ ๊ฒฐํ•ฉ๋์„ ๋•Œ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋™์ž‘์„ ์ดˆ๋ž˜ํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ , ์ œ์Šค์ฒ˜๊ฐ€ ์‹œ์Šคํ…œ ๋’ค๋กœ ๋˜๋Š” ์•ฑ ๋’ค๋กœ ํƒ์ƒ‰์„ ํ•œ ๊ฒƒ์ธ์ง€ ์•ˆ๋“œ๋กœ์ด๋“œ ์‹œ์Šคํ…œ์ด ๊ตฌ๋ณ„ํ• ..

Android 2022.11.02

[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