SwiftUI와 UIKit을 함께 사용하여 앱 아이콘 변경 기능을 구현할 수 있다.
Solution 1.
- UIApplication.shared: 현재 앱의 UIApplication 인스턴스에 접근한다. UIApplication은 iOS 앱의 중심에 위치한 클래스로, 앱의 라이프사이클과 다양한 앱 레벨의 동작을 관리한다.
- setAlternateIconName: 이 메서드는 앱 아이콘을 변경하는 역할을 한다. 메서드에는 변경할 아이콘 이름이 전달돼야 한다.
- error가 nil이 아닌 경우(앱 아이콘 변경 실패)는 에러 메시지를 출력, 앱 아이콘 변경 성공시 성공 메시지 출력.
UIApplication 이란?
더보기
iOS 앱의 중앙 관리 객체로, 앱의 라이프사이클과 앱 레벨 동작을 관리하는 클래스
UIApplication은 싱글톤 패턴으로 구현되어 있으며, shared 프로퍼티를 통해 앱 전체에서 공유된 단일 인스턴스에 접근할 수 있다.
앱이 시작, 종료, 백그라운드로 진입/이탈, 비활성 상태로 진입/이탈하는 등의 상태 변화를 관리한다
iOS 10.3 이상에서는 setAlternateIconName 메서드를 통해 앱 아이콘을 동적으로 변경할 수 있다.
Solution 2.
- 반 메뉴에서 상단 툴바의 빌드 설정으로 이동
- 먼저, 필터에서 '모든 빌드 설정 보기'가 활성화되어 있는지 확인 후, 검색 바에 "app icon"이라고 입력
- 이제, "Asset Catalog Compiler"에서 "Alternate App Icon Sets"란에 직접 앱 아이콘 파일 이름을 추가
❗️주의할 점
👉 setAlternateIconName 메서드를 사용하여 앱 아이콘을 변경하려면, 앱이 사용자에게 허용된 아이콘들을 미리 등록하고 애플의 검토를 통과해야 한다.
👉 아이콘 변경은 앱 사용자 경험에 영향을 미치는 중요한 기능이므로 신중하게 사용해야 한다. 앱 아이콘을 동적으로 변경하는 것은 사용자 경험을 개선하거나 특정 상황에 맞게 아이콘을 변경해야 할 때만 사용하는 것이 좋다. 그리고 사용자가 의도치 않게 아이콘이 변경되지 않도록 주의하여야 한다.
'iOS > SwiftUI' 카테고리의 다른 글
[Day 8] 함수의 매개변수에 기본값 제공, throwing functions (0) | 2023.08.07 |
---|---|
[Day 7] 함수, 매개변수, 반환값 (0) | 2023.08.06 |
[Day 6] 반복문 : Loop (for, while), break & continue (0) | 2023.08.05 |
[Day 5] 조건문 : if, switch, and the ternary operator (0) | 2023.08.04 |
[Day 4] Type annotations (0) | 2023.08.03 |