[SOPT] Seminar1
Prologue
Android 가볍게 보는 특징
- Google에서 만든 모바일 운영체제
- 가장 많이 사용하는 OS
- 오픈소스
- 다양한 라이브러리 지원
- 개발 접근이 용이
- 빈번한 SDK 업그레이드
Subject
최근 이슈
최근에 구글과 오라클의 소송에서 구글이 패배함으로써 자바가 위협을 받고 Kotlin
이 대두되고 있습니다. SOPT에서는 Kotlin을 이용하여 안드로이드 개발을 배우고 세미나를 진행합니다.
Kotlin의 특징
- 자동 형 변환 기능을 허용하지 않는다. [타입이 다르면 반드시 형 변환을 해야 한다.]
NPE에 대응
[NPE = Null Pointer Exception]- 뛰어난 자바와의 호환성
- 표현이 자바에 비해 훨씬 간결
- 문장 끝에 세미콜론을 사용하지 않는다.
View / Layout이란??
[View와 ViewGroup]
- View
버튼, 텍스트, 이미지 등 모든 유저 인터페이스(UI)의 통칭
사용자 눈에 보이는 화면 구성 요소
Activity 상에서 직접 Code를 작성해서 구현할 수 있지만 더 쉽고 정교하게 작성하기 위해서XML
사용
- layout_width -> 뷰의 너비(가로 길이)
- layout_height -> 뷰의 높이(세로 길이)
- wrap_content ->
내용의 길이(혹은 크기)
에 맞게 조절 - match_parent ->
부모 뷰에 꽉 채워진 크기
(여백 제외)
위의 두 가지가 아닌 경우에는 직접 설정 - 배경 지정 / 색 뿐만 아니라 이미지도 지정 가능
- 화면에 보여지는 속성
- visible : 공간도 차지하고 화면에 보임
- invisible : 공간은 차지하는데 보이지는 않음
- gone : 공간도 차지하지 않고 보이지도 않음
- View의 여백 설정
- margin -> 부모 혹은 View와의 여백
- padding -> View 외곽과 내용 사이의 여백
ViewGroup
- 뷰들을 여러 개 포함하고 있는 것
- 뷰 그룹도 뷰에서 상속하여 뷰가 된다. 즉, 위의 뷰는 버튼, 텍스트 뿐만 아니라 이것들을 포함하는 눈에 보이지 않는 영역을 포함
위젯
뷰 중에서 일반적인 컨트롤 역할을 하고 있는 것
ex) 버튼, 텍스트뷰 등등
Layout
View들이 배치 될 그룹
Layout에 따라 배치되는 방식이 달라짐
XML을 통해 작성
LinearLayout, RelativeLayout, FrameLayout, ConstraintLayout 등등 존재
레이아웃은 그 안에 다른 뷰들을 담을 수 있는데, 레이아웃도 뷰를 상속하여 정의되었기 때문에 레이아웃 안에 다른 레이아웃을 담을 수 있다. 이를 이용하여 복잡한 화면 구성을 할 수 있다.
LinearLayout
- View들의 선형 배치를 제공하는 Layout
- 수직 방향, 수평 방향으로 배치 가능
- 수직 배치시 다음 뷰는 가장 아래 뷰를 기준으로 밑에
수평 배치시 다음 뷰는 가장 오른쪽 뷰를 기준으로 오른쪽에 배치 - 배치 기준이 정해져 있어서 직접 정해주지 않아도 됨
- 특정 뷰 기준으로 배치하는 것은 불가능하다.
- 방향성이 존재하기 때문에 뷰 위에 뷰를 쌓는 것이 불가능하다.
- 계단식으로 배치할 때 용이하게 사용할 수 있다.
- orientation : 뷰 배치에 방향성을 부여한다.(horizontal, vertical)
- layout_gravity : 부모 컨테이너 안에서 뷰의 위치를 정함
- gravity : 뷰 안에서 내용물의 위치를 정함
- layout_weight : 뷰의 가중치로 비율을 통해 너비 혹은 길이를 정함
RalativeLayout
- View들의 상대적 배치를 제공하는 Layout
- 특정 뷰를 기준으로 다른 뷰를 배치하는 특징을 가지고 있다.
- 기준을 정해주지 않게 되면 뷰가 왼쪽 상단에 쌓이게 된다.
- 뷰 위에 뷰를 겹칠 수 있따.
- 원하는 배치를 하기 위해서 직접 기준을 정해주면 된다.
- 복잡한 뷰를 작성할 때 용이하게 사용할 수 있다.
Github
: https://github.com/WooVictory/SOPT_22th_Seminar1_HomeWork