์ ์ฒด ๊ธ(53)
-
[Android] Android 10 - ์นด๋ฉ๋ผ์ ๊ฐค๋ฌ๋ฆฌ์์ ์ด๋ฏธ์ง ๊ฐ์ ธ์ค๊ธฐ
Android 10์์ ์นด๋ฉ๋ผ/๊ฐค๋ฌ๋ฆฌ ๋ฑ์ ์ด๋ฏธ์ง ์ฒ๋ฆฌ๋ฅผ ์ํ ์ํ ํ๋ก์ ํธ๋ฅผ ์๊ฐํ๋ค. (Android 10 ์ดํ ๋ฒ์ ๋ ๋์) ๊ธฐ๋ฅ 1. ์นด๋ฉ๋ผ ์ดฌ์ ํ ์ด๋ฏธ์ง ๋ณด์ฌ์ฃผ๊ธฐ 2. ์นด๋ฉ๋ผ ์ดฌ์ ํ ์ด๋ฏธ์ง ๊ฐค๋ฌ๋ฆฌ์ ์ ์ฅํ๊ธฐ 3. ๊ฐค๋ฌ๋ฆฌ์์ ์ด๋ฏธ์ง ๋ถ๋ฌ์ค๊ธฐ 4. ๊ฐค๋ฌ๋ฆฌ์์ ๋ถ๋ฌ์จ ์ด๋ฏธ์ง์ uri๋ก ํ์ผ ์์ฑํ๊ธฐ https://github.com/nurisis/Android10CameraProject nurisis/Android10CameraProject A sample android app for loading images from cameras and galleries that support up to Android 10+ - nurisis/Android10CameraProject github.com And..
2020.05.27 -
[Android] BottomNavigationView ripple ํจ๊ณผ
์๋ ์ด๋ฏธ์ง์ฒ๋ผ ๋๋ ํจ๊ณผ๋ฅผ ์์ ๊ธฐ ์ํด ์ฒ์์ ์ผ๋ง๋ ์ ๋ฅผ ๋จน์๋์ง ๐ฅถ ์ด๊ฑธ ๊ทธ๋ฆผ์ํจ๊ณผ๋ก ๋ด์ผํ๋์ง .. hover ๋ฑ๋ฑ์ ๊ฒ์ํ์์ง .. ์ผ๋จ ์ด๊ฒ์ ripple ํจ๊ณผ๋ผ๊ณ ๋ถ๋ฅด๋๊ฑธ ๋ชฐ๋ผ์ ๊ฒ์ํ๋ ๊ฒ๋ ํ๋ค์๋ค ;; ์ด์จ๋ , Ripple ํจ๊ณผ ์์ ๊ธฐ !!! ์๋ ์ด๋ฏธ์ง์ฒ๋ผ app:itemBackground๋ฅผ ์ค์ ํด์ฃผ๋ฉด ๋!! ๋์!!!! ๊ทธ๋ผ ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ํฐ์นํ ๋ ripple ํจ๊ณผ๊ฐ ์ฌ๋ผ์ง๋ค ใ ใ Ripple ํจ๊ณผ๋ฅผ ์ฐ๋, bottomNavigationView๋ฅผ ๋์ง ์๊ฒ ํ๊ธฐ ์๋ ์ด๋ฏธ์ง์ฒ๋ผ android:background๋ฅผ ์ค์ ํด์ฃผ๋ฉด ๋!! ๊ทธ๋ผ ์๋์ฒ๋ผ ๋๋ค ๋์ ๊ฐ์ด ๊ณ ์ํ๋ ๋ถ๋ค์ ์ํด ๊ธ์ ๊ณต์ ํ๋ค.
2020.03.20 -
Fragment์ ๋ํ์ฌ - (1/2)
์ค๋์ ๊ฐ๋ : Fragment - 1/2 ์๋์ ๋ด์ฉ๋ค์ ๊ตฌ๊ธ ๊ณต์๋ฌธ์๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ ๊ฒ์ด๋ค๐ฑ๐ค ๋ฑ์ฅ ๋ฐฐ๊ฒฝ ๋ฐ ๋์์ธ ์ฒ ํ Android 3.0(API level 11)์ ์ฒ์์ผ๋ก ๋์ ํ๋ธ๋ฆฟ๊ณผ ๊ฐ์ ๋ํ ์คํฌ๋ฆฐ์์ ์ ์ฐํ UI๋ฅผ ์ง์ํ๊ธฐ ์ํด ์๋ ๊ทธ๋ฆผ์์์ ๊ฐ์ด ํ๋ธ๋ฆฟ์์๋ 2๊ฐ์ Fragment๋ฅผ ๋์์ ๋ณด์ฌ์ค ์ ์๊ณ , ๋ชจ๋ฐ์ผ์์๋ 1๊ฐ์ Fragment์ฉ ๋ณด์ Fragment๋ ๋ชจ๋์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ก ๋ง๋ค์ด์ผ ํจ => Fragment๋ ๋ ๋ฆฝ๋ ๋ชจ๋๋ก ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅ. ํ๋์ fragment์์ ๋ค๋ฅธ fraagment๋ฅผ ์ง์ ์กฐ์ํ๊ฒ ๋ง๋ค๋ฉด ์ ๋๋ค Fragment๋ ์ธ์ ์ฌ์ฉํ ์ ์์๊น? ํ๋ธ๋ฆฟ๊ณผ ๊ฐ์ ํฐ ํ๋ฉด์์ Tab layouts BottomBar Navigation Dialo..
2020.03.01 -
[Kotlin] Scope Functions - let, run, with, apply, and also ์ ๋ํ์ฌ
์ค๋์ ๊ฐ๋ : Kotlin Scope Functions ์ฒ์์ ์ ๋ง ํท๊ฐ๋ ธ๋ค. ๊ทธ๋ ์ง๋ง ์ฐจ์ด๋ฅผ ์๊ณ ๋๋ ์ ๋ง ์ฝ๋ค! ๊ฐ ํจ์๋ ํฌ๊ฒ 2๊ฐ์ง์ ํน์ง์ผ๋ก ๋๋๋ค. ์ด๊ฒ๋ง ์๋ฉด ๋!๋! ์ฐจ์ด 1. Context object : this ๋๋ it ์ฌ๊ธฐ์ "Context object"๋, ์๋ ์ฝ๋๋ฅผ ๋ณด์. val adam = Person("Adam").apply { // ์ฌ๊ธฐ์ Person ๊ฐ์ฒด๋ฅผ ์ด๋ป๊ฒ ๋ฐ๋๋์ ์๋ฏธ. apply๋ this ๋ก ๋ฐ์ age = 32 // ๋ฐ๋ผ์, this.age ์ ๋์ผํจ city = "London" // this.city์ ๋์ผ } val adam = Person("Adam").also { // also๋ it ์ผ๋ก ๋ฐ์ it.age = 32 it.city = "Londo..
2020.02.17 -
[Android] DI(์์กด์ฑ ์ฃผ์ )๊ณผ Koin์ ๋ํ์ฌ
#์ค๋์ ๊ฐ๋ : Koin DI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋? ์์กด์ฑ ์ฃผ์ ์ ํ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ ์์กด์ฑ์ ์ ๊ณตํ๋ ๊ธฐ์ ์ ๋๋ค. "์์กด์ฑ"์ ์๋ฅผ ๋ค์ด ์๋น์ค๋ก ์ฌ์ฉํ ์ ์๋ ๊ฐ์ฒด์ ๋๋ค. ์ฌ์ฉํ ์๋น์ค๋ฅผ ์ง์ ํ๋ ํด๋ผ์ด์ธํธ ๋์ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉํ ์๋น์ค๋ฅผ ์๋ ค์ค๋๋ค. -์ํค๋ฐฑ๊ณผ ์ฐ์ DI ๋? DI : Dependency Injection(์์กด์ฑ ์ฃผ์ )์ ์ค๋ง ์์กด์ฑ ์ฃผ์ ์ ์๋ฏธ๋ฅผ ์์๋ณด์. ์์กด์ฑ์ด๋, ๋๋ ์์กด์ฑ์ ๊ด๊ณ๋ฅผ ์๋์ ๊ฐ์ด ์ดํดํ๋ค. ์๋ฅผ ๋ค์ด, A์ B๊ฐ ์๋ค. ์ด๋ค action์ด ํํด์ ธ A์ ์ํฅ์ ๋ฏธ์ณค๋ค. A๊ฐ ์ํฅ์ ๋ฐ์๊ธฐ ๋๋ฌธ์ B๋ ์ํฅ์ ๋ฐ๋๋ค. ์ด๋ฌํ A-B์ ๊ด๊ณ๋ฅผ ์์กด์ฑ์ด ์๋ค๊ณ ๋ณธ๋ค. ์ฃผ์ ์ด๋, "๋ฐ์์ ์์ผ๋ก ๋ฃ๋๋ค"๋ผ๋ ์๋ฏธ๋ก ๋ณผ ์ ์๋ค. ์ฆ, ์ํํธ์จ์ด์์์ ์์กด์ฑ ์ฃผ์ ์ด๋..
2019.11.15 -
[Android]Android Architecture Pattern ์ ๋ํ์ฌ - (2) MVVM
#์ค๋์ ๊ฐ๋ : MVVM MVVM ํจํด์ด๋? Model(M) - View(V) - ViewModel(VM) View : UI. ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋ ํ๋ฉด ๋ฐ ์ฌ์ฉ์์ ์ ๋ ฅ ๋ฑ ViewModel : View์์ ๋ฐ์ ์ฌ์ฉ์์ ์ก์ ์ ๋ํ business logic ์ฒ๋ฆฌ. (์ก์ ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ Model์ ํตํด ์ ๋ฐ์ดํธํ๊ฑฐ๋) Model : ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํน์ง 1. View - ViewModel์ ๊ด๊ณ ์์ ๊ทธ๋ฆผ 1์ ๋ณด๋ฉด, ViewModel์ View์ ์กด์ฌ๋ฅผ ๋ชจ๋ฆ. ์ด๋ก์จ ํ๋ซํผ ์์กด์ฑ์์ ๋ฒ์ด๋ ์ ์๊ฒ ํด ์ค๋ค ViewModel์ ๊ณ์ํด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐฉ์ถํ๋ฉด, View๋ ViewModel์ ๋ฐ์ดํฐ๋ฅผ ๊ณ์ ๋ฃ๋ ๊ด๊ณ. ์) ๊ต์๋(ViewModel)์ ๊ฐ์ ์ค ๋ง์ ํ์(View)๋ค์ ๋์์ผ๋ก ๋ค์ํ ์ ๋ณด..
2019.10.08