profile
๐Ÿฐ ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค
post-thumbnail

์•ˆ๋“œ๋กœ์ด๋“œ Glide SVG ์ด๋ฏธ์ง€ ๋กœ๋“œ ๊ด€๋ จ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ - Failed to create image decoder with message 'unimplemented'

Glide Vector ์ด๋ฏธ์ง€ ๋กœ๋“œ ์‹œ : D/skia: --- Failed to create image decoder with message 'unimplemented' - ๋‹นํ™ฉํ•˜์ง€ ๋ง๊ณ  ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•ด๋ณด์ž โš’๏ธ

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

์•ˆ๋“œ๋กœ์ด๋“œ Fragment - show, hide ์ƒํƒœ ์ฒดํฌํ•˜๊ธฐ

onHiddenChanged()๋ฅผ ์ด์šฉํ•ด Fragment์˜ ์ƒํƒœ(show, hide) ์ฒดํฌ๋ฅผ ํ•ด๋ณด์ž ๐Ÿ‘€

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

์•ˆ๋“œ๋กœ์ด๋“œ RecyclerView GridLayoutManager ํ•ญ์ƒ ์ผ์ •ํ•œ ์•„์ดํ…œ ๊ฐ„๊ฒฉ ์ ์šฉํ•˜๊ธฐ (Column Space) - ItemDecoration

ItemDecoration์„ ์ด์šฉํ•˜์—ฌ ํ•ญ์ƒ ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ(Column Space)์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก margin ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ ์šฉํ•ด๋ณด์ž ๐Ÿ™Œ๐Ÿป

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

์•ˆ๋“œ๋กœ์ด๋“œ Hilt ๊ณต๋ถ€๋ฅผ ์œ„ํ•œ ์ฒซ ๊ฑธ์Œ

Hilt์™€ ํ•จ๊ป˜ ํ•˜๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์˜์กด์„ฑ ์ฃผ์ž… ๐Ÿ—ก

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

์•ˆ๋“œ๋กœ์ด๋“œ Glide ์—†์ด LruCache๋กœ ์ด๋ฏธ์ง€ ์บ์‹ฑํ•˜๊ธฐ (Bitmap Cache)

์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  LruCache๋กœ ์ด๋ฏธ์ง€ ์บ์‹ฑ์„ ํ•ด๋ณด์ž (Bitmap Cache)

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

์•ˆ๋“œ๋กœ์ด๋“œ Api key ์ˆจ๊ธฐ๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ธฐ

์‚ฌ์‹ค ์•„์‹œ์ž–์•„์š”. Api key๊ฐ€ ๋…ธ์ถœ๋˜๋ฉด ์•ˆ๋œ๋‹ค๋Š” ๊ฒƒ,, Gradle, local.properties, buildConfigField, resValue๋ฅผ ์‚ฌ์šฉํ•ด Api key๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•ด๋ณด์ž.

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

์„ธ์ƒ ์‰ฌ์šด ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฌด์„ (Wifi) ๋””๋ฒ„๊น…

์•ˆ๋“œ๋กœ์ด๋“œ ๋ฌด์„  ๋””๋ฒ„๊น…? adb ํ•˜์ง€ ๋งˆ์„ธ์š”, QR ์ฝ”๋“œ์— ์–‘๋ณดํ•˜์„ธ์š”.

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

์•ˆ๋“œ๋กœ์ด๋“œ Bitmap ์ตœ์ ํ™”(Resize)ํ•œ ๋‹ค์ค‘ ์ด๋ฏธ์ง€ ์„œ๋ฒ„์— ์—…๋กœ๋“œํ•˜๊ธฐ 2 - ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ธฐ (์ฝ”๋ฃจํ‹ด(Coroutine), Retrofit2)

์••์ถ•ํ•œ ์‚ฌ์ง„(File)์„ Retrofit2 ๋ฅผ ์ด์šฉํ•ด ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋ณด์ž - ์ฝ”๋ฃจํ‹ด(Coroutine), Retrofit2

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

MVC, MVP, MVVM ํŒจํ„ด (+ DI)

