[ 아이폰 개발 ] iOS 13 앱 다크모드 무시하기 설정

iPhone 개발을 하면 요즘은 거의 다크 모드를 기본적으로 넣고 있습니다. 하지만 이전에 개발된 앱들은 다크 모드를 지원하지 않는 경우가 많죠. 처음 설계될 때부터 다크 모드를 고려하지 않아서 색상이나 기본 구조를 다시 설계해야 합니다. 시스템 색상을 이용하면 간단하게 구현이 가능하지만 다크 모드를 지원하지 않는 iOS 13 이하의 단말에서는 시스템 컬러도 다크 모드를 설정할 수 없죠. 그래서 보통 테마를 구조적으로 만들어서 다크 모드 비슷하게 지원을 하곤 했습니다. 이번에 라이브러리를 만들면서 도저히 시간상 다크 모드는 적용이 어려울 것 같아서 우선 라이트 모드를 정리해놓고 다크 모드로 구현하기로 했습니다. 아주 간단하게 다크 모드를 아예 무시하고 프로젝트를 설정하는 법을 알아보겠습니다.

 

 iOS UserInterfaceStyle 

 

iPhoen 13 에서는 다음과 같은 Enumeration 값이 추가되었습니다. UIUserInterfaceStyle로 3가지 case로 구성됩니다. 알 수 없음, 라이트 모드, 다크 모드

UIUserInterfaceStyle - Enumeration


 

또한 Property List Key (Info.plist) 설정에 도 다음과 같이 해당 키가 존재합니다. 문자열이며 위의 enum 값과 비슷하게 자동, 라이트 모드, 다크 모드 이런 식으로 구성되어 있습니다. 

UIUserInterfaceStyle - Property List Key


 

 

 라이트 모드 전용 구성 

 

라이트 모드로 구성하기 위해서는 코드로도 가능하지만 번들에도 영향을 주려면 plist에서 수정하는 편이 더 낫습니다. 코드에서 수정하면 수정하는 타이밍에 라이브러리 또는 특정 메인 번들은 다크 모드로 동작할 수 있기 때문이죠.

 

▼ 1. 프로젝트에서 info.plist 파일을 선택합니다.

1. Xcode iOS 프로젝트 - info.plist


 

▼ 2. 오른쪽 버튼을 누르고 Add Row를 눌러서 입력필드가 활성화되면 Appearance라고 입력합니다. 

2. Apperance 프로퍼티 키


 

▼ 3. 프로퍼티 타입을 String 타입으로 설정하고 Light 라고 입력합니다. (첫 글자가 L 대문자입니다.)

3. Appearance - Light로 설정


 

▼ 4. 실제 입력이 잘 되었는지 소스 코에서 확인해보겠습니다. info.plist 파일을 오른쪽 버튼을 눌러서 선택하고 Open As 하위 메뉴의 Source Code 메뉴를 선택합니다.

4. info.plist 소스코드로 보기


 

▼ 5. 해당 키가 UIUserInterfaceStyle 로 잘 입력된 것을 확인할 수 있습니다. 키의 스트링 값은 Light로 설정됩니다.

5. UIUserInterface 키 확인


 

▼ 6. Appearance라는 키값으로 설정된 것을 소스코드에서 본 Raw Key로 보려면 오른쪽 버튼을 누르고 Raw Keys & Values로 설정합니다.

6. Raw Keys & Values 설정


 

▼ 7. 아까 전에 봤던 소스코드와 동일하게 UIUserInterfaceStyle로 변경된 것을 확인할 수 있습니다. 이처럼 Xcode는 사용자가 보기 편한 Key 타입 방식과 실제 사용되는 Raw Key의 값을 구분해서 사용합니다.

7. Raw Key 확인


 

지금까지 Xcode의 iOS 프로젝트에서 info.plist 를 수정해 다크 모드를 무시하고 라이트 모드를 전용으로 사용하는 방법을 알아봤습니다. 이제 iOS 13부터는 다크 모드를 쉽게 탑재할 수 있으니 다양한 테마를 구성하느라 시간을 보낼 필요가 없는 것 같지만 추가적으로 2벌의 디자인을 고려해야 한다는 점은 여전히 부담스럽습니다.

 

댓글

Designed by JB FACTORY