Post

UIApplication이란

UIApplication이란

개요

iOS 앱을 개발하다 보면 앱 전체의 상태를 관리하고 시스템 이벤트에 반응하는 기능이 필요하다. 이 중심에 있는 객체가 바로 UIApplication이다.
이 글에서는 UIApplication이 어떤 역할을 하고, 어떻게 사용하는지 핵심만 정리한다.


UIApplication이란?

UIApplication은 앱의 전반적인 상태를 제어하고 시스템 이벤트를 처리하는 중심 객체다.
앱 내에 단 하나만 존재하는 싱글톤(Singleton) 객체이며, UIApplication.shared를 통해 접근한다.
앱의 실행 상태, 푸시 알림 등록, 외부 URL 열기, 윈도우 제어 등 거의 모든 핵심 기능을 담당한다.


주요 기능

1. 앱 상태 추적

앱이 현재 활성 상태인지, 백그라운드에 있는지, 비활성화 상태인지를 파악할 수 있다.

1
2
3
4
5
6
7
8
9
let appState = UIApplication.shared.applicationState
switch appState {
case .active:
    print("App is active")
case .background:
    print("App is in background")
case .inactive:
    print("App is inactive")
}


2. 외부 URL 열기

웹사이트, 설정 앱 등 외부 리소스를 여는 기능을 제공한다.

1
2
3
4
if let url = URL(string: "https://apple.com") {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}


3. 원격 알림 등록

푸시 알림을 받기 위해 APNs 등록을 요청할 때 사용한다.

1
UIApplication.shared.registerForRemoteNotifications()


4. 상태 바 제어

상태 바의 표시 여부, 스타일 등을 조절할 수 있다. (단, 대부분의 제어는 UIViewController에서 override)


5. 키 윈도우 및 윈도우 리스트 관리

앱 내에서 현재 활성화된 윈도우(키 윈도우)나 전체 윈도우에 접근 가능하다.

1
let keyWindow = UIApplication.shared.windows.first { $0.isKeyWindow }


참고 사항

SwiftUI에서는 UIApplication을 직접 다룰 일이 줄어들긴 했지만, 시스템 기능을 사용할 때 여전히 필요하다. 앱 생명 주기(lifecycle)에 관련된 처리를 할 때는 UIApplicationDelegate와 함께 사용하는 경우가 많다.


마무리

UIApplication은 단순한 헬퍼 클래스가 아니다. 앱 전체의 동작 흐름을 제어하는 핵심 객체다. 앱의 상태를 파악하거나 시스템 기능을 연동할 일이 있다면, UIApplication의 역할을 반드시 이해하고 있어야 한다.

This post is licensed under CC BY 4.0 by the author.