profile
๐ƒ๐จ๐ง'๐ญ ๐›๐ž ๐š ๐ฉ๐ซ๐จ๐œ๐ซ๐š๐ฌ๐ญ๐ข๐ง๐š๐ญ๐จ๐ซ๐Ÿ’ซ

[Android] Datastore์— ๋Œ€ํ•˜์—ฌ(SharedPreferences,Preferences DataStore,Proto DataStore)

๊ด€๊ณ„ํ˜•๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (ex.SQLite) SharedPreferences : Key-Value ํ˜•ํƒœ SharedPreferences ์ €์žฅํ•˜๋ ค๋Š” ํ‚ค-๊ฐ’ collection์ด ์ž‘์€ ๊ฒฝ์šฐ SharedPreferencesf๋ฅผ ์ด์šฉํ•œ๋‹ค. Handler ์ƒˆ๋กœ์šด ๊ณต์œ  ํ™˜๊ฒฝ์„ค

2022๋…„ 12์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] flow์— ๋Œ€ํ•˜์—ฌ

Flow : ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐ’์„ ๋ฐฐ์ถœํ•˜๋Š” ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ suspend ํ•จ์ˆ˜๋Š” 1๊ฐœ์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„๋™๊ธฐ๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ์•ผ ํ•  ๋•Œ Flow๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ฝ”๋ฃจํ‹ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋นŒ๋“œ๋˜๋ฉฐ, CoroutineScope์•ˆ์—์„œ ๋™์ž‘ํ•œ๋‹ค. suspend ๊ฐ€๋Šฅํ•œ

2022๋…„ 12์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] Safe Args๋กœ ํ”„๋ž˜๊ทธ๋จผํŠธ ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•˜๊ธฐ

Navigaton์˜ Argument์ธ Safe Args๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ด๋ณด์ž! 1. ์˜์กด์„ฑ ์ถ”๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ Build.gradle id 'androidx.navigation.safeargs.kotlin' version '2.5.3' apply false app

2022๋…„ 12์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] Room (local DB ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

Room ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : SQLite์— ์ถ”์ƒํ™” ๋ ˆ์ด์–ด๋ฅผ ์ œ๊ณตํ•˜์—ฌ SQLite๋ฅผ ์™„๋ฒฝํžˆ ํ™œ์šฉํ•˜๋ฉด์„œ ๋” ๊ฒฌ๊ณ ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ฑ์„ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๊ธฐ์—์„œ ์•ฑ ๋ฐ์ดํ„ฐ์˜ ์บ์‹œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์•ฑ์˜ ๋‹จ์ผ ์ •๋ณด ์†Œ์Šค๋กœ ์ œ๊ณต๋˜๋Š” ์ด ์บ์‹œ๋ฅผ

2022๋…„ 12์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] ์•กํ‹ฐ๋น„ํ‹ฐ๋‚˜ ํ”„๋ž˜๊ทธ๋จผํŠธ ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•˜๊ธฐ(Intent/Bundle)

Activity๋กœ data๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒฝ์šฐ Intent๋ฅผ ์‚ฌ์šฉ ๋จผ์ € ์ „๋‹ฌํ•  ๊ธฐ๋ณธ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค. Intent ์ƒ์„ฑ ์‹œ context๋Š” this๋กœ ๋ฐ›์•„์ฃผ๊ณ , ์ด๋™ํ•  ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค. Activity -> Activity Fragment -> Activ

2022๋…„ 12์›” 12์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] ListAdapter

Adapter๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ๋ ˆ์ด์•„์›ƒ์— ์ง์ ‘ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ํด๋ž˜์Šค์ด๋‹ค.ListAdapter๋Š” DiffUtil์„ ์ด์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์–ด๋Œ‘ํ„ฐ์ด๋‹ค.getCurrentList() : ํ˜„์žฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.onCurrentListChanged() : ๋ฆฌ์ŠคํŠธ๊ฐ€ ์—…๋ฐ์ด

2022๋…„ 11์›” 27์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] 4๋Œ€ ์ปดํฌ๋„ŒํŠธ ๋ฟŒ์‹œ๊ธฐ (์•กํ‹ฐ๋น„ํ‹ฐ/์„œ๋น„์Šค/๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๋ฆฌ์‹œ๋ฒ„/์ฝ˜ํ…ํŠธํ”„๋กœ๋ฐ”์ด๋”)

