2. ๋ฆฌ์์ค ํ์ผ
: ์ ํ๋ฆฌ์ผ์ด์
๋ฆฌ์์ค(ex. ์ด๋ฏธ์ง ๋๋ ๋ฌธ์์ด)๋ฅผ ์ฝํ๋ฆฐ ์ฝ๋์์ ๋ถ๋ฆฌํ๊ณ ๋
๋ฆฝ์ ์ผ๋ก ์ ์ง/๊ด๋ฆฌํ ์ ์๋๋ก ํด์
๋ค์ํ ํ๊ฒฝ ๋ณํ(ex. ํ๋ฉด ํฌ๊ธฐ ๋ณํ ๋๋์ฌ์ฉ ์ธ์ด ๋ณ๊ฒฝ)๋ฅผ ์ฝ๋์ ๋ณ๊ฒฝ ์์ด ์์ฉํ ์ ์์
// ex. ์ฌ๋ฌ ๊ฐ์ง ํ๋ฉด ํฌ๊ธฐ์ ๋ฐ๋ผ ์ฌ๋ฌ UI ๋ ์ด์์์ ๋ฆฌ์์ค ํ์ผ๋ก ์ ๊ณตํ๊ฑฐ๋,
์ธ์ด ์ค์ ์ ๋ฐ๋ผ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ฌธ์์ด์ ๋ฆฌ์์ค ํ์ผ๋ก ์ ๊ณต
2. ๋ฆฌ์์ค ํด๋
1) drawable : ์ด๋ฏธ์ง ๋ฆฌ์์ค
2) layout : UI ๊ตฌ์ฑ์ ํ์ํ XML ๋ฆฌ์์ค
3) mipmap : ์ฑ ์์ด์ฝ ์ด๋ฏธ์ง
4) values : ๋ฌธ์์ด ๋ฑ์ ๊ฐ์ผ๋ก ์ด์ฉ๋๋ ๋ฆฌ์์ค
// ex. activity_main.xml : res/layout ํด๋์ ์์นํ, ํ๋ฉด์ ๋ ์ด์์์ ์ ์ํ xml ํ์ผ

