CS
31
[Android] Custom View
2023.04.15
๋ฉด์ ๊ธฐ๋ก์ฉ Custom View ์ ๋ฆฌ ์ปค์คํ
๋ทฐ ์ฌ์ฉํ๋ ๋ชฉ์ ์์ ๋ง์ถค ๋ ๋๋ง ๋ ๋ทฐ ์ ํ์ ๋ง๋ค ์ ์์ ๊ธฐ์กด view ๊ตฌ์ฑ์์ ๊ทธ๋ฃน์ ์๋ก์ด ๋จ์ผ ๊ตฌ์ฑ์์๋ก ๋ง๋ค ์ ์์ ํค ๋๋ฆ๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ด๋ฒคํธ๋ฅผ ํ์ธํ๊ณ ๋ง์ถค ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ ๊ตฌํ ๋ฐฉ๋ฒ attrs.xml ์ ์ : ์ปค์คํ
๋ทฐ์์ ์ฌ์ฉํ๊ณ ์ ํ๋ ์์ฑ์ด ์๋ค๋ฉด attrs.xml์ ์ ์ํด์ค res > values ํด๋์ attrs.xml ์ ์์ฑ declare-styleable ํ๊ทธ๋ฅผ ์์ฑ ํ name์๋ ์ปค์คํ
๋ทฐ ํด๋์ค๋ช
์ ์
๋ ฅ attr ํ๊ทธ๋ฅผ ์์ฑํด์ name์๋ ์์ฑ๋ช
, format์๋ ์์ฑ์ type์ ์
๋ ฅํด์ค // ์์ ์ปค์คํ
๋ทฐ ํด๋์ค ์์ฑ View ํด๋์ค๋ฅผ ์์ ๋ฐ๋ ํด๋์ค๋ฅผ ์์ฑ, ์ด๋์ ํด๋์ค๋ช
์ ์ attrs..
[Android] Data Binding
2023.04.15
๋ฉด์ ๊ธฐ๋ก์ฉ Data Binding ์ ๋ฆฌ Data Binding์ xml ํ์ผ์ data๋ฅผ ์ฐ๊ฒฐํด์ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ ๊ฒ์ผ๋ก MVVM ํจํด์ ๊ตฌํํ ๋ LiveData์ ํจ๊ป ๊ฑฐ์ ํ์์ ์ผ๋ก ์ฌ์ฉ๋จ. ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ฅ์ ์ ๊ธ๋ฃจ ์ฝ๋๋ฅผ ์ค์ผ ์ ์์. ๋ ์ด์์๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์ฝ๋๋ค์ ์ค์ผ ์ ์์. ๋ด๊ฐ ์ฌ์ฉํ๋ ๋ถ๋ถ // ... // ... ์ ์ฒด๋ฅผ ํ๊ทธ๋ก ๊ฐ์ธ์ฃผ๊ณ ํ๊ทธ ์ฌ์ด์ ํ๊ทธ๋ก ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ํ์ํ ๋ณ์๋ฅผ ์ ์ธํด์ค. ๋๋ viewmodel์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ํ์ํ ๋ณ์๋ก ์ฌ์ฉํ ์์ ์ด์ด์ ๋ค์๊ณผ ๊ฐ์ด ํด์ค. class MainActivity : BaseActivity(R.layout.activity_main) { override val viewModel by viewModels..

[Android] MVVM
2023.04.13
๋ฉด์ ์ค๋น์ฉ MVVM - Android ์ ๋ฆฌ (๋งจ ์๋์ ๋ ํผ๋ฐ์ค๋ค์ ๊ผญ ํ์ธํด์ฃผ์ธ์.) MVC ๊ตฌ์ฑ : Model, View(์ ์ ๊ฐ ๋ณด๊ณ ์๋ ํ๋ฉด), Controller ํ๋ฆ : Controller์์ ์ด๋ฒคํธ ๋ฐ์ → ์ด๋ฒคํธ์ ๋ฐ๋ผ Model ์
๋ฐ์ดํธ๋ฅผ ์์ฒญ → View์ ์ ๋ฌ → View๋ Model์ ์
๋ฐ์ดํธ๋ฅผ ๋ฐ์์ ๊ฐฑ์ View, Controller์ ๋ก์ง์ด ์ดํฉ๋์ด ์์ด ํ
์คํธ ์ฝ๋ ์์ฑ์ด ์ฝ์ง ์์. ๋ํ ์ด๋ ๊ฒ ๊ตฌํํ ์ฝ๋์ ํน์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ค๊ณ ํด๋ ์ด๋ ค์์ด ์์. MVP ๊ตฌ์ฑ : Model, View, Presenter(View์์ ์์ฒญํ ์ ๋ณด๋ฅผ Model๋ก๋ถํฐ ๊ฐ๊ณตํ์ฌ ๋ทฐ๋ก ์ ๋ฌ) ํ๋ฆ : ์ฌ์ฉ์์ ์ก์
์ View๋ก๋ถํฐ ๋ฐ์ → View๋ ๋ฐ์ ์ด๋ฒคํธ๋ฅผ Presenter๋ก ๋๊น → P..