MVC, MVP, MVVM ํŒจํ„ด์„ ์•Œ์•„๋ณด์ž.

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

์•ˆ๋“œ๋กœ์ด๋“œ registerForActivityResult() (+๊ถŒํ•œ (Permission) ์š”์ฒญ ๋ฐ ์–ป์–ด์˜ค๊ธฐ)

activity ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋˜ startActivityForResult()๊ฐ€ ํ˜„์žฌ Deprecated ๋˜์–ด ์ˆ˜์ •์ด ๋ถˆ๊ฐ€ํ”ผํ•ด์กŒ๋‹ค. ๋”์ด์ƒ ๋ฏธ๋ฃจ์ง€ ๋ง๊ณ  ์ด๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” registerForActivityResult()๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž !

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

์•ˆ๋“œ๋กœ์ด๋“œ Github Push failed ์˜ค๋ฅ˜ ํ•ด๊ฒฐ - Invocation failed Unexpected end of file from server

Invocation failed Unexpected end of file from server - ์–ด์ œ ๋˜๋˜ push๊ฐ€ ์˜ค๋Š˜ ์•ˆ๋œ๋‹ค? ๋‹นํ™ฉํ•˜์ง€ ๋ง๊ณ  ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•ด๋ณด์ž โš’๏ธ

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

์•ˆ๋“œ๋กœ์ด๋“œ Room ๊ด€๋ จ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ - Execution failed for task ':app:kaptDebugKotlin'.

Execution failed for task ':app:kaptDebugKotlin'. - ๋‹นํ™ฉํ•˜์ง€ ๋ง๊ณ  ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•ด๋ณด์ž โš’๏ธ

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

์•ˆ๋“œ๋กœ์ด๋“œ UnitTest์—์„œ LiveData ์‚ฌ์šฉ์‹œ ์˜ค๋ฅ˜ - Method getMainLooper in android.os.Looper not mocked.

java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked - ๋‹นํ™ฉํ•˜์ง€ ๋ง๊ณ  ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•ด๋ณด์ž โš’๏ธ

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

์•ˆ๋“œ๋กœ์ด๋“œ Bitmap ์ตœ์ ํ™”(Resize)ํ•œ ๋‹ค์ค‘ ์ด๋ฏธ์ง€ ์„œ๋ฒ„์— ์—…๋กœ๋“œํ•˜๊ธฐ 1 - ๋น„ํŠธ๋งต ๋‹ค์ด์–ดํŠธ ์‹œํ‚ค๊ธฐ

ํฐ ์šฉ๋Ÿ‰์˜ ๋น„ํŠธ๋งต ํŒŒ์ผ์„ ๋‹ค์ด์–ดํŠธ ์‹œ์ผœ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋ณด์ž - Bitmap resize, compress

2022๋…„ 5์›” 3์ผ
ยท
1๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์•ˆ๋“œ๋กœ์ด๋“œ์™€ ์ฝ”ํ‹€๋ฆฐ์ด๋ž€? ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ์•Œ์•„๋ณด๊ธฐ

์•ˆ๋“œ๋กœ์ด๋“œ์™€ ์ฝ”ํ‹€๋ฆฐ์ด๋ž€? ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ(app - manifests, java, res / Gradle Scripts - bulid.gradle(Project), settings.gradle, bulid.gradle (Module)), Gradle๊ณผ ๋ชจ๋“ˆ์˜ ๊ฐœ๋… ์ •๋ฆฌ

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

์•ˆ๋“œ๋กœ์ด๋“œ RecyclerView Adapter View Binding ์ ์šฉํ•˜๊ธฐ

