Application Module

Application 모듈은 게임 어플리케이션 자체 및 어플리케이션이 구동되는 플랫폼과의 상호작용에 대한 내용을 추상화합니다.

Module Common Information

Project: Modules/Application

Namespace: Leggiero::Application

Module Interfaces

(없음)

Components

Application Component

게임의 어플리케이션과 플랫폼을 추상화하는 컴퍼넌트입니다.

Type: Leggiero::Application::ApplicationComponent

Component Id: EngineComponentIdType::kApplication (1)

Dependencies

(없음)

엔진에 의해 직접 처리됨

Overview

컴퍼넌트 클래스 자체가 너무 지저분해지는 것을 막기 위해, 컴퍼넌트의 기능은 하위 인터페이스들로 나뉘어 제공됩니다. 하위 인터페이스에 대한 참조를 Application 컴퍼넌트에서 얻을 수 있습니다.

Information Provider

AppInformation

게임 어플리케이션에 대한 정보를 제공합니다.

Device Information

게임 어플리케이션이 구동되는 디바이스에 대한 정보를 제공합니다.

Control

PlatformAppControl

어플리케이션이 구동되는 플랫폼 상에서의 게임 어플리케이션의 동작을 제어하기 위한 인터페이스입니다.

Event Center

게임 어플리케이션의 이벤트를 통지받기 위한 인터페이스를 제공합니다.

SystemEventCenter

게임 어플리케이션에서 발생하는 시스템 이벤트에 대한 옵저브 인터페이스를 제공합니다.

RawTouchEventCenter

게임 어플리케이션에 입력되는 터치 이벤트에 대한 옵저브 인터페이스를 제공합니다.

Observe Interface

SystemEventObserver.hRawTouchEventObserver.h 등에 정의된 옵저버 인터페이스를 상속받아 옵저버를 구현할 수 있습니다.

옵저버 객체의 raw pointer를 event center에서 제공하는 dispatcher에 등록하여 이벤트를 수신할 수 있습니다. 옵저버 객체 등록은 생명 주기에 영향을 미치지 않고 이벤트 통지 시 별도의 유효성 검사를 수행하지 않으므로, 등록된 옵저버 객체는 수명이 끝나기 전에 UnRegister~ 종류의 함수를 이용해 이벤트 수신 등록을 해제해야 합니다.

Services

어플리케이션이 구동되는 플랫폼의 기능을 제공하기 위한, 별도 단위 인터페이스입니다.

TextInputController

사용자로부터 텍스트 입력을 받는 기능을 제공합니다. Leggiero의 주 대상 게임은, 텍스트 입력이나 네이티브 UI를 기반으로 한 게임이 아니므로, 현재는 팝업 창을 띄워 단순한 텍스트 입력을 받는 기능만을 제공합니다.

WebViewController

플랫폼의 URI 혹은 URL 호출을 수행하거나, 지정 URL에 대한 단순한 웹 뷰를 열 수 있는 기능을 제공합니다.

참고

OpenURL과 OpenURLByPage의 차이

OpenURL 은 플랫폼에 URI 처리를 직접 요청합니다. 해당 scheme의 URI를 핸들링하는 타 어플리케이션을 호출하는 식으로 사용할 수 있습니다. 한편, OpenURLByPage 는 Leggiero 어플리케이션 내에서 해당 URL의 내용을 표시하는 단순한 웹 뷰를 표시합니다.

단, 개발용 Windows PC 플랫폼에서는, 내장 웹 뷰를 사용하지 않아, OpenURLByPage 호출 시에도 URL에 대한 열기 요청이 OS에 전달되어 기본 웹 브라우저가 열립니다.