# 1. Language/🔰 Kotlin

Kotlin # XML/단위/뷰컴포넌트/뷰속성

둥굴둥굴둥굴레차 2022. 7. 5. 18:48

🎈 XML

General Purpose Language
    - 범용적인 목적을 가지고있는 언어
    - Kotlin, Python, Java, C, C++, Swift ...


Domain Specific Language(DSL)
    - 도메인 특화 언어 -> 특수한 목적을 달성하기 위함
    - 문법이 굉장히 간단함
    - XML(eXtensible Markup Language)
        * 안드로이드에서 UI를 그리기위해 채택한 언어
        * eXtensible -> 태그안에 태그가 가능
        * Markup Language다 -> 태그로 범위를 마크하여 내용을 작성.

        - 태그
            * 자식 태그가 올 수 있는 경우
                <태그 속성...> </태그>
            * 마지막 자식인 경우
                <태그 속성... />

🎈 단위

    - PX(Pixel) -> 이 단위를 활용하여 UI를 그리게되면 다양한 모바일에서 크기가 다르게 표현된다.
        * 실제 존재하는 물리적인 단위
        * 같은 단위면적에 PX가 많을 수록 해상도가 높다
        * 물리적인 화면을 구성하는 최소단위

    - Dp(Density-Independent Pixels) -> PX의 단점을 보완하기 위해 안드로이드에서 사용하는 단위
        * 픽셀 독립 단위
        * 화면의 크기가 달라도 동일한 비율로 보여주기 위해 안드로이드에서 정한 단위
        * 화면의 비율로 크기를 정한다

    - Sp(Scale-Independent Pixels)
        * 시스템 설정에 영향을 받는 단위 -> 사용자가 휴대폰의 글자크기를 임의로 설정했을 때
        * 텍스트 크기를 지정하기 위해 사용하는 단위 -> 그러나 현업에서는 Dp를 사용해 텍스트를 구성한다.

    - DPI(Dot Per inch) -> 이미지에 사용. 그렇게 중요하지 않다.
        * 100dp -> 1인치당 픽셀이 100개 들어있다는 뜻
        * 기본 dip는 mdpi.

 

🎈 뷰 컴포넌트

    - 위젯(Widget), 뷰클래스(View Class), 컴포넌트(Component), 레이아웃(layout)과 완전히 같은 의미는 아니지만 혼용되어 사용된다.

    1. 부모뷰 == 루트뷰 == 컨테이너 뷰
        * 다른 뷰를 가질 수 있는 뷰

    2. 자식뷰
        * 다른 뷰를 가질 수 없는 뷰


특수한 뷰
    - 레이아웃 뷰
        * 자식뷰의 배치나 위치를 설정하는 뷰

 

🎈 뷰 속성

    - 뷰에 설정을 할 때 뷰가 가지고있는 속성을 통해서 한다
    - 뷰가 가지고있는 속성은 암기하는 것이 아니라, 필요한 경우에 속성이 있는지 확인하고 사용하자