-์๋๋ก์ด๋ ์ฑ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ์ปดํฌ๋ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค.
ํ๋์ ์ฑ์ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋๋ค.
=> ์๋๋ก์ด๋๋ ํด๋์ค๋ก ์ปดํฌ๋ํธ๋ฅผ ๊ฐ๋ฐํ๋ค!
=> ํ๋์ ํด๋์ค๊ฐ ํ๋์ ์ปดํฌ๋ํธ๊ฐ ๋๋ค!
-์ฑ์ ์ฌ๋ฌ ํด๋์ค๋ก ๊ตฌ์ฑ๋๋๋ฐ,
1) ์ปดํฌ๋ํธ ํด๋์ค: ๊ฐ๋ฐ์๊ฐ ๋ง๋ค์์ง๋ง, ์๋ช
์ฃผ๊ธฐ๋ฅผ ์๋๋ก์ด๋ ์์คํ
์์ ๊ด๋ฆฌ
2) ์ผ๋ฐ ํด๋์ค: ์ฑ ์คํ ์ ํด๋์ค์ ๊ฐ์ฒด ์์ฑ๋ถํฐ ์๋ฉธ๊น์ง ์๋ช
์ฃผ๊ธฐ ๊ด๋ฆฌ๋ฅผ ๊ฐ๋ฐ์ ์ฝ๋์์ ๊ด๋ฆฌ!(์์์ ๋ชฉ์ ์ผ๋ก ๋ง๋ ํด๋์ค)
< ์ปดํฌ๋ํธ >๊ฐ : ~ ํด๋์ค ์์๋ฐ๋๋ค!
-ํ๋ฉด์ ๊ตฌ์ฑํ๋ ์ปดํฌ๋ํธ๋ก, ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ UI ํ๋ฉด
=> ํ๋ฉด์ ์ถ๋ ฅ!!
-ํ๋์ ์ ํ๋ฆฌ์ผ์ด์
์๋ ์ต์ 1๊ฐ ์ด์์ Activity๊ฐ ์กด์ฌํด์ผ ํ๋ค.
-manifest ํ์ผ์ ์ ์ธ๋์ง ์์ Activity๋ ์์คํ
์ด ํ์ํ์ง ์์ผ๋ฉฐ, ์คํ๋์ง ์๋๋ค.
-์ฑ์ ํ๋ฉด์ ์๋๋ก์ด๋ํฐ์ ์ถ๋ ฅํ๋ ค๋ฉด Activity๋ฅผ ๋ง๋ค์ด์ผ ํ๋ฉฐ, ์ฑ์ด ์คํ๋๋ฉด Activity์์ ์ถ๋ ฅํ ๋ด์ฉ์ด ์๋๋ก์ด๋ํฐ์ ๋์จ๋ค.
-UI ์์ด ๋ฐฑ๊ทธ๋ผ์ด๋ ์์
์ ์ํํ๋ ๊ตฌ์ฑ์์์ด๋ค. Activity์ ๋น๊ตํ๋ฉด ์ดํด๊ฐ ์ฝ๋ค.
-Activity๊ฐ ์ฌ์ฉ์์๊ฒ ์ง์ ๋ณด์ด๋ ํ๋ฉด์ด๋ผ๋ฉด, Activity๊ฐ ์ข
๋ฃ๋์ด ์๋ ์ํ์์๋ ๋์ํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ตฌ์ฑ์์์ด๋ค.
-ํ๋ฉด ์ถ๋ ฅ ๊ธฐ๋ฅ์ด ์๋ค! ์๋น์ค๊ฐ ์คํ๋๋๋ผ๋ ํ๋ฉด๊ณผ ์๊ด์์ด ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ฅ์๊ฐ ์คํํด์ผ ํ ์
๋ฌด๋ฅผ ๋ด๋นํ๋ค.
-์ฑ ๋ด์์ ์ฌ์ฉํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ธฐ ์ํ ์ปดํฌ๋ํธ
-์ผ๋ฐ์ ์ผ๋ก ์ดํ๋ฆฌ์ผ์ด์
์์ ์๋ฃ๋ฅผ ์ ์ฅํ ๋ DB๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด ๋ ํ ์ดํ๋ฆฌ์ผ์ด์
๋ด์ ์ ์ฅ๋์ด ์๋ DB์๋ ํด๋น ์ฑ ์ธ์ ๋ค๋ฅธ ์ฑ์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ค. Contents Provider๋ ์ํ๋ ๋ฐ์ดํฐ๋ง ๊ณต์ ํ ์ ์๋๋ก ํด์ฃผ๋ ์ญํ ์ ํ๋ค.
-ex) ์นด์นด์คํก ์ฑ์์ ํ๋กํ ์ฌ์ง ๋ณ๊ฒฝํ ๋ Contents Provider๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค.
-system ์ ๋ฐ์์ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ์คํ๋๊ฒ ํ๋ ์ญํ ์ ํ๋ค.
-์ด๋ฒคํธ๋ฅผ ํ์ธํ๋ ๊ธฐ๋ฅ๋ง ๋ด๋นํ๊ณ , ์ฌ์ฉ์์๊ฒ ์ด๋ฒคํธ๋ฅผ ์๋ฆฌ์ง๋ ์๋๋ค. ๊ฐ๋ฐ์๋ ์ด๋ฅผ ์๋ฆฌ๊ธฐ ์ํด notification, Toast ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
-ํธ๋ํฐ์์ ์์ดํ ์ฐ๊ฒฐ์ด ํด์ ๋์์ ๊ฒฝ์ฐ ์๋น์ค์์ ์คํ๋๊ณ ์๋ ์์
์ ์ผ์์ ์งํ๋ ค๋ฉด, Broadcast receiver๋ฅผ ํตํด ์ด์ดํฐ ์ฐ๊ฒฐ์ด ํด์ ๋์๋ค๋ ์ ๋ณด๋ฅผ ์์ ํ๊ณ , ์๋น์ค๋ฅผ ์ข
๋ฃํ๋ค.
-ex) ๋ฐฐํฐ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋, ์คํฌ๋ฆฐ์ด ์บก์ณ๋ ๋, ํ์ผ ๋ค์ด๋ก๋๊ฐ ์๋ฃ๋์์ ๋ ๋ฑ์ ํ์๋ฅผ ์๋ต๋ฐ๋๋ค.
**์ปดํฌ๋ํธ๋ ์ฑ ์์์ ๋
๋ฆฝ๋ ์คํ ๋จ์์ด๋ค!
-์นด์นด์คํก ๋ชฉ๋ก ํ๋ฉด -> ์ฑํ
ํ๋ฉด์ผ๋ก ํ๋ฉด ์ ํ ์, ์ฝ๋๋ฅผ ๊ฒฐํฉํด์ ์ง์ ์คํํ๋ ๊ฒ์ด ์๋๋ผ, ์๋๋ก์ด๋ ์์คํ
์ ์๋ขฐํด์ ๋ ํด๋์ค๊ฐ ์๋ก ์ข
์๋์ง ์๊ณ , ๋
๋ฆฝํด์ ์คํ๋๊ฒ ํ๋ค.(๊ฐ์ ์คํ)
Android ๋น๋ ๋๊ตฌ, Android ์ด์์ฒด์ ๋ฐ Google Play์ ์ฑ์ ๊ดํ ํ์ ์ ๋ณด๋ฅผ ์ค๋ช ํ๋ค.
Android Studio๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ ๋น๋ํ๊ณ ์๋ค๋ฉด ๋งค๋ํ์คํธ ํ์ผ์ด ์์ฑ๋๊ณ , ์ฑ์ ๋น๋ํ๋ ๋์(ํนํ, ์ฝ๋ ํ ํ๋ฆฟ์ ์ฌ์ฉํ๋ ์์ ์์) ๋๋ถ๋ถ์ ๊ธฐ๋ณธ์ ์ธ ๋งค๋ํ์คํธ ์์๊ฐ ์ถ๊ฐ๋๋ค.
-๋งค๋ํ์คํธ ํ์ผ์ ๋ด์ฉ:
โญ ์ฑ์ ํจํค์ง ์ด๋ฆ
-์ผ๋ฐ์ ์ผ๋ก ์ฝ๋์ ๋ค์์คํ์ด์ค(ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ)์ ์ผ์น.
-์๋๋ก์ด๋ ๋น๋ ๋๊ตฌ๋ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ ๋ ์ด ์ด๋ฆ์ผ๋ก ์ฝ๋ entity์ ์์น๋ฅผ ํ์ธํ๋ค. ์ฑ์ ํจํค์งํ ๋ ๋น๋ ๋๊ตฌ๊ฐ ์ด ๊ฐ์ Gradle ๋น๋ ํ์ผ์ ์ ํ๋ฆฌ์ผ์ด์
ID๋ก ๋์ฒดํ๋ค. ์ด๋ ์์คํ
๊ณผ Google Play์์ ๊ณ ์ ํ ์ฑ ์๋ณ์๋ก ์ฌ์ฉ๋๋ค.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
//xmlns: XML์ ๋ค์์คํ์ด์ค ์ ์ธ
//์๋๋ก์ด๋ ํ์ค ๋ค์์คํ์ด์ค๋ก ์ ์ธ๋ ๊ฒ!
โญ ์ฑ์ ๊ตฌ์ฑ์์
-๋ชจ๋ ์กํฐ๋นํฐ, ์๋น์ค, Broadcast Receiver, ์ฝํ
์ธ ์ ๊ณต์ ํฌํจ
-๊ฐ ๊ตฌ์ฑ์์๋ Kotlin, Java ํด๋์ค์ ์ด๋ฆ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ์์ฑ์ ์ ์ํด์ผ ํ๋ค.
-์์ ์ด ์ฒ๋ฆฌํ ์ ์๋ ๊ธฐ๊ธฐ ๊ตฌ์ฑ์ ์ข
๋ฅ, ๊ตฌ์ฑ ์์๊ฐ ์ด๋ป๊ฒ ์์๋๋ ์ง ์ค๋ช
ํ๋ ์ธํ
ํธ ํํฐ์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ์ธํ ์ ์๋ค.
์ฑ์์ ์์ฑํ๋ ๊ฐ๊ฐ์ ์ฑ ๊ตฌ์ฑ ์์์ ๋ํด ๋งค๋ํ์คํธ ํ์ผ์์ ํด๋นํ๋ XML ์์๋ฅผ ์ ์ธํด์ผ ํฉ๋๋ค.
=> ์ปดํฌ๋ํธ๋ฅผ ๋งค๋ํ์คํธ ํ์ผ์ ๋ฑ๋กํด์ผ ์์คํ
์ด ์ธ์งํ ์ ์๋ค!
< activity > Activity์ ๊ฐ ํ์ ํด๋์ค. ์ด ํ๊ทธ ๋ด์ intent filter๊ฐ ์กด์ฌํ๊ณ , < intent-filter >ํ๊ทธ ์์๋ < action >๊ณผ < category >๊ฐ ์กด์ฌํ์ฌ ์ฒซ ํ๋ฉด์ ๊ฒฐ์ ํ๋ค.
< service > Service์ ๊ฐ ํ์ ํด๋์ค.
< receiver > BroadcastReceiver์ ๊ฐ ํ์ ํด๋์ค.
< provider > ContentProvider์ ๊ฐ ํ์ ํด๋์ค.
๋งค๋ํ์คํธ ํ์ผ์์ XML ์์๋ฅผ ์ ์ธํ์ง ์๊ณ ์ด ๊ตฌ์ฑ ์์๋ฅผ ํ์ ํด๋์ค๋ก ์ง์ ํ๋ฉด ์์คํ ์์ ์ด๋ฅผ ์์ํ ์ ์์ต๋๋ค.
=> ์ปดํฌ๋ํธ ํ๋ ๋น < >ํ๊ทธ ํ๋๋ก ๋ฑ๋กํด์, ๋ง์ฝ์ ์กํฐ๋นํฐ 10๊ฐ๋ฉด < activity > ํ๊ทธ 10๊ฐ ํด์ผ ํจ
โญ ์ฑ์ด ์์คํ
/๋ค๋ฅธ ์ฑ์ ๋ณดํธ ๋ถ๋ถ์ ์์ธ์คํ๊ธฐ ์ํ ๊ถํ
-๋ฐ๋์ ์์ด์ผ ํ๋ ๋ชจ๋ ๊ถํ ์ ์ธ
Android ์ฑ์ ๋ฏผ๊ฐํ ์ฌ์ฉ์ ๋ฐ์ดํฐ(์: ์ฐ๋ฝ์ฒ, SMS) ๋๋ ํน์ ์์คํ ๊ธฐ๋ฅ(์: ์นด๋ฉ๋ผ, ์ธํฐ๋ท ์ก์ธ์ค)์ ์ก์ธ์คํ๊ธฐ ์ํ ๊ถํ์ ์์ฒญํด์ผ ํฉ๋๋ค. ๊ฐ ๊ถํ์ ๊ณ ์ ํ ๋ ์ด๋ธ๋ก ์๋ณ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด SMS ๋ฉ์์ง๋ฅผ ๋ณด๋ด์ผ ํ๋ ์ฑ์ ๋งค๋ํ์คํธ์ ๋ค์๊ณผ ๊ฐ์ ์ค์ด ์์ด์ผ ํฉ๋๋ค.
<activity
android:name=".MainActivity"
//name: ์กํฐ๋นํฐ ํ์ ์์ฑ, ํด๋์ค ์ด๋ฆ์ ๋ฑ๋กํ๋ค.
=> ์ฌ๊ธฐ์๋ MainActivity ํด๋์ค๋ฅผ ์กํฐ๋นํฐ๋ก ๋ฑ๋กํ๋ค๋ ๊ฒ์ ์๋ฏธ!์ (.)์ <manifest> ํ๊ทธ์ ๋ฑ๋กํ MainActivity๊ฐ ํจํค์ง ๊ฒฝ๋ก์ ์์์ ์๋ฏธํ๋ค.
โญ ์ฑ์ ํ์ํ ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด ๊ธฐ๋ฅ
-์ด์ ๋ฐ๋ผ ์ฑ์ Google Play์์ ์ค์นํ ์ ์๋ ๊ธฐ๊ธฐ์ ์ข
๋ฅ๊ฐ ๋ฌ๋ผ์ง๋ค.
๋งค๋ํ์คํธ ํ์ผ์์๋ ์ฑ์ ํ์ํ ํ๋์จ์ด ๋๋ ์ํํธ์จ์ด ๊ธฐ๋ฅ์ ์ ์ธํ ์ ์๊ณ , ๋ฐ๋ผ์ ์ฑ๊ณผ ํธํ๋๋ ๊ธฐ๊ธฐ ์ ํ๋ ์ ์ธํ ์ ์์ต๋๋ค. Google Play Store์์๋ ์ฑ์ ํ์ํ ๊ธฐ๋ฅ์ด๋ ์์คํ ๋ฒ์ ์ ์ ๊ณตํ์ง ์๋ ๊ธฐ๊ธฐ์ ์ฑ ์ค์น๋ฅผ ํ์ฉํ์ง ์์ต๋๋ค.
< uses-feature > ์๋ฅผ ๋ค์ด ๋์นจ๋ฐ ์ผ์๊ฐ ์๋ ๊ธฐ๊ธฐ์์ ์ฑ์ด ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ ์คํํ ์ ์๋ค๋ฉด, ํ์์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ด ๋งค๋ํ์คํธ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋์นจ๋ฐ ์ผ์๋ฅผ ์ ์ธํ ์ ์์ต๋๋ค.
<manifest ... >
<uses-feature android:name="android.hardware.sensor.compass"
android:required="true" />
...
</manifest>
โญ Intent: ์ดํ๋ฆฌ์ผ์ด์ ์ปดํฌ๋ํธ ๊ฐ์ ์์ ์ํ์ ์ํ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ ์ญํ ์ ํ๋ค.
=> 4๋ ์ปดํฌ๋ํธ๋ ๊ฐ๊ฐ ์ธํ ํธ์ ์ํด ํ์ฑํ๋๋ค!
val intent: Intent = Intent(this, DetailActivity::class.java)
startActivity(intent)
//startActivity() ํจ์๊ฐ ์ธํ
ํธ๋ฅผ ์์คํ
์ ์ ๋ฌ!
=> DetailActivity ์ ์ ๋ณด๋ฅผ Intent ๊ฐ์ฒด์ ๋์
ํ ๊ฒ
1) ๋ช
์์ ์ธํ
ํธ: ํด๋์ค ํ์
๋ ํผ๋ฐ์ค ์ ๋ณด๋ฅผ ํ์ฉํ ์ธํ
ํธ
=> ์ ์ฝ๋์์
DetailActivity::class.java
2) ์์์ ์ธํ
ํธ: ์ธํ
ํธ ํํฐ ์ ๋ณด๋ฅผ ํ์ฉํ ์ธํ
ํธ
=> ์ธ๋ถ ์ฑ์ ์ปดํฌ๋ํธ์ ์์ฒญ ์ฒ๋ฆฌ...
- Palette โ Layout ํ์ผ ๋ง๋ค๋ฉด ์ผ์ชฝ์ ๋์ค๋ TextView, ImageView์ ๊ฐ์ ๋ฐฐ์นํ ์ ์๋ View ๋ชฉ๋ก
- ๊ฐ View๋ค์ด ์ด๋ค ์ญํ ์ ํ๋์ง, ์ด๋จ ๋ ์ฐ์ด๋์ง ์กฐ์ฌํด๋ณด๊ธฐ
- ๊ฐ View๋ค์์ ๋ํ์ ์ผ๋ก ์ด๋ค ์์ฑ์ ์ฌ์ฉํ ์ ์๋์ง๋ ์กฐ์ฌ
<TextView
android:id="@+id/textView"
android:layout_width="241dp"
android:layout_height="129dp"
android:layout_marginTop="76dp"
android:fontFamily="sans-serif-black"
android:text="@string/main_title"
android:textColor="@color/white"
android:textSize="32dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"></TextView>
Button
-์ฌ์ฉ์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌ
ImageView
-์ด๋ฏธ์ง๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํ๋ ๋ทฐ
<ImageView
android:id="@+id/imageView2"
android:layout_width="260dp"
android:layout_height="400dp"
android:src="@drawable/main_img"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.496"
app:layout_constraintStart_toStartOf="parent"
RecyclerView
-๋ชฉ๋ก ํ๋ฉด ๋ง๋ค ๋ ์ฌ์ฉ
-๊ตฌ์ฑ์์ ์ด์ฉ(ViewHolder, Adapter, LayoutManager, ItemDecoration)
FragmentContainerView
ScrollView
-์์ ฏ, ๋ ์ด์์์ด ํ๋ฉด์ ๋์น ๋ ์คํฌ๋กค ํจ๊ณผ
-ํ๋์ ์์ ฏ๋ง ๋ฃ์ ์ ์์
Switch
-์จ/์คํ ์ํ ํ์
ImageButton
-๋ฒํผ์ฒ๋ผ ์ด๋ฏธ์ง๋ฅผ ํด๋ฆญํ๋ ์ฉ๋
ChipGroup & Chip
CheckBox
RadioGroup & RadioButton
-RadioButton - ๋จ์ผ ์ ํ ์์ ์ปจํธ๋กค
-์ฌ๋ฌ ๊ฐ ์ค ํ๋ ์ ํ ๋ฒํผ
FloatingActionButton
WebView
-์น ์ ํ๋ฆฌ์ผ์ด์
, ์น ํ์ด์ง๋ฅผ ๋ ์ด์์์ ์ผ๋ถ๋ก ํ์
ProgressBar
-์งํ ์ํ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ทฐ
-์ง์ ํํ, ์ํ ํํ
SeekBar
-ProgressBar์ ํ์ฅํ์ฌ ์ฌ์ฉ์๊ฐ ํฐ์น๋ก ์ํ ๋ณ๊ฒฝ
-๋ณผ๋ฅจ ์กฐ์ , ํ๋ฉด ๋ฐ๊ธฐ ์กฐ์ ์ ์ฌ์ฉ
Spinner
-PC์ ๋๋กญ๋ค์ด ๋ฐ์ค, ํ๋ฉด์ด ์์ ์ค๋งํธํฐ์์ ์ฌ๋ฌ ๊ฐ ์ค ํ๋๋ฅผ ์ ํํ ์ ์๋๋ก ํ์ฅํ์ฌ ์ต์
์ ๋ณด์ฌ์ฃผ๋ ์ฉ๋
HorizontalScrollView
-์ํ ์คํฌ๋กค ๋ทฐ
NestedScrollView
๊ฐ Layout์ด ์ด๋ค ํ๋ฉด์ ๊ตฌ์ถํ ๋, ์ด๋ค ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋์ง ์กฐ์ฌ
-๋ทฐ๋ฅผ ๊ฐ๋ก๋ ์ธ๋ก ๋ฐฉํฅ์ผ๋ก ๋์ดํ๋ ๋ ์ด์์ ํด๋์ค
-orientation ์์ฑ์ horizontal(๊ฐ๋ก)์ด๋ vertical(์ธ๋ก) ๊ฐ์ผ๋ก ๋ฐฉํฅ ์ง์
-์์ View๋ค์ด ์๋ก ์๋์ ๋ฐฐ์น ๊ด๊ณ์ ๋ฐ๋ผ ํ๋ฉด์ ํ์๋ ์์น๊ฐ ๊ฒฐ์ ๋๋๋ก ๋ง๋ค์ด์ฃผ๋ ๋ ์ด์์ ํด๋์ค
-์นด๋ ์๋ฏ์ด ๋ทฐ๋ฅผ ์ถ๊ฐํ ์์๋๋ก ์์ ๊ฒน์ณ์ ๊ณ์ ์ถ๋ ฅํ๋ ๋ ์ด์์.
-์๋์ ์๋ GridLayout๊ณผ ๋น์ทํ์ง๋ง, ํ ์ค์ TableRow๋ก ํํํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ์ข ๋ ๋ถํธํ๋ค.
-ํ
์ด๋ธ ์
์ ๊ฐ์๊ฐ ๊ณ ์ ์ด๋ผ๋ฉด ํฐ ์ฐจ์ด๊ฐ ์์ง๋ง, ์
์ ๊ฐ์๊ฐ ๋ณํ๋ฉด, TableLayout์ ํ์ ๊ณ์ฐํด์ ์ง์ ํด์ผ ํ๋ค.
-ํ๊ณผ ์ด๋ก ๊ตฌ์ฑ๋ ํ
์ด๋ธ ํ๋ฉด์ ๋ง๋๋ ๋ ์ด์์ ํด๋์ค
-TableLayout๊ณผ ๋น์ทํ์ง๋ง, ์
์ ๊ฐ์๊ฐ ๋ณํ ๋ ๋ฐฉํฅ๊ณผ ๊ฐ์๋ง ์ค์ ํ๋ฉด ์์์ ํ์ด ๊ฒฐ์ ๋๋ฏ๋ก ์ข ๋ ํธ๋ฆฌํ๋ค.
-์ ์ฝ์กฐ๊ฑด ๊ธฐ๋ฐ ๋ชจ๋ธ
-RelativeLayout๊ณผ ๋น์ทํ์ง๋ง, ๋ ๋ง์ ์์ฑ์ ์ ๊ณตํ๋ค.
-๋ ์ด์์ ํธ์ง๊ธฐ ์ ๊ณต: ๋ ์ด์์ XMLํ์ผ์ ๋์์ธ ๋ชจ๋๋ก ์ด๋ฉด ์คํ๋๋ค
=>์ฌ๊ธฐ์ Palette, ToolBar ๋ฑ ๊ธฐ๋ฅ์ด ์์.
-๋ค๋ฅธ ๋ ์ด์์๋ณด๋ค ํธ์ถ ํ์๊ฐ ์ ์ด ์ฌ์ฉํ๊ธฐ ํธ๋ฆฌํ๋ค.