안드로이드에서는 액티비티(Activity)로 하나의 화면을 만든다. 그리고 액티비티 안에 들어가는 각각의 구성 요소는 뷰(View)를 만들어 추가한다.

액티비티 안에 뷰를 배치하는 것을 레이아웃이라고 한다.

01-1 안드로이드 스튜디오

Ctrl + Tap : 스위처 기능

열려있는 파일이나, 창들을 빠르게 이동할 수 있다.

Ctrl + Q : 클래스에 커서를 올리고, Ctrl + Q 를 누르면 API문서가 표시된다.

Ctrl + P : 파라미터가 어떤 것들이 있는지 보여줌

마우스 우클릭/Generate... : 상속받은 클래스의 오버라이딩

Ctrl + Shift + F : 파일 내 검색

File/Sync Project with Gradle Files : 코드를 수정했는데 빨간 줄이 안없어질 때

01-2 뷰와 뷰의 크기 속성 이해하기

뷰의 속성

뷰(View)는 사용자의 눈에 보이는 화면의 구성요소라고 할 수 있다. 이러한 뷰가 여러개 그룹지어 있는 것이, 뷰그룹(ViewGroup)이다.

뷰그룹은 뷰그룹안에 뷰그룹을 넣는 것과 같이 뷰처럼 사용할 수 있다.

뷰그룹은 뷰를 상속하여 만들어졌기 때문이다. 뷰의 속성을 모두 물려받았다.

뷰와 뷰그룹의 관계는 컴포지트 패턴(Composite Pattern)이라는 디자인 패턴을 사용한 것이다.

뷰그룹이 뷰를 상속하면 뷰그룹도 뷰가 되므로, 뷰그룹 안에 다른 뷰그룹을 가질 수 있다. 이러한 관계는 안드로이드의 UI를 자연스럽게 구성할 수 있게 한다.

이 외에도 뷰는 다른 뷰의 속성을 상속하여 상속받은 뷰의 특성을 가질 수도 있다. 예를들어 버튼은 텍스트뷰를 상속해서 만들어졌기 때문에 텍스트뷰의 속성을 그대로 가지고 있다.

위젯과 레이아웃으로 구별되는 뷰

안드로이드는 화면을 구성하는 뷰와 뷰그룹의 역할을 구분하기 위해 뷰의 종류에 따라 다른 이름으로 부르기도 한다.

뷰 중에서 일반적인 컨트롤의 역할을 하는 것을 위젯(Widget)이라고 한다.

뷰그룹 중에서 내부에 뷰를 포함하고 있으면서 그것들을 배치하는 역할을 하는 것을 레이아웃(Layout)이라고 부른다.