// ConstraintLayout ์์ ํ๋์ TextView ์์๊ฐ ํฌํจ๋ ํ๋ฉด ๋์์ธ์ ๋ํ๋
// ConstraintLayout : ๋ด๋ถ์ ํฌํจ๋๋ ์์ ฏ์ ์์น, ํฌ๊ธฐ๋ฅผ RelativeLayout๋ณด๋ค ์ ์ฐํ ๋ฐฉ์์ผ๋ก ๊ฒฐ์ ํ๋ ๋ทฐ ๊ทธ๋ฃน
// TextView๋ ๋ฌธ์์ด์ ํ์ํ๋ ์์ ฏ (android:text ์์ฑ์ ์ง์ ๋ ๋ฌธ์์ด Hello World! ๋ฅผ ํ์)
3. ์ฃผ์
1) res ํ์์ ํด๋๋ช ์ ์ง์ ๋ ํด๋๋ช (ex. drawable/, layout/ ... )์ ์ฌ์ฉํด์ผ ํจ
2) ๊ฐ ๋ฆฌ์์ค ํด๋์ ๋ค์ ํ์ํด๋๋ฅผ ์ ์ํ ์ ์์
3) ๋ฆฌ์์ค ํ์ผ ๋ช ์๋ ์ํ๋ฒณ ๋๋ฌธ์๋ฅผ ์ฌ์ฉํ ์ ์์
4) ํ์ผ-๋ฒ ์ด์ค ๋ฆฌ์์ค๋ช ์ ์ํ๋ฒณ ์๋ฌธ์์ ์ซ์ 0~9, _ ๋ง ์ฌ์ฉ ๊ฐ๋ฅํจ
4. aapt ๋๊ตฌ
: ์ ํ๋ฆฌ์ผ์ด์ ๋ฆฌ์์ค๋ฅผ ์ปดํ์ผํ์ฌ ์ปดํ์ผ ๋ ๋ฆฌ์์ค(Rํด๋์ค์ ํจํค์ง ๋ ๋ฆฌ์์ค ํ์ผ)์ ์์ฑํจ
- R.java
: aapt ๋๊ตฌ์ ์ํด ์๋์ผ๋ก ์์ฑ๋ ํ์ผ
- Rํด๋์ค๋ ๋ฆฌ์์ค๋ฅผ kotlin ํ๋ก๊ทธ๋จ์์ ์ ๊ทผํ๊ธฐ ์ํ ๋ฆฌ์์ค ID๋ฅผ ์ ์
public final class R{
...
public static final class layout{
...
public static final int activity_main=0x7f09001b;
...
}
...
}
3. ์ฝํ๋ฆฐ ์์ค ํ์ผ
: MainActivity.kt
= ์๋๋ก์ด๋ ํ๋ก์ ํธ ์์ฑ ์ ์๋์ผ๋ก ๋ง๋ค์ด์ง ์ฝํ๋ฆฐ ํ์ผ
1) ํจํค์ง ์ด๋ฆ
: MainActivity ํด๋์ค๊ฐ ์ํ ํจํค์ง
- ์๋๋ก์ด๋ ํ๋ก์ ํธ ์์ฑ ์์ ์ค์ ๋ ์ด๋ฆ
- ํจํค์ง๋ช
์ด ์ค๋ณต๋๊ฒ ์์ฑ๋ ์๋ ์์
package com.jblee.helloworld
2) MainActivity ์กํฐ๋นํฐ์ ๋ํ ํด๋์ค ์ ์
: ์๋๋ก์ด๋ ์กํฐ๋นํฐ๋ Activity์ ์๋ธํด๋์ค์
- AppCompatActivity๋ Activity์ ์๋ธํด๋์ค๋ก์ ํ์ ํ๋ซํผ ๋ฒ์ ์ ์ง์
class MainActivity : AppCompatActivity(){
// override fun onCreate(savedInstanceState: Bundle?){
// super.onCreate(savedInstanceState)
// setContentView(R.layout.activity_main)
// }
}
3) MainActivity ์กํฐ๋นํฐ๊ฐ ์์ฑ๋ ๋ ์ํ๋๋ ๋ฉ์๋ (์๋๋ก์ด๋ ํ๋ซํผ์ด ํธ์ถํ๋ ๋ฉ์๋)
: ์๋๋ก์ด๋ ํ๋ซํผ์ด ํธ์ถํ๋ ๋ฉ์๋. ์กํฐ๋นํฐ๊ฐ ์์ฑ๋๋ ์๊ฐ์ ๋ฑ ํ ๋ฒ ํธ์ถ๋จ
- ์ฃผ๋ก ์กํฐ๋นํฐ์ ๊ด๋ จ๋ ๋ณ์ ์ด๊ธฐํ ๋ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ค์ ์ฝ๋๋ฅผ ํฌํจํจ
//class MainActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?){
super.onCreate(savedInstanceState)
// setContentView(R.layout.activity_main)
}
//}
4) activity_main.xml์ ์ ์๋ ํ๋ฉด ๋ ์ด์์์ MainActivity์ ์ปจํ ์ธ ๋ทฐ๋ก ์ค์
: R.layout.activity_main์ด ๊ฐ๋ฆฌํค๋ ๋ฆฌ์์ค๋ฅผ ์ด ์กํฐ๋นํฐ์ ์ฝํ ์ธ ๋ทฐ๋ก ์ฌ์ฉํ๊ฒ ๋ค๋ ์๋ฏธ
- R.layout.activity_main์ res/layout ํด๋์ activity_main.xml ์ ๊ฐ๋ฆฌํค๋ ์ ์ ์์ (Rํด๋์ค์์ ์ ์๋จ)
//class MainActivity : AppCompatActivity(){
// override fun onCreate(savedInstanceState: Bundle?){
// super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// }
//}