# ๋ ์ด์์ : ์ปจ์คํธ๋ ์ธํธ ๋ ์ด์์(Constraint Layout) ๊ฐ์ ๋ฐ ์ค์ต(1), ์กํฐ๋นํฐ(Activity)
# ๋ ์ด์์ : ์ปจ์คํธ๋ ์ธํธ ๋ ์ด์์(Constraint Layout) ๊ฐ์ ๋ฐ ์ค์ต(1)
: ์๋๋ก์ด๋์ ๊ธฐ๋ณธ ๋ ์ด์์์ผ๋ก, ํ๋ฉด์ ๋ฐฐ์น๋๋ ์์ ฏ๋ค ์ฌ์ด ๊ฐ๋จํ ์ ์ฝ์กฐ๊ฑด์ ์ค์ ํ๋ ๊ฒ๋ง์ผ๋ก๋ ํ๋ฉด์ ๊ตฌ์ฑํ ์ ์๊ฒ ํ๋ค.
--> ์๋ ์์น๋ฅผ ์ง์ ํ๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ๊น์ผ๋ฉฐ, ์ฃผ์ด์ง ์์ ฏ์ ํ ์์ ฏ์ ์๋์ ์ผ๋ก ๋ฐฐ์นํ๋ค.
- ๋ ์ด์์ ์๋ํฐ์ ๊ธฐ๋ณธ ํ๋ฉด
ํ๋ ํธ ์ฐฝ | ๋ ์ด์์ ๋์์ธ ์ ํ์ํ ๋ทฐ ์ ๊ณต |
์ปดํฌ๋ํธ ํธ๋ฆฌ ์ฐฝ | ๋ ์ด์์์ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ๋ณผ ์ ์์ |
UI ํธ์ง(๋์์ธ) ์ฐฝ | ๋ทฐ๋ฅผ ๋ฐฐ์นํ์ฌ ๋ ์ด์์์ ์์ฑํ๋ ํ๋ฉด |
์์ฑ ์ฐฝ | ์์ฑ์ ์ค์ ํ๋ ์ฐฝ |
+ UI ํธ์ง์ฐฝ์ ๊ฒฝ์ฐ Design, BluePrint, Design+BluePrint 3๊ฐ์ง ๋ชจ๋๊ฐ ์กด์ฌํ๋ค.
+ ์์ฑ ์ฐฝ์ ๊ฒฝ์ฐ ๋์์ธ ์ฐฝ์ ๋ฐฐ์น๋ ๋ทฐ๋ฅผ ํด๋ฆญํจ์ผ๋ก์จ ํ์๊ฐ ๊ฐ๋ฅํ๋ค.
+ ์ ์ฝ์ด ์ค์ ๋ ๋ฐฉํฅ์๋ 1๋ฒ๊ณผ ๊ฐ์ด ์ฌ๋ฐฑ์ด ํ์๋๋ฉฐ, ์ ์ฝ์ ์ญ์ ํ ๋์๋ ๋ทฐ์ 4๋ฉด์ ์๋ 2๋ฒ์ ํด๋ฆญํ๋ค.
--> ๊ธธ์ด์ ๋ํ ์ ์ฝ์ 4๋ฉด์ 3๋ฒ์ ํด๋ฆญํ์ฌ ์ค์ ํ๋ฉฐ, 7๋ฒ๊ณผ 8๋ฒ์์ ์ํ๋ ์ค์ ์ ์ง์ ์ ํํ ์๋ ์์.
+ 4๋ฒ๊ณผ 5๋ฒ์ ์, ํ, ์ข, ์ฐ์ ์ ์ฝ์ด ์์ ๊ฒฝ์ฐ์๋ง ๋ํ๋๋ฉฐ, ์ด๋ฅผ ์ด์ฉํด ์ฌ๋ผ์ด๋ํ์ฌ ๋ทฐ์ ์์น๋ฅผ ์๋์ ์ผ๋ก ๊ฒฐ์ ํ ์ ์์
--> 6๋ฒ ๋ทฐ์ ID๋ฅผ ์ง์ ํ๋ฉด Kotlin ์ฝ๋์์ ์ฐธ์กฐ ๊ฐ๋ฅ
- UI ํธ์ง์ฐฝ ์ถ๊ฐ ์์
ํธ๋ค๋ฌ (Handler) | ์์ ฏ ์, ํ, ์ข, ์ฐ์ ์์นํ 4๊ฐ์ ์ |
์ปจ์คํธ๋ ์ธํธ (Constraint) | ์์ ฏ๊ณผ ํ ์์ ฏ์ ํธ๋ค๋ฌ ๋๋ ๋ ์ด์์๊ณผ ์ฐ๊ฒฐ๋ ์ |
์ต์ปค ํฌ์ธํธ (Anchor Point) | Constraint๊ฐ ์ฐ๊ฒฐ๋ ์ ์๋ ๋ถ์ |
+ ์ปจ์คํธ๋ ์ธํธ ํธ์ง๊ธฐ์ ํฌ๊ธฐ ์กฐ์ ํธ๋ค๋ฌ
ex) ํธ์ง์ฐฝ์ ์ด์ฉํ์ฌ ๋ฒํผ ์ถ๊ฐํ๊ธฐ
- ๊ฐ์ด๋๋ผ์ธ(GuideLine)
: ์ปจ์คํธ๋ ์ธํธ ๋ ์ด์์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ ๋ณด์กฐ ๋๊ตฌ๋ก, ๊ฐ๋ก ๋ฐ ์ธ๋ก ๊ฐ์ด๋๋ผ์ธ์ ํ๋ฉด ์ ์์์ ์์น์ ๋๋๊ทธํ ๋ ๋ ์ด์์์ ๋ฐฐ์น๋๋ ์์ ฏ์ด ๋ํด ๊ฐ์์ ์ต์ปค ํฌ์ธํธ๋ฅผ ์ ๊ณตํ๋ค.
ex) ๋ฒํผ์ ๊ฐ์ด๋๋ผ์ธ ์ถ๊ฐํ๊ธฐ
# ๋ ์ด์์ : ์กํฐ๋นํฐ(Activity)
: ํ๋ฉด์ ๊ตฌ์ฑํ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ปดํฌ๋ํธ๋ก, ์ฑ์ ์คํํ ๋ ๋ณด์ฌ์ง๋ ํ๋ฉด์ ๊ตฌ์ฑํ ์ ์๋๋ก ํด์ฃผ๋ Android ๊ตฌ์ฑ ์์ ์ค ํ๋
--> App์ 1๊ฐ ๋๋ ์ฌ๋ฌ ๊ฐ์ ์กํฐ๋นํฐ๋ก ๊ตฌ์ฑ๋๋ค.
- ์กํฐ๋นํฐ ํด๋์ค (Activity Class)
: Android์ Activity ํด๋์ค๋ฅผ ์์ํ ํด๋์ค๋ฅผ ์๋ฏธํ๋ฉฐ, Activity๋ FragmentActivity, AppCompatActivity ๋ฑ ๋ค์ํ ์กํฐ๋นํฐ ํด๋์ค๊ฐ ์กด์ฌํ๋ค.
ex) ํ์ ํธํ์ฑ์ ์ํด AppCompatActivity ํด๋์ค๋ฅผ ์ฌ์ฉํ ์ฌ๋ก
class MainActivity : appCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
- ์กํฐ๋นํฐ์ ๋ ์ด์์ ํ์ผ ๊ฐ ์ ํ๋ฒ
: ์ฝ๋ ํ์ผ์ ๋ ์ด์์ ์์ด์ฝ์ ํด๋ฆญํ์ฌ ์ฐ๊ด๋ ๋ ์ด์์ XML ํ์ผ๋ก ์ ํํ ์ ์๋ค.
# ๋ ์ด์์ : ์ปจ์คํธ๋ ์ธํธ ๋ ์ด์์(Constraint Layout) ์ค์ต(1)
1. Text View ๋ฐฐ์นํ๊ธฐ
โ ์์ ๋ชจ์์ ์์ด์ฝ์ ํด๋ฆญํ์ฌ Autoconnect ๋ชจ๋๋ฅผ ์ผ ๋ค.
โก ํ๋ ํธ ์ฐฝ์์ TextView๋ฅผ ๋๋๊ทธํ์ผ ์ ์ค์์ ์์น์ํจ๋ค.
2. ์์ฑ์ฐฝ์์ ๋ฌธ์์ด ๋ด์ฉ ๋ณ๊ฒฝํ๊ธฐ
3. ์์ฑ์ฐฝ์์ ๋ฌธ์์ด ํฌ๊ธฐ ๋ณ๊ฒฝํ๊ธฐ
--> ๊ธ์ ํฌ๊ธฐ๊ฐ ์ปค์ง ๊ฒ์ ํ์ธ ๊ฐ๋ฅ
4. ๋ฌธ์์ด์ ๋ฆฌ์์ค๋ก ๋ง๋ค๊ธฐ
โ ์ปดํฌ๋ํธ ํธ๋ฆฌ ์ฐฝ ์ “hello” ํ ์คํธ ๋ทฐ ์ฐ์ธก์ ๊ฒฝ๊ณ ์์ด์ฝ ํด๋ฆญ
โก Fix ๋ฒํผ์ ํด๋ฆญ --> ๋ฌธ์์ด์ ๋ฆฌ์์คํํ๋๋ก ๋์์ฃผ๋ ํ๋ฉด์ด ํ์๋จ
โข Resource name์ 'hello' ์ ๋ ฅ ํ OK๋ฅผ ํด๋ฆญํจ --> text ์์ฑ๊ฐ์ด @string/hello๋ก ๋ณ๊ฒฝ
โฃ ํ๋ก์ ํธ ์ฐฝ์์ res/values/strings.xml ํ์ผ ํด๋ฆญ --> ํ๋ก์ ํธ์์ ์ฌ์ฉ ์ค์ธ ๋ชจ๋ ๋ฌธ์์ด ๋ฆฌ์์ค ํ์ธ ๊ฐ๋ฅ