설정

설정은 런타임에만 사용할 수 있도록 앱에 정의하거나 세션 전반에 지속적으로 사용할 수 있도록 저장이 가능합니다. 사용자 또는 시스템 환경 변수 읽기, 런타임에 환경 변수나 등록정보 설정, 파일에 설정 저장을 수행할 수 있습니다.

환경 변수

환경 변수는 사용자 또는 시스템용으로 설정할 수 있습니다. 이러한 환경 변수는 앱 실행 전에 설정하며 대체 앱 동작을 구성하는 데 사용할 수 있습니다. 예를 들어 LANG 환경 변수의 설정은 Qt 애플리케이션에서 사용되는 로캘에 영향을 줍니다.

앱에서 환경 변수의 값을 읽으려면 AppFramework.environment.value()을(를) 사용합니다.

환경 변수의 현재 설정을 덮어쓰려면 AppFramework.environment.setValue()을(를) 사용합니다. 변경된 설정은 앱 실행 동안 유효합니다.

PropertySet

PropertySet 컴포넌트는 QML 바인딩에 사용할 수 있는 키-값 쌍을 설정할 수 있습니다. 해당 컴포넌트는 앱이 실행되기 전 등록정보 값을 모르는 경우에 유용하며 대신 런타임에 설정됩니다.

자세한 내용은 PropertySet에 대한 API 참조를 참고하세요.

설정 파일

설정은 JSON 파일에 저장할 수 있으며 Settings 컴포넌트를 통해 해당 파일에 작성하고 읽을 수 있습니다.

해당 JSON 파일의 위치는 운영 체제와 해당 앱이 독립형 앱으로 생성된 앱인지 AppRun 또는 AppStudio Player를 통해 사용되는 앱인지에 따라 다릅니다. 대부분의 경우에는 파일을 직접 편집할 필요가 없지만, 버그 테스트용으로 이러한 파일을 열어야 할 수도 있습니다. 이렇게 해야 하는 경우 다음 폴더에서 해당 파일을 찾을 수 있습니다. 폴더의 이름은 ArcGIS Online의 UUID에 따라 지정됩니다.

  • Windows: C:\Users\YourUsername\ArcGIS\AppStudio\Settings
  • macOSUbuntu: ~\ArcGIS\AppStudio\Settings

앱을 만든 후에는 앱의 기관 정보와 사용자 권한에 따라 4개의 표준 위치에 해당 설정 파일을 생성할 수 있습니다. 이러한 위치는 대체 위치이며 useFallbacks 불린 속성을 사용하여 앱에서 해당 위치의 사용 여부를 정의할 수 있습니다.

파일에 설정 값 정의

설정은 추가한 설정을 나타내는 데 사용되는 키-값 쌍으로 할당 및 저장됩니다. 키가 없으면 설정된 기본값이나 사용자가 처음 설정하는 값으로 생성할 수 있습니다. 이러한 키 값은 대소문자를 구분하므로 전체 설정에서 일관되게 대문자를 표기해야 합니다.

Settings 컴포넌트는 각기 다른 상황에서 유용할 수 있는 4가지 값 유형을 지원합니다. 다음 예시에서는 값을 사용할 수 있는 일반적인 방법을 보여줍니다.

기본 valuesetValue 함수는 문자열용이며 다양한 시나리오에서 사용할 수 있습니다. 이러한 함수를 사용하는 경우 다음 코드 샘플은 기본 경로 URL을 설정하는 방법을 제공합니다.

readonly property string defaultLibraryPath: "~/ArcGIS/Example App/Library"

Item {
    Component.onDestruction: {
        var paths = libraryTextField.text.trim();

        if (paths.length <= 0) {
            paths = defaultLibraryPath;
        }

            settings.setValue("libraryPaths", paths, defaultLibraryPath);
    }

    TextField {
        id: libraryTextField

        Layout.fillWidth: true

        text: defaultLibraryPath
    }
}

true 또는 false 선택 항목을 제공하는 boolValue 함수는 어조를 거의 변경할 필요가 없는 단답형 질문에 적합합니다. 다음 코드 샘플은 해당 설정을 스위치에 적용하여 응용프로그램의 세션 간 로그인 정보 유지 여부를 결정합니다.

property bool staySignedIn: false

    Switch {
    checked: staySignedIn
    onCheckedChanged: {
        staySignedIn = true;
        settings.boolValue("staySignedIn", true);
    }
}

Settings 컴포넌트는 정수 정의를 위한 numberValue(크기 등 세분화된 설정을 지정할 때나 여러 고유 옵션 간에 선택해야 하는 시나리오에 유용함)와 16진수 색상 값 저장을 위한 colorValue(대개 앱의 모양을 사용자 정의하는 데 사용됨)도 제공합니다. 이러한 함수는 각기 다른 유형의 값을 저장하지만 boolValue와 같은 방식으로 동작합니다.