UI 시스템 핵심 기능
•
UI 툴킷
•
엔진
•
렌더링
동적 라이브러리 ⇒ 프로그램과 라이버르리가 런타임에 연동되는 방식
정적 라이브러리 ⇒ 프로그램 패키징(컴파일) 시점에 프로그램과 라이브러리가 연동되는 방식
1장 UI 툴킷과 앱
기본 그래픽 요소는 화면을 장식해주는 이미지와 문맥 정보를 전달하는 텍스트 두개로 축약 됨.
UI 컴포넌트
•
컨테이너
◦
화면에 배치하기 위한 layout, 외양이 없거나 scalable UI를 보장하기 위한 원칙과 기능 동작을 구현 함.
•
비 컨테이너
◦
외양을 기반으로 사용자와 상호 작용을 수행하는 UI 컴포넌트
◦
SearchBox, Button, Toggle, CheckBox
UI 컴포넌트와 UI 툴킷 엔진은 UI 엔진과 렌더링 엔진에 의존하여 기능을 수행 함.
UI 엔진은 UI 컴포넌트 기능을 제외한 UI 핵심 기능을 정의 한다.
•
시스템 통합, 이벤트, 입출력, 메인 루프
렌더링 엔진은 캔버스 기반으로 UI를 드로잉하고 화면에 출력하는 기능을 담당.
•
캔버스는 UI 시스템의 구현 전략 중 하나로 시스템 특성에 따라 다르게 실제/구현 할 수 있음.
UI 컴포넌트는 렌더링 엔진에서 제공하는 원시 기능을 활용하여 컴포넌트 고유의 비주얼을 완성하고, 컴포넌트 고유의 기능을 앱이 사용할 수 있도록 API를 제공함.
이벤트 처리
복수의 이벤트가 수행함 수로 등록 된 경우, 어떤 함수가 먼저 호출되는지 정책을 명확히 해야 한다.
정규좌표계
좌표단위가 화소가 아닌 정규화 된 범위.
(0,0) ~ (1,1) 임의의 화면 크기게 대응하는 UI 객체를 배치 가능.
절대 좌표계의 고정 UI 문제점을 개선 할 수 있다.
정규 좌표계를 사용할 경우 위치 및 레이아웃을 지정할때 유용하지만, 컨텐츠 크기는 고정 크기가 적합 할때가 많다.
상대 좌표
어떤 UI 컴포넌트가 특정 컴포넌트의 위치와 크기에 의존하는 경우