activity๋Š” ๋ทฐ ๋ฐ”์ธ๋”ฉ์„ ์ ์šฉํ•ด๋†“๊ณ  RecyclerView ๋ถ€๋ถ„์€ ์ดˆ๊ธฐ์— ํŒŒ์ผ์„ ๋ณต์‚ฌ+๋ถ™์—ฌ๋„ฃ๊ธฐ๋ฅผ ๋ฐ˜๋ณต ํ•˜๋‹ค๋ณด๋‹ˆ ์ „๋ถ€ findViewById๋กœ ์ ์šฉํ•ด ์˜จ ๋‚ด ์ž์‹ ..๏ผˆ๏ผ›ยดะด๏ฝ€๏ผ‰ใ‚ž ์œ„์— ๊ฐ€์ ธ์˜จ ์ฝ”๋“œ๋Š” ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ผ ๋ณต์žกํ•ด๋ณด์ด์ง€์•Š์ง€๋งŒ ๋ทฐ๊ฐ€ ์—„์ฒญ ๋งŽ์€ ๋ ˆ์ด์•„์›ƒ์„ ์—ฐ๊ฒฐํ•˜

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

์•ˆ๋“œ๋กœ์ด๋“œ ์ปค์Šคํ…€ ๋‹ค์ด์–ผ๋กœ๊ทธ(Custom Dialog) ๋งŒ๋“ค๊ธฐ, ClickListener๋กœ ํด๋ฆญ ์ด๋ฒคํŠธ ์ •์˜๊นŒ์ง€

๋‚˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ๋ณธ ๋‹ค์ด์–ผ๋กœ๊ทธ ๋””์ž์ธ์„ ์„ ํ˜ธํ•˜์ง€ ์•Š๋Š”๋‹ค..๐Ÿ’ฆ ์ € ์ƒํƒœ์—์„œ ๊ธฐ๋ณธ ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•˜๋”๋ผ๋„ ์•Œ๋ฆผ์ฐฝ ํ•˜๋‚˜๋กœ APP ์ „์ฒด์ ์ธ ๋””์ž์ธ ์ปจ์…‰์„ ํฉํŠธ๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์— ๊ธฐ๋ณธ ์•Œ๋ฆผ์ฐฝ ๋‹ค์ด์–ผ๋กœ๊ทธ๋ฅผ ์ „๋ถ€ ์ปค์Šคํ…€ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.

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

์•ˆ๋“œ๋กœ์ด๋“œ EditText ์˜๋ฌธ, ์ˆซ์ž, ํŠน์ˆ˜๋ฌธ์ž๋งŒ ์ž…๋ ฅ - ํ•œ๊ธ€ ์ž…๋ ฅ ์ œํ•œํ•˜๊ธฐ, ํ•œ๊ธ€ ํฌํ•จ ์—ฌ๋ถ€ ํ™•์ธํ•˜๊ธฐ (feat. ํŠน์ • ๋ฌธ์ž๋งŒ ์ž…๋ ฅ ํ—ˆ์šฉํ•˜๊ธฐ)

์ผ๋ฐ˜์ ์œผ๋กœ id์—๋Š” ํ•œ๊ธ€์„ ํฌํ•จํ•  ์ˆ˜ ์—†๋Š” ๋ฒ•.. ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ ์ œํ•œํ• ์ง€ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๋ณดํ†ต APP๋“ค์˜ ๊ฒฝ์šฐ ํฌ์ŠคํŒ… ์ œ๋ชฉ๊ณผ ๊ฐ™์ด ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ์ ์šฉ์‹œํ‚ค๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ผ๋‹จ์€ ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ ๋‹ค ์ ์šฉ์‹œ์ผœ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค ๐Ÿ™‹๐Ÿปโ€โ™€๏ธ !! ๐ŸŽˆ ํ•œ๊ธ€ ํฌํ•จ ์—ฌ๋ถ€ ํ™•์ธํ•˜๊ธฐ ์ž…๋ ฅ

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

์•ˆ๋“œ๋กœ์ด๋“œ Firebase Authentication - GitHub ๋กœ๊ทธ์ธ

Firebase SDK๋ฅผ ํ†ตํ•ด ์—”๋“œ ํˆฌ ์—”๋“œ ๋กœ๊ทธ์ธ ๊ณผ์ •์„ ์‹คํ–‰ํ•˜๋Š” ์•ฑ์— ์›น ๊ธฐ๋ฐ˜์˜ ์ผ๋ฐ˜ OAuth ๋กœ๊ทธ์ธ์„ ํ†ตํ•ฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ GitHub ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ Firebase๋กœ ์ธ์ฆํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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