[Android] ์๋๋ก์ด๋ ๋ฆฌ์์ค
2023.04.07
bitmap ๋ฐฉ์ ์ข
๋ฅ mdpi : ์ด์ฐฝ๊ธฐ๋ก 1px = 1dp์ hdpi : 1.5px = 1dp xhdpi : 2px = 1dp xxhdpi : 3px = 1dp xxxhdpi : 4px = 1dp ํด์๋์ ํฌ๊ธฐ์ ๋ฐ๋ผ cpu์ ๋
ธ๋ ๊ฐ๋๊ฐ ๋ฌ๋ผ์ง ๋ง์ฝ xxxhdpi์ ํด์๋๋ฅผ ์ฌ์ฉํ ์ ์๋๋ฐ xxxhdpi์ ๋ฆฌ์์ค๊ฐ ์์ผ๋ฉด xxhdpi, xhdpi, hdpi, mdpi ์์ผ๋ก ๋ฆฌ์์ค๋ฅผ ์ฐพ์๊ฐ๋ฉด์ ์ฌ์ฉํ๊ฒ ๋จ ๋นํธ๋งต์ ์ฉ๋์ด ํฐ ๋์ ํ์ง์ด ์ข์, ๊ทธ๋ฌ๋ xxxhdpi์ ํด์๋๋ฅผ ์ฌ์ฉํด์ผ ๋๋๋ฐ ์์ด์ mdpi๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ pixel์ด ์ฐ๊ทธ๋ฌ๋๋ ๋จ์ ์ด ์กด์ฌ vector svg ํ์ฅ์๋ฅผ ๊ฐ์ง ํ์ผ๋ก xml code๋ก ์ด๋ฃจ์ด์ง ๋์ฒด๋ก ์ฉ๋์ด ์์ ์ด๋ค ํฌ๊ธฐ์๋ ์๊ด ์์ (ํฌ๊ธฐ์ ๊ตฌ์ ๋ฐ์ง ์์) →..

[Android] AOS ART, Garbage Collector ๋ฐฉ์
2023.04.07
Android Linux ๊ธฐ๋ฐ ART(Android Runtime)์ด java๋ก ๋์๊ฐ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ฐ๋
๋ Java ๋ฐฉ์์ ์ฌ์ฉ ART? ART๋ Android 5.0 (API ๋ ๋ฒจ 21) ์ด์์ด ์คํ๋๋ ๊ธฐ๊ธฐ์ ๊ธฐ๋ณธ ๋ฐํ์. ์ด ๋ฐํ์์ Android ํ๋ซํผ๊ณผ ์ฑ์ ์ฑ๋ฅ, ์ ์ฐ์ฑ์ ๊ฐ์ ํ๋ ์๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณต. ์๋๋ก์ด๋์์ ์ฌ์ฉ๋๋ Dalvik VM์ ํ๊ณ์ ์ ๊ทน๋ณตํ๊ธฐ ์ํด ์๋ก ๊ฐ๋ฐ๋ ๋ฐํ์ ART์ ๊ธฐ๋ฅ ์ค ํ๋์ธ ๊ฐ๋น์ง ์ปฌ๋ ์
(GC) ๊ฐ์ GC๋ ๋ฆฌ์์ค ์ง์ฝ์ ์ด๋ฏ๋ก ์ฑ ์ฑ๋ฅ์ ์ ํ์์ผ ํ๋ฉด ๋๊น, UI ์๋ต์ฑ ๋ถ์กฑ ๋ฑ์ ๋ฌธ์ ๊ฐ ์ผ์ด๋จ. ART์์๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ฐ ์กฐ๊ฐํ๋ฅผ ์ค์ด๊ธฐ ์ํ ๋์ ๋ณต์ฌ, ๋จ์ผ GC ์ผ์์ค์ง๊ฐ ์๋ ๋์ ์คํ ์ค๊ณ… ๋ฑ์ ๋ฐฉ๋ฒ์ผ๋ก GC๋ฅผ ๊ฐ์ ART ๋ฐฉ์? m..

[etc] vi editor ๊ฐ๋จํ ๋ช
๋ น์ด
2023.04.07
vi editor ํ์ผ ์ด๊ธฐ vi example.txt //์ผ๋ฐ ์ด๊ธฐ open -a Sublime\ Text example.txt //GUI ๊ธฐ๋ฐ ์๋ํฐ๋ก ์ด๊ธฐ //ํ! ์๋์ ๊ฐ์ด alias๋ฅผ ๋ง๋ค์ด๋๊ณ ์ฌ์ฉํ๊ธฐ๋ ํจ alias sublime='open -a Sublime\ Text' vi ํ์ผ ์ ์ฅ ๋ฐ ์ข
๋ฃ ํธ์ง ๋ชจ๋ > ESC > :wq (์ ์ฅ ํ ์ข
๋ฃ) :w ์ ์ฅ :q ์๋ฌด ์์ ์์
ํ์ง ์์๊ฑฐ๋ ์ด์ ์ :w๋ก ์ ์ฅํ ํ ์ข
๋ฃํ๊ณ ์ถ์ ๊ฒฝ์ฐ :wq ์ ์ฅ ํ ์ข
๋ฃ :q! ์ ์ฅํ์ง ์๊ณ ์ข
๋ฃ line number :set number :set nonumber //number ๋ค์ ๊ฐ์ถ๊ณ ์ถ์ ๊ฒฝ์ฐ ํธ์ง ๋ชจ๋ (Insert Mode, Edit Mode) ํธ์ง ๋ชจ๋์ ์ตํ๋จ๋ถ์๋ “ํ์ผ ์ด๋ฆ” ๋ผ์ธ์,..