Android
-
[Android] Context, ContextWrapper, ContextImpl ์ดํดAndroid 2021. 11. 21. 22:48
Context ์๋๋ก์ด๋ ๊ฐ๋ฐ์ ํด๋ณธ ์ฌ๋์ด๋ผ๋ฉด Context์ ๋ํด์๋ ์ผํ ์๊ณ ์์ ๊ฒ์ ๋๋ค. ์ ๋ ๋จ์ํ ์์ด๋ก ํด์ํ์ฌ ๋ฌธ๋งฅ, ๋จ๋ฝ์ ์๋ฏธ๋ก์ ์ปดํฌ๋ํธ๋ค์ ๋ํ ๊ธฐ๋ณธ ์ ๋ณด๋ค์ ๋ด๊ณ ์๋ ํด๋์ค๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๊ฐ๋ฐํ๋ ์ค์๋ Context๊ฐ ๋ง์ด ํ์ํ๊ฒ ๋๋๋ฐ this(Activity), getContext, getApplicationContext์ ๋ํ ์ดํด์์ด ๋์ ํด๋ณด๊ณ ๋๋ ๊ฒ์ ์ค์ ํ ๋๋ ๋ง์์ต๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ ๋ฉด์ ์์ ๋๋ต์ ๋ชปํ ๋๊ฐ ๋ง์๊ณ ๋๋ฒ๊น ํ๋๋ฐ ์ค๋์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๋ ๊ฒ์ ๋๋ผ๊ณ ์ฒ์ฒํ ์ ๋๋ก ๋ฐฐ์๋ณด๊ณ ์ ๊ณต๋ถ๋ฅผ ํ๊ณ ๊ธ์ ์ฐ๊ฒ ๋์์ต๋๋ค. ๊ณต์๋ฌธ์์์ ์ค๋ช ํ๊ธฐ๋ก Context๋ ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๊ฒฝ ์ ๋ณด์ ๋ํ ์ธํฐํ์ด์ค๋ก, ์์์ ์ถ์๋ฉ์๋๋ก ์ด๋ค์ง ์ถ์ ํด๋์ค์ ๋..
-
[Android] Preference, Shared Preference?Android 2021. 11. 19. 14:41
Shared Preference? ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ๋๋ถ๋ถ ์ค์ ์ ํ ์ ์๋ ํ๋ฉด์ด ๋ณ๋๋ก ์กด์ฌํฉ๋๋ค. ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํ๋ค๋๊ฐ, SMS ์์ ๋์ ์ฌ๋ถ์ ๊ฐ์ ์ค์ ์ ํ๊ฒ ๋๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์คํํ๋๋ผ๋ ์ ์ง๋ฉ๋๋ค. ์ด์ฒ๋ผ ์๋๋ก์ด๋์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์์คํ ์ ์ฒด์์ ์ ์ง๋๋๋ก ์ ์ฅํ ์ ์๋ฃ๊ตฌ์กฐ๊ฐ Shared Preference ์ ๋๋ค. Shared Preference๋ ํค์ ๊ฐ์ ๋ด์ ์ ์๋ ์๋ฃ๊ตฌ์กฐ๋ก Editor๋ฅผ ํตํด xml ํ์ผ์ ๊ธฐ๋กํ์ฌ ์ธ์ ๋ ์ฝ๊ณ ์ธ ์ ์์ต๋๋ค. Activity.getPreference() Shared Preference๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ API ์ค ํ๋๋ก Activity ํด๋์ค ๋ด์ ์กด์ฌํ๊ณ Activity ๋ณ๋ก ๋ค๋ฅธ SharedPreference ..
-
[Android] Thread, Handler, Looper, Message Queue ๋ค๋ฃจ๊ธฐAndroid 2021. 11. 11. 03:13
Asynchronous Programming ์์ฆ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋จ๋ค์ ๋น๋๊ธฐ์ ์ผ๋ก ์คํ์ด ๋ฉ๋๋ค. ์๋๋ก์ด๋์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค์ํ ๋ฐฉ๋ฒ์ ์ด์ฉํ์ฌ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌํํ ์ ์์ต๋๋ค. ๋ณ๋์ Thread๋ฅผ ์์ฑํ์ฌ ๋์์ ์ผ๋ก ์์ ์ ์คํํ๊ฒ ํ๋ ๋ฐฉ๋ฒ๋ถํฐ AsyncTask, RxJava, RxKotlin, Coroutine ๋ฑ ํธ๋ฆฌํ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๋ํ๋๊ณ ์์ต๋๋ค. ํ์ง๋ง ์๋๋ก์ด๋์์ ์ ๊ณตํด์ฃผ๋ Thread, Handler, Looper, Message Queue๋ฅผ ์ ๋๋ก ์๊ณ ์์ด์ผ ๊ธฐ๋ณธ ์๋ฆฌ๋ฅผ ๊นจ๋ซ๊ฒ ๋๊ณ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ํธ๋ฆฌํจ์ ์ ์ ์์ ๊ฒ ๊ฐ์ ๊ณต๋ถ๋ฅผ ํ๊ฒ ๋์์ต๋๋ค. Thread ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ณ ์๋..
-
[Kotlin] Scope functions (let, with, run, apply, also) ์ดํดAndroid/Kotlin 2021. 11. 8. 01:10
Scope functions ์ด๋? ์ฝํ๋ฆฐ์ผ๋ก ๊ฐ๋ฐ์ ํ๋ฉด์ ์ฌ๋ฌ Scope function๋ค์ ์ฌ์ฉํ์์ง๋ง, ์ฌ์ฉํ๋ฉด์๋ ์ ๋๋ก ์ฌ์ฉํ๊ณ ์๋์ง ์๊ตฌ์ฌ์ด ๋ค ๋๋ ๋ง์๊ณ ์ํฉ์ ๋ฐ๋ผ ์ด๋ค Scope function๋ค์ ์ฌ์ฉํ๋๊ฒ ์ข์์ง ๊ณ ๋ฏผ์ด ๋ง์์ต๋๋ค. ๊ณต์๋ฌธ์๋ฅผ ๋ณด๊ณ ์ ๋๋ก ๊ณต๋ถํ๊ธฐ๋ก ๋ง์์ ๋จน์๊ณ ๊ณต์๋ฌธ์๋ฅผ ํ ๋๋ก ๊ฐ๋ฐ ๊ฒฝํ๊ณผ ํจ๊ป ๊ธ์ ์์ฑํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋จผ์ , Scope function์ 5๊ฐ๋ก let, with, run,apply, also ๊ฐ ์ฝํ๋ฆฐ์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌํจ๋์ด ์์ต๋๋ค. Scope function์ ๋ง ๊ทธ๋๋ก ๋ฒ์(Scope)๊ฐ ์๊ธฐ๋๋ฐ ํด๋น ๋ฒ์๋ ํน์ ๊ฐ์ฒด์ ์ปจํ ์คํธ๋ฅผ ๊ฐ์ง๊ณ ์ผ๋ จ์ ๋์์ ํฌํจํ๋ ํจ์์ ๋๋ค. Scope function์ ๋๋ค์๊ณผ ๋์ผํ๊ฒ ์์ฑ์ ํ..
-
[Android] Activity๋? Activity LifeCycle ์๋ฒฝ ์ดํดAndroid 2021. 11. 3. 02:55
Activity๋? ์๋๋ก์ด๋ ๊ฐ๋ฐ์ ํ ๋ฒ์ด๋ผ๋ ํด๋ดค๋ค๋ฉด Activity๋ ๋ฌด์กฐ๊ฑด ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ์ ๋๋ค. ์ ๋ํ Activity๋ฅผ ์์ฃผ ์ฌ์ฉํ์ง๋ง ๊ตฌ์ฒด์ ์ผ๋ก Activity์ ์ญํ ์ด ๋ฌด์์ด๊ณ , LifeCycle์ ์๊ฐํด์ ๊ฐ๋ฐ์ ํ ์ ์ด ์์ ์ ๋๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๊ณ ์์ง ์์ต๋๋ค. ์ค์ ๋ฉด์ ์์๋ ๋จ๊ณจ ์ง๋ฌธ์ผ๋ก ๋น ์ง์์ด ๋์ค๋ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ์ ๋๋ก ๊ณต๋ถํ๊ณ ์ ์ด ๊ธ์ ์ฐ๊ฒ ๋์์ต๋๋ค. ๋ณธ๋ก ์ผ๋ก ๋์๊ฐ์ Activtiy๋ ์๋๋ก์ด๋ 4๋ ์ปดํฌ๋ํธ ์ค ํ๋๋ก ์ฌ์ฉ์์ ์ํธ์์ฉ์ ํ๋ UI๋ฅผ ์ ๊ณตํ๋ ์ญํ ์ ํฉ๋๋ค. ์๋๋ก์ด๋ ํฐ์์ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ฉด ๋ณด์ฌ์ง๋ ํ๋ฉด์ด ๋๋ถ๋ถ Activity๋ก ๋ง๋ค์ด์ก์ต๋๋ค. ์ข ๋ ์์ธํ ์ค๋ช ํ๊ธฐ ์ ์ Entry Point์ ๋ํด์ ์ค๋ช ํ๊ฒ ์ต๋๋ค. โป En..
-
[Android] Drawble layer-listAndroid 2021. 8. 15. 16:28
Drawable Drawable์ Android Developer์์ ์ ์ํ ๋ฐ๋ก๋ "something that can be drawn" ๋ฅผ ์ํ ์ผ๋ฐ์ ์ธ ์ถ์ํด๋์ค์ ๋๋ค. Drawable์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ํ๋ฉด์ ๋ค์ํ๊ฒ ๊พธ๋ฐ ์ ์๋๋ก ํฉ๋๋ค. ํ์ง๋ง, View์ ๋ฌ๋ฆฌ Drawable์ ์ฌ์ฉ์์ ์ํธ์์ฉํ๊ฑฐ๋ ์ด๋ฒคํธ ์์ ํ๋ API๋ ๋ฐ๋ก ์กด์ฌํ์ง ์์ต๋๋ค. Drawable๊ณผ Bitmap๊ณผ์ ์ฐจ์ด๋ฅผ ์ ํํ๊ฒ ๋ชจ๋ฅด์๋ ๋ถ๋ค๋ ์์ ๊ฒ ๊ฐ์๋ฐ, ์์์ ์ ์ํ๋๋ก Drawable์ ๊ทธ๋ ค์ง๋ ๋ชจ๋ ๊ฒ์ ๋ํ ์ถ์ํด๋์ค์ด๊ณ Bitmap์ PNG, JPG, .gif ๋ฑ๊ณผ ๊ฐ์ด bit๋ก map ํํ๋ก ๋ง๋ค์ด ์ด๋ฏธ์ง๋ฅผ ํํํ๋ ํด๋์ค๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. ์ฆ, Drawable๋ก ํํํ ์ ์๋ ํ๋์ ..
-
[Kotlin] Set ์ฌ์ฉ๋ฒAndroid/Kotlin 2021. 8. 13. 00:32
์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ผ๋ก ์์ฑํ์์ต๋๋ค. Set Set์ ์ํ์์ ์งํฉ์ด๋ผ๊ณ ์ฌ์ฉํ ์ฉ์ด์ ๋์ผํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ์ปฌ๋ ์ ์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ์์๊ฐ ๊ด๊ณ๊ฐ ์๊ณ ์ค๋ณต๋ ๊ฐ์ฒด๋ฅผ ๋ด์ง ์๋๋ค๋ ๊ฒ์ด ํน์ง์ ๋๋ค. ์ํ๋ ๊ฐ์ฒด๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ ์์๊ฐ ์ ํด์ง์ง ์์๊ธฐ ๋๋ฌธ์ ์ผ์ผ์ด ํ์ํด์ผ ํฉ๋๋ค. Set๋ ๋ค๋ฅธ ์ปฌ๋ ์ ๊ณผ ๋์ผํ๊ฒ ๋ถ๋ณํ set๊ณผ ๊ฐ๋ณํ set์ด ์กด์ฌํฉ๋๋ค. immutable Set fun main(){ val set1 = setOf(1,3,5,3,1) println(set1) // [1,3,5] val set2 = setOf(2,4,5,5,4,2) println(set2) // [2,4,5] } setOf() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ๋ณํ ..
-
[Kotlin] Map ์ฌ์ฉ๋ฒAndroid/Kotlin 2021. 8. 12. 23:59
์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ผ๋ก ์์ฑํ์์ต๋๋ค. Map Key์ Value์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ Collection ์ ๋๋ค. List์ ๋์ผํ๊ฒ ๊ฐ๋ณํ Map์ ๋ถ๋ณํ Map์ด ์์ต๋๋ค. immutable Map fun main(){ val map1 = mapOf("key1" to 1, "key2" to 2, "key3" to 3) val map2 = mapOf("key1" to '1', "key2" to '2', "key3" to '3') println(map1) // {key1=1, key2=2, key3=3} } Kotlin์์๋ mapOf() ํจ์๋ฅผ ํตํด์ ์ฝ๊ฒ map์ ์์ฑํ ์ ์์ต๋๋ค. map์ ..