728x90 ๋ฐ์ํ ๐ Development/Android16 [Android] MVVM (Model-View-ViewModel) ํจํด์ด๋? ์์ ํฌํจ MVVM (Model-View-ViewModel) ์ด๋?MVVM์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ ์์ ์ธ ๋ถ๋ถ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ํ ์คํธํ๊ณ , ์ ์ง๋ณด์ํ๊ณ , ํ์ฅํ ์ ์๋๋ก ๋๋ ๋์์ธ ํจํด์ ๋๋ค.Model (๋ชจ๋ธ):์ญํ : ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ด๋นํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋คํธ์ํฌ API, ๋ฐ์ดํฐ ์กฐ์ ๋ฑ ๋ฐ์ดํฐ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ์ด ์ฌ๊ธฐ์ ํฌํจ๋ฉ๋๋ค.์๋๋ก์ด๋ ๊ตฌํ: Repository ํด๋์ค์ Data Class (Kotlin)๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํฉ๋๋ค.View (๋ทฐ): ์ญํ : ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋ UI (ํ๋ฉด)๋ฅผ ๋ด๋นํ์ฌ, ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๊ณ ViewModel์ ์ ๋ฌํฉ๋๋ค. Model์ด๋ ๋น์ฆ๋์ค ๋ก์ง์ ๋ํด ์์ง ๋ชปํ๊ณ , ๋จ์ํ ViewModel์ด ์ ๊ณตํ๋๋ฐ์ดํฐ๋ฅผ ํ์ํฉ๋๋ค.์๋๋ก์ด๋ ๊ตฌํ: Activity .. 2025. 10. 12. [Android] ๋คํธ์ํฌ ์์ ์ ๋น๋๊ธฐ ์์ ์ด ํ์ํ ์ด์ + ์ฝ๋ฃจํด(coroutine) 1. UI ์ฐจ๋จ(Block) ํ์์ ์๋ฆฌ์ ๋ฌธ์ ์ Android์ ์ค๋ ๋ ๋ชจ๋ธAndroid ์ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฉ์ธ ์ค๋ ๋(Main Thread)์์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)์ ๊ด๋ จ๋ ์์ ์ ์ํํฉ๋๋ค.์: ํ๋ฉด์ ๋ฒํผ ํ์, ์ฌ์ฉ์์ ํด๋ฆญ ์ด๋ฒคํธ ์ฒ๋ฆฌ.๋คํธ์ํฌ ์์ ์ ์ฃผ๋ก ์ค๋ ๊ฑธ๋ฆด ์ ์๋ ์์ ์ ์ํ๋ฉฐ, ๋ฉ์ธ ์ค๋ ๋์์ ์คํํ๋ฉด ๋ค๋ฅธ ์์ (ํนํ UI ๊ด๋ จ ์์ )์ด ๋๊ธฐ ์ํ์ ๋ค์ด๊ฐ๋๋ค.UI ์ฐจ๋จ(Blocking)์ ์์ธ๋คํธ์ํฌ ์์ ์ ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ๋ ๋์ ์ธ๋ถ ์๋ฒ์์ ํต์ ์ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค.์) ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ฑฐ๋, ๋คํธ์ํฌ ์ง์ฐ(Latency)์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ.์ด ๋์ ์ฑ์ ๊ฒฐ๊ณผ๊ฐ ๋ฐํ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ์๋ฌด๊ฒ๋ ํ์ง ๋ชปํ๋ ์ํ๊ฐ ๋ฉ๋๋ค.๋ฉ์ธ ์ค๋ ๋๊ฐ ์ด ๋๊ธฐ ์์ ์ ๋ฌถ์ด๊ฒ ๋๋ฉด UI ์ .. 2024. 11. 25. [Android] startActivityForResult ๋ฉ์๋๊ฐ Deprecated๋ ์ด์ ์ ํด๊ฒฐ๋ฐฉ์ + ์นด๋ฉ๋ผ ์ฌ์ฉ ๋ฐ ์ด๋ฏธ์ง๋ทฐ ์์ startActivityForResult๊ฐ Deprecated๋ ์ด์ startActivityForResult ๋ฉ์๋๊ฐ Deprecated(์ฌ์ฉ ์ค๋จ)๋ ์ด์ ๋ Activity Result API๋ฅผ ๋์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.์๋ก์ด API๋ ๋ ๊ฐ๊ฒฐํ๊ณ ์ ์ง๋ณด์์ ์ฉ์ดํ๋ฉฐ, ๊ฒฐ๊ณผ ์ฒ๋ฆฌ๋ฅผ Lifecycle-aware ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ ์ ์์ด ํ๋์ ์ธ Android ๊ฐ๋ฐ์ ์ ํฉํฉ๋๋ค.๋ ์์ ํ ๊ฒฐ๊ณผ ์ฒ๋ฆฌ: startActivityForResult๋ ์ฝ๋ฐฑ์ onActivityResult๋ก ์ ๋ฌํ์ง๋ง, Activity ๋๋ Fragment๊ฐ Lifecycle-aware ํ์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฐ ์๋ํ์ง ์์ ๋์์ด ๋ฐ์ํ ์ ์์์ต๋๋ค.๋ช ํํ ๊ฒฐ๊ณผ ๊ด๋ฆฌ: ์๋ก์ด API๋ ๋ช ์์ ์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฑ๋กํ๊ณ Lifecycle .. 2024. 11. 21. [Android/Kotlin] ์๋๋ก์ด๋ ๊ตฌ๊ธ ์ ๋๋ชน(admob) ๊ด๊ณ ๋ฃ๋ ๋ฒ 1. ์ ๋๋ชน ํ์๊ฐ์ / ์ฑ ๋ฑ๋ก ๊ตฌ๊ธ ์ ๋๋ชน ํ์๊ฐ์ ์ ํ๋ฉด ์ฒซ ํ์ด์ง์ ์๋์ ๊ฐ์ด ๋์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ฑ ์ถ๊ฐ๋ฅผ ๋๋ฆ ๋๋ค. 2. ์ ๋๋ชน - ๊ด๊ณ ๋จ์(์ ๋ฉด, ๋ฐฐ๋ ๊ด๊ณ ์ถ๊ฐ) 3. Android ์ฝ๋ ์ถ๊ฐ build.gradle (Module: app) ๊ตฌ๊ธ ์ ๋๋ชน(google admob) dependencies๋ฅผ ์ถ๊ฐํด์ค๋๋ค. dependencies { // ์ถ๊ฐํ๊ธฐ implementation 'com.google.android.gms:play-services-ads:22.6.0' } AndroidManifest.xml AndroidManifest ํ์ผ์ application ํ๊ทธ์์ meta-data๋ฅผ ์๋์ ๊ฐ์ด ์ ๋ ฅํฉ๋๋ค. value ๊ฐ์ ํ ์คํธ ๊ด๊ณ ID๋ฅผ ์ ๋ ฅํ์ต๋๋ค. ๊ตฌ๊ธ ์ ๋๋ชน(goo.. 2024. 3. 2. ์ด์ 1 2 3 4 ๋ค์ 728x90 ๋ฐ์ํ