첫번째 app 만들기 실습은 BMI 계산기를 만들어보기로 했다.
app의 UI를 꾸미기 위해서는 xml 언어를 다뤄야한다.
프로젝트를 Empty Views Activity로 생성한다면
activity_main.xml 에서 xml 코드의 구조를 확인할 수 있다.
xml 파일을 Code로 수정하는 방법도 있으나
익숙해지기전에는 Design을 조작하는 방식으로 수정해야겠다.

Design 탭에서 원하는 항목을 추가하였다.
Text->TextView, Number
Buttons->Button

TextView의 프로퍼티들을 수정하였다.
text: 문자내용
textColor: 문자색상
textSize: 문자크기
textStyle: 문자스타일 (bold설정)

Layout->Constraint Widget 상대좌표설정
layout_constraintEnd_toEndOf: 오른쪽기준 = parent
layout_constraintStart_toStartOf: 왼쪽기준 = parent
layout_constraintTop_toTopOf: 위쪽기준 = parent
layout_marginTop: 위쪽기준 margin 설정
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:text="BMI 계산기"
android:textColor="@android:color/holo_blue_dark"
android:textSize="40sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
xml 코드가 자동생성되었다.

EditText의 프로퍼티를 수정하였다.
layout_width: 가로길이 설정
Layout->Constraint Widget 상대좌표설정
layout_constraintBottom_toBottomOf: 아래쪽기준 = textView2
layout_constraintStart_toEndOf: 왼쪽기준 = textView2
layout_constraintTop_toTopOf: 위쪽기준 = textView2
layout_marginStart: 왼쪽기준 margin 설정
<EditText
android:id="@+id/editTextNumber"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:ems="10"
android:inputType="number"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="@+id/textView2"
app:layout_constraintStart_toEndOf="@+id/textView2"
app:layout_constraintTop_toTopOf="@+id/textView2" />
자동생성된 xml 코드에 gravity 속성을 추가하였다.
android:gravity="center"
: 사용자 입력 중앙에 출력.

Button의 프로퍼티를 수정하였다.
text: 문자내용
Layout->Constraint Widget 상대좌표설정
layout_constraintEnd_toEndOf: 오른쪽기준 = parent
layout_constraintStart_toStartOf: 왼쪽기준 = parent
layout_constraintTop_toBottomOf: 위쪽기준 = textView3
layout_marginTop: 위쪽기준 margin 설정
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:text="확인하러가기"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView3" />
xml 코드가 자동생성되었다.

두개의 TextView와 하나의 Edit Text를
Horizontal Chain으로 결합하였다.

Horizontal Chain style을 수정하였다.
layout_constraintHorizontal_bias: 0~1사이값 (0은 좌측정렬 1은 우측정렬)
layout_constraintHorizontal_chainStyle: 배치 스타일 (packed설정)
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:text="신장"
android:textColor="@color/black"
android:textSize="20sp"
app:layout_constraintEnd_toStartOf="@+id/editTextNumber"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
xml에 새로운 항목이 추가되었다.

Main 화면 외에도 결과 화면을 만들기 위해서
새로운 Activity를 생성했다.
(ResultActivity.kt, activity_result.xml 파일생성됨)

새로운 View 객체들을 배치하였다.