Windowsํ๊ฒฝ์์ ๋ช ๋ นํ๋กฌํํธ๋ก Path๊ฒฝ๋ก๋ฅผ ์ค์ ์ ํ์ฌ ์ง์ ์คํ์ํค๊ธฐ ์ํด Path๋ณ์๋ฅผ ์ถ๊ฐ๋ฅผ ํ์๋ค.์์๋ ๋ค์๊ณผ ๊ฐ๋ค.์๋๋ก์ด๋ ์คํ๋์ค์ ๋ค์ด๊ฐ ์ ํ ์ ๋ค์ด๊ฐ ํ Android SDK์ ๋ค์ด๊ฐ๋ฉด Android SDK Location์ชฝ์ ๋ณด๋ฉด ํ์ธ์ด ๊ฐ
1.๋ฉ๋ด->์ ํ ->Memoey Settings ์ ๋ค์ด๊ฐ ์ค์ ์ด ๊ฐ๋ฅํ๋ค.์ฒ์ default๊ฐ์ 1280MB ๋ฐ์ดํธ๋ก ์ค์ ์ด ๋์ด์์ง๋ง Heap ์ฌ์ด์ฆ๋ฅผ 2048 MB๊น์ง ๋๋ ธ๋ค.<์ฐธ๊ณ ๋ธ๋ก๊ทธ>https://new93helloworld.tistory.co
์ ํ -> Editor -> General -> Auto Import Optimize imports on the fly ์ Add unambiguous imports on the fly ์ ํAdd unambiguous imports on the fly : ์๋์ผ๋ก im
์ค๋ ์ค์์ ๋ง์๋ฉ๋ก๋ก ๋ฎ์ถ๊ณ ์ถ์ด์ API ๋ ๋ฒจ์ ๋ฐ๊พธ๋ ๋ฒ์ ๊ธฐ๋กํ๋ค.Gradle Scripts -> build.gradle(Module:) ์ด์ชฝ์ ๋ค์ด๊ฐ์ minSdk๋ฅผ ๋ณ๊ฒฝํด์ค๋ค.๋ณ๊ฒฝํด ์ฃผ๋ฉด ์์ชฝ์ ๋ฉ์์ง๊ฐ ๋จ๋ฉด Sync Now ๋ฒํผ์ ๋๋ฌ์ค๋ค.
๐kotlinx.android.synthetic.main.activity_linstener.\* Import ์๋ ๋
๐Actionbar ์ ๊ฑฐ๋ฐฉ๋ฒ 1.values -> themes๋ก ์ด๋ 2. ๋ฐ์ ์๋ก์ด ์คํ์ผ ์ ์ํ๊ธฐ 3. ์๋กญ๊ฒ ์ ์ํ ํ ๋ง ์ด๋ฆ์ ๋ณต์ฌํ AndroidManifest.xml ํ์ผ๋ก ์ด๋ํ๋ค. 4. activity android:name=".MainActi
ViewPager2๋ ViewPager์ ๊ฐ์ ๋ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ ViewPager๋ ์ ๋ฐ์ดํธ๊ฐ ์ค๋จ๋ ์ํฉ์ด์ง๋ง ViewPager2๋ ๊ณ์ํด์ ์ ๋ฐ์ดํธ๊ฐ ์งํ๋๋ฉด์ ํฅ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.ViewPager2๋ ViewPager์ ๋ค๋ฅด๊ฒ RecyclerView๊ธฐ๋ฐ
๐์๋ฎฌ๋ ์ดํฐ ์ด๊ธฐํํ๋ ์ด์
github์์ swipe animation์ ์ฌ์ฉํ ๋ ค๊ณ ์ค์น๋ฅผ ์๋ํ๋ ์ค ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์์ต๋๋ค.๋ฐ๋ก ๊ตฌ๊ธ๋ง์ ํตํด ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ ์๋๋ฅผ ํด๋ณด์์ง๋ง ๋ค ์คํจํ๋ค๊ฐ github Issues ์์ ํด๊ฒฐ๋ฐฉ๋ฒ์ ํด๋ณด์๋๋ฐ ์ค๋ฅ๊ฐ ์กํ์ต๋๋ค.์์ธ์ Google
๋ค์ด๋ฒ ์ง๋ API ์ฌ์ฉํด ์ง๋๋ฅผ ๋์ด ๋ณผ๋ ค๊ณ ํ๋๋ฐ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ณ๋ค..๋ด์ฉ์ ์ฝ์ด๋ณด๋ฉด Manifest์ ๋ฌธ์ ๊ฐ ์๊ธด๊ฑฐ ๊ฐ์ต๋๋ค.Manifest.xml์ ๋ค์ด๊ฐ ํ๋จ์ชฝ Merged Manifest ํญ์ ๋ค์ด๊ฐ ์๋ฌ ๋ด์ฉ์ ์ฝ์ด๋ณด๋ 'tools:replace="
์ก์ ๋ฐ๋ฅผ ์ง์ฐ๊ณ statusBar์์์ ํฐ์์ผ๋ก ๋ฐ๊พธ์๋๋ฐ statusBar์ ์๋ ์์ด์ฝ๋ค์ด ํฐ์์ด๋ผ statusBar์์๊ณผ ๊ฒน์ณ ๋ณด์ด์ง ์์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.ํด๊ฒฐ๋ฐฉ๋ฒ์ ๊ฐ๋จํ์ต๋๋ค. <item name = "android:windowLightStatusB
BottomNavigationView๋ ํ๋ฉด ๋ฐ์ ์๋ ๋ค์ด๊ฒ์ด์ ์ญํ ์ ํ๋ ๋ฒํผ ๋ชจ์์ด๋ค.๊ฐ๊ฐ์ ๋ฒํผ์ ๋๋ ์ ๋ ๋ ์ด์์์ fragment๋ฅผ ๋ถ์ผ ์ ์๋ค.์กํฐ๋นํฐ์ ๋ค๋ฅด๊ฒ App์ UI์ค์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒ์ ์๋ผ์ ๋ ๋ฆฝ์ ์ธ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง ๋ ์ด์์์ด๋ค. ๊ทธ๋์
Activicy๊ฐ ์์ฑ, ์ ์ง, ์ฌ์, ์ข ๋ฃ ๋ฑ ์ฌ๋ฌ ์ํ ๊ฐ์ ์ ํํ๊ธฐ ์ํด 6๊ฐ์ง ์ฝ๋ฐฑ์ผ๋ก ๊ตฌ์ฑ๋ ํต์ฌ ์ธํธ๋ฅผ ์ ๊ณตํ๋ค. Activity๊ฐ ์๋ก์ด ์ํ์ ๋ค์ด๊ฐ๋ฉด ์์คํ ์ ๊ฐ ์ฝ๋ฐฑ์ ํธ์ถํ๋ค.์ฝ๋ฐฑ์ ์์ฐจ์ ์ผ๋ก ์งํ๋๋ฉฐ ๋จ๊ณ๋ฅผ ๊ฑด๋๋ธ ์ ์๋ค.https:/
๐ ์ค๋ฅ๋ด์ฉ ๊ธ๊ผด์ ๋ฐ๊พธ๋ ๊ณผ์ ์์ ์์ด์ฝ์ด๋ ํ ์คํธ๊ฐ ์์น๊ฐ ๋ฐ๋๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์์ต๋๋ค. ์ ๋ ์์ด์ฝ์ด ์ ํ ์คํธ๊ฐ ์๋๋ก ๋ฐ๊พธ๊ณ ์ถ์ด์ ๊ฒ์์ ํตํด ํด๊ฒฐ๋ฒ์ ์ฐพ์์ต๋๋ค. ๐ ์ฝ๋ ๐ ํด๊ฒฐ๋ฐฉ์
๐Android Studio์์ MDํ์ผ ์ด๋ MarkDown ํ๋ฆฌ๋ทฐ ๋ณด์ด๊ฒ ํ๋ ๋ฐฉ๋ฒ Android Stduio ์๋จ์์ Help -> Find Action (Ctrl + shift + A = windows) Choose Boot Java Runtime for t
๐จ ์๋ก ์ ๊ฐ ์์ฃผ ์ด์ฉํ๋ App ์ค์ ์ฝ๋ฆฌ๋ผ๋ App์ด ์๋๋ฐ ์ฝ๋ฆฌ๋ฅผ ์คํํ ๋๋ง๋ค ๊ท์ฌ์ด ์ ๋๋ฉ์ด์ ์ด ํ์ด๋์ ์ฌ์ฉ์๋ฅผ ๋ง์ดํฉ๋๋ค. ํ์ ๊ท์ฌ์ด ๊ฒ๊ณผ ์๊ธฐ์๊ธฐํ ๊ฒ์ ์ข์ํ๋ ์ ๋ก์๋ ์ฝ๋ฆฌ๋ฅผ ์คํํ ๋๋ง๋ค ์.. ์ฌ๋ฐ๋ค? ์ด๋ฐ ์๊ฐ์ ๋ค๊ฒ ํ๋๋ฐ ์ฝ๋ฆฌ๋ ์์ ์ด
์๋ ํ์ธ์๐์ค๋๋ง์ TIL ์ด์ธ์ RecyclerView์ ๋ํ ์ฃผ์ ๋ก ๋ธ๋ก๊ทธ์ ์ถ๊ฐํ๋ ค ํฉ๋๋ค.RecyclerView๋ ์ด๋ฆ์ฒ๋ผ ํ๋ฉด์ ์คํฌ๋กค์ด ๋ ๋ ๋ทฐ๋ฅผ ํ๊ดดํ์ง ์๊ณ ๋ทฐ๋ฅผ ์ฌํ์ฉํ์ฌ ์๋ก์ด ์์ดํ ์ ๋ํ๊ฐ๊ฒ ํด์ค๋ค. ์ด๋ฌํ ์ด์ ๋ก ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค
์ค๋ RecyclerView์์ ์์ดํ ์ ํด๋ฆญํ์ ๋ Context Menu๋ฅผ ๋ณด์ด๊ณ ์์ดํ ์ ์ญ์ ๋ฅผ ํด์ฃผ๊ณ ์ถ์๋๋ฐ ์๊ฐ๋ณด๋ค ๊ตฌํํ๊ธฐ๊ฐ ์ด๋ ค์์ ๋ธ๋ก๊ทธ์ ๊ธฐ๋กํ๊ธฐ๋ก ๋ง์์ ๋จน์์ต๋๋ค.์ ๊ฐ ์ด๋ ค์ ๋ ๋ถ๋ถ์ Context Menu๋ฅผ ๋์ ๋๋ฐ ์ญ์ ๋ฉ๋ด๋ฅผ ๋๋ฅด๋ฉด NullP
๋ฌธ์ )GradleException: 'compileDebugJavaWithJavac' task (current target is 1.8) and 'kaptGenerateStubsDebugKotlin' task (current target is 17 )ํด๊ฒฐ)build.g
Fragment๋ฅผ ์ด์ฉํด ๋๋ฌผ์ ์์ ๋ฅผ ๋ง๋ค๋ฉด์ ๋์ด์ ๋ชธ๋ฌด๊ฒ๋ฅผ ์ ๋ ฅ๋ฐ๋ ๊ณณ์ด ์์๋๋ฐ ์ด ๋ถ๋ถ์ 0 ์ด์ ๊ฐ์ ๋ฐ์ ์ ์๋๋ก ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํ๊ณ ์ถ์ด์ ์ฐพ์๋ดค๋๋ฐ ๋ณ๊ฒฝ๋๋ ํ ์คํธ๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ธํ์ฌ ์ฌ๋ฐ๋ฅธ ํ์์ผ๋ก ํ ์คํธ๋ฅผ ์ ๋ ฅํ๋์ง ๋ฑ์ ํ์ธํ ์ ์๋ doAf
๐๋งค๋ํ์คํธ ๋ชจ๋ ์ฑ ํ๋ก์ ํธ๋ ์ต์๋จ์ AndroidManifest.xmlํ์ผ์ด ์์ด์ผ ํ๋ฉฐ ๋งค๋ํ์คํธ ํ์ผ์ Android ๋น๋ ๋๊ตฌ, Android ์ด์์ฒด์ ๋ฐ Google Playdp ์ฑ์ ๊ดํ ํ ์ ์ ๋ณด๋ฅผ ์ค๋ช ํ๋ค.์ฆ ๋งค๋ํ์คํธ๋ ์ฑ์ ํ๊ฒฝ ์ค์ ํ์ผ์ด๋ค.
App์ ๋ ์ด์์์ ๊ตฌ์ฑํ ์ ์๋ ๋ค์ํ ๋ทฐ์ ๋ทฐ ๊ทธ๋ฃน์ด๋ค.์ํ๋ ๋ทฐ๋ฅผ ํฐ์ ์์ ์ฐฝ์ ๋์ด ๋น๊ฒจ ์ฌ์ฉํ ์ ์๋ค.Common, Text, Buttons, Widgets, Layouts, Containers, Helpers, Google, Legacy ์นดํ ๊ณ ๋ฆฌ๋ก ๋๋
๐Layout์ด๋? ์ฌ์ ์ ์ผ๋ก ์ฐพ์๋ดค์ ๋ ๋ ์ด์์์ ๋ค์๊ณผ ๊ฐ์ด ๋์จ๋ค. > ์ถ์ฒ: https://terms.naver.com/entry.naver?docId=1087845&cid=40942&categoryId=33074 ๋์์ธ, ๊ด๊ณ ,ํธ์ง์์ ๋ฌธ์, ๊ทธ๋ฆผ ,
Android JetPack์์ ์ฑ์์ ํ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ฌ๊ธฐ์ ํ์์ด๋ ๊ณต์ ๋ฌธ์์ ๋ฐ๋ฅด๋ฉด ์ฌ์ฉ์๊ฐ ์ฑ ๋ด์ ์ฌ๋ฌ ์ฝํ ์ธ ๋ฅผ ํ์ํ๊ณ , ๊ทธ๊ณณ์ ๋ค์ด๊ฐ๋ค ๋์ฌ ์ ์๊ฒ ํ๋ ์ํธ์์ฉ์ ์๋ฏธํฉ๋๋ค.๋ผ๊ณ ๋์ ์๋๋ฐ ํ๋์ ํ๋ฉด์์ ๋ค๋ฅธ ํ๋ฉด
fragment์์ menu๋ฅผ ์ฐ๊ฒฐํ๋ ๊ณผ์ ์์ setHasOptionsMenu(true) ์ด ๋ถ๋ถ์ด deprecated ๊ฐ ๋์ด์ ํจ์๋ฅผ ํ๊ณ ๋ค์ด๊ฐ๋ deprecated ๋์์ผ๋ MenuProvider๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ์ ํ์์ด ๊ณต์๋ฌธ์์ ์ ํ์๋๋๋ก ๋ง๋๋ ๊ณผ์ ์ ๊ธฐ๋ก
App ํ๋ฉด์์ ํ๋ฉด ์ข์ธก ๋๋ ์ฐ์ธก์์ ํ๋ฒ๊ฑฐ ๋ฒํผ์ ๋๋ฅด๊ฑฐ๋ ์ฌ๋ผ์ด๋ํ์ฌ ์จ๊ฒจ์ง ๋ฉ๋ด๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ญํ ์ ํ๋ค.์ถ์ฒ : https://m3.material.io/components/navigation-drawer/overview ์ฐธ๊ณ ๋ฌธ์ : https
Binding์ด ๋ค์ด๊ฐ๊ธฐ ์ ์ findViewById๋ฅผ ์ ํ์๊ฐ ์๋ค. findViewById๋ ๋ ์ด์์์ ์๋ ๋ทฐ๋ฅผ ๋ฆฌ์์ค id๋ฅผ ํตํด ์ํ๋ ๋ทฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ ๋ฉ์๋์ด๋ค.๊ทธ๋ฌ๋ค๊ฐ ์ฝํ๋ฆฐ ์ธ์ด๋ฅผ ์ฐ๋ฉด์ kotlin-android-extensions๊ฐ ์ฐ์ด๊ธฐ ์
๐๋ฌธ์ ์
์ค๋๋ ์ผํ๋ชฐ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ํ์๋ถ์ด ์ ํ ์์ธ ํ์ด์ง์์ ์ต์ ์ ์ ํํ๊ณ ์ฃผ๋ฌธ ํ์ด์ง์์ ๋ค๋ก๊ฐ๊ธฐ๋ฒํผ์ ๋๋ฅด๊ณ ๋ค์ ์ต์ ์ ์ ํํ๋ฉด ์๋ ์๋ ์ต์ ์์ ๋ ์ถ๊ฐ๋๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.์ฝ๋๋ฅผ ์ดํด๋ณธ ๊ฒฐ๊ณผ ๋ค๋ก ๋์์ค๋ฉด์ ๋ค์ ํจ์๊ฐ ์คํ์ด ๋์ด ํ์ด์ด๋ฒ ์ด์ค์ ์๋
๐ ๋ฌธ์ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ด์ฉํด ๊ฐ๋ฐํ๋ค๊ฐ ์นด์นด์ค๋งต API ๋๋ฌธ์ ๊ฐค๋ญ์ ๊ธฐ๊ธฐ๋ก ์์ ์ ํ๋ ์ค splah ํ๋ฉด์ด ๋๋ฌด ๋น ๋ฅด๊ฒ ์ง๋๊ฐ์ ์ ๊ฐ ์ค๋นํ Gif ์ ๋๋ฉ์ด์ ์ด ์ ๋์ค์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๐ ์์ธ ์ ๊ฐ ๊ตฌํํ splash ํ๋ฉด์ ๊ณต์ ๋ฌธ์์์ ๋์์