์•ˆ๋“œ๋กœ์ด๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” 4๋Œ€ Component๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด์ž.Activity : ํ™”๋ฉด๊ตฌ์„ฑService : ํ™”๋ฉด์ด ์—†๊ณ , ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์— ์šฉ์ดBroadcast Receiver : ์•ฑ ๋˜๋Š” ๊ธฐ๊ธฐ๊ฐ€ ๋ฐœ์†กํ•˜๋Š” ๋ฐฉ์†ก ์ˆ˜์‹ Content Provider : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํŒŒ

2022๋…„ 11์›” 27์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] Coroutine ์ฝ”๋ฃจํ‹ด์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด์ž!

๋น„๋™๊ธฐ๋ผ๋ฉด ๋งŽ์ด ์ ‘ํ–ˆ์„ AsyncTask, ์ฝ”๋ฃจํ‹ด, Rxjava๊ฐ€ ์žˆ๋Š”๋ฐ, ์˜ค๋Š˜์€ Coroutine ์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด์ž!๊ตฌ๊ธ€์—์„œ AsyncTask๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋“ฑ์˜ ๋ฌธ์ œ๋กœ deprecated๋˜์–ด์„œ ์ฝ”๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.ํŠน์ง•1\. Heap ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต

2022๋…„ 11์›” 24์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[Android] REST API ์‚ฌ์šฉํ•˜๊ธฐ / Retrofit2(Feat. Repository Pattern, DTO)

Retrofit2 DTO moshi Lifecycle couroutine Livedata Glide navigation viewModel ListAdpater RecyclerView Kakao Developers > Daum๊ฒ€์ƒ‰ > ์ฑ… ๊ฒ€์ƒ‰ REST API https

2022๋…„ 10์›” 29์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] DataBinding ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ

: ์„ ์–ธ์  ํ˜•์‹์œผ๋กœ ๋ ˆ์ด์•„์›ƒ์˜ UI ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์•ฑ์˜ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์› ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ฆ‰, xmlํŒŒ์ผ์— data๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๐Ÿ‘ ๋งŽ์€ UI ํ”„๋ ˆ์ž„์›Œํฌ ํ˜ธ์ถœ์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์–ด ํŒŒ์ผ์ด ๋”์šฑ ๋‹จ์ˆœํ™”๋˜๊ณ  ์œ ์ง€๊ด€๋ฆฌ๊ฐ€ ์‰ฌ์›Œ์ง๐Ÿ‘ ์•ฑ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜๋ฉฐ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„

2022๋…„ 10์›” 24์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] LiveData & ์˜ต์ €๋ฒ„ํŒจํ„ด(map,switchMap)

๊ด€์ฐฐ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ํ™€๋” ํด๋ž˜์Šค๊ด€์ฐฐ ๊ฐ€๋Šฅํ•œ ์ผ๋ฐ˜ ํด๋ž˜์Šค์™€ ๋‹ฌ๋ฆฌ ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ์ธ์‹์ˆ˜๋ช… ์ฃผ๊ธฐ ์ธ์‹์„ ํ†ตํ•ด ํ™œ๋™ ์ˆ˜๋ช… ์ฃผ๊ธฐ ์ƒํƒœ์— ์žˆ๋Š” ์•ฑ ๊ตฌ์„ฑ์š”์†Œ ๊ด€์ฐฐ์ž๋งŒ ์—…๋ฐ์ดํŠธ์ฆ‰, ์ˆ˜๋ช…์ฃผ๊ธฐ๋ฅผ ๋ฐ˜์˜ํ•˜๋ฉด์„œ ๊ฐ’์˜ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ™€๋”UI์™€ ๋ฐ์ดํ„ฐ ์ƒํƒœ์˜ ์ผ์น˜ ๋ณด์žฅ์•ฑ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋ 

2022๋…„ 10์›” 24์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ ์ €์žฅ์†Œ(๋‚ด๋ถ€/์™ธ๋ถ€)

OS๊ฐ€ ์„ค์น˜๋œ ์˜์—ญ์œผ๋กœ ์œ ์ €๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ์‹œ์Šคํ…œ ์˜์—ญ์•ฑ์ด ์‚ฌ์šฉํ•˜๋Š” ์ •๋ณด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ €์žฅ๋จ์ปดํ“จํ„ฐ์— ๊ธฐ๊ธฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ์ €์žฅ์†Œ๋กœ ์ธ์‹์œ ์ €๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์˜์—ญ์‚ฌ์ง„๊ณผ ๋™์˜์ƒ์€ ์™ธ๋ถ€์ €์žฅ์†Œ์— ์ €์žฅ๋จํ”„๋กœ๋ฐ”์ด์ €๋ฅผ ์‚ฌ์šฉํ•ด ์‚ฌ์ง„ ์ •๋ณด๋ฅผ ์–ป์œผ๋ ค๋ฉดcontentResolver ๊ฐ์ฒด๋ฅผ ์ด์šฉ

2022๋…„ 10์›” 22์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[Android] ์ธํ…ํŠธ (๋ช…์‹œ์  ์ธํ…ํŠธ/์•”์‹œ์  ์ธํ…ํŠธ) ์ •๋ฆฌ

: ํŠน์ • ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋„ฃ์–ด์„œ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ์‹คํ–‰๋˜๋Š” ์ปดํฌ๋„ŒํŠธ์— ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ.์˜๋„๊ฐ€ ๋ช…ํ™•ํ•  ๋•Œ ์‚ฌ์šฉํ˜ธ์ถœํ•  ๋Œ€์ƒ์ด ํ™•์‹คํ•˜์—ฌ, ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ์‹คํ–‰๋˜์–ด์•ผํ•  ๊ฒฝ์šฐPackage์™€ Class๋ช…์„ ์ •ํ™•ํ•˜๊ฒŒ ๋ช…์‹œํ˜ธ์ถœํ•  ๋Œ€์ƒ์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์„

2022๋…„ 10์›” 20์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] Lifecycle & Viewmodel

Activity-lifecycle ํ™œ๋™ ์ˆ˜๋ช… ์ฃผ๊ธฐ์— ๊ด€ํ•œ ์ดํ•ด onCreate() โฌ‡๏ธ background ๋กœ ๋ฐ€๋ ค๋‚  ๋•Œ onPause() โฌ‡๏ธ ํ™œ๋™์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜์ง€ ์•Š์„ ๋•Œ onStop() โฌ‡๏ธ app ์ข…๋ฃŒ onDestory() kotlin-a

2022๋…„ 10์›” 17์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] Androidx, Jetpack

: ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ์•„ํ‚คํ…์ฒ˜(Android App Architecture)JetpackLivedata๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๋ทฐ์— ์•Œ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.ViewModel์€ ์•ฑ ํšŒ์ „ ์‹œ ์ œ๊ฑฐ๋˜์ง€ ์•Š๋Š” UI ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.Room์€ SQ

2022๋…„ 10์›” 15์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Android] ๋””์ž์ธ ํŒจํ„ด (MVC/MVP/MVVM)

AAA : ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ์•„ํ‚คํ…์ฒ˜(Android App Architecture) ๋””์ž์ธํŒจํ„ด MVC -> MVP -> MVVM MVC Model View Controller Model ๊ณผ View ์™„์ „ํžˆ ๋ถ„๋ฆฌ, Model ํ…Œ์ŠคํŠธ ์‰ฌ์›€ Controller๊ฐ€ ์•ˆ๋“œ๋กœ

2022๋…„ 10์›” 15์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[Android] ViewBinding

kotlin-android-extensions์„ ์‚ฌ์šฉํ•˜๋ฉด ๐Ÿ‘ findViewByIdํ•จ์ˆ˜ ์ƒ๋žต๊ฐ€๋Šฅ ๐Ÿ‘Ž ์—ฌ๋Ÿฌ xml์—์„œ id๋™์ผํ•  ๊ฒฝ์šฐ ์ฝ”๋“œ๊ฐ€ ํ—ท๊ฐˆ๋ ค์ง ๊ทธ๋ž˜์„œ 4.1๋ถ€ํ„ฐ ์ง€์›์ค‘๋‹จํ•˜๊ณ  ๋ทฐ ๋ฐ”์ธ๋”ฉ ์‚ฌ์šฉํ•˜๋„๋ก ๋ฐœํ‘œ !! ViewBinding ๊ฐ๊ฐ xml ๋งˆ๋‹ค Vi

2022๋…„ 10์›” 14์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[Android kotlin] ์‹ฌ๋ฆฌํ…Œ์ŠคํŠธ ์–ดํ”Œ ๋งŒ๋“ค๊ธฐ (Jetpack navigation/Binding/Bundle)

์ฐธ๊ณ  Activity๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“œ๋Š” ๊ฒƒ๋ณด๋‹ค ํ•˜๋‚˜์˜ Activity์™€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Fragment๋กœ ๋งŒ๋“ค๋ฉด ์ข‹์€ ์  ๐Ÿ‘ ํ™”๋ฉด์ „ํ™˜ navigation์ด ์ฒ˜๋ฆฌํ•ด์ค˜์„œ ํŽธ๋ฆฌํ•˜๋‹ค. [Android developer ์‚ฌ์ดํŠธ ์ฐธ๊ณ ] (https://developer.an

2022๋…„ 10์›” 13์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท