[swift] Swift에서 아이콘과 함께 알림 뱃지를 표시하는 방법

iOS 앱 개발 중에는 사용자에게 새로운 알림을 알려주기 위해 앱 아이콘 위에 알림 뱃지를 표시하는 경우가 많습니다. Swift를 사용하여 아이콘과 함께 알림 뱃지를 표시하는 방법에 대해 알아보겠습니다.

1. UIApplication.shared.applicationIconBadgeNumber 설정

swift에서는 UIApplication.shared.applicationIconBadgeNumber 속성을 사용하여 알림 뱃지를 설정할 수 있습니다. 아래의 예제 코드를 사용하여 뱃지 값을 설정할 수 있습니다.

UIApplication.shared.applicationIconBadgeNumber = 5

위의 코드에서 5는 알림 뱃지에 표시될 숫자입니다. 원하는 숫자로 변경하여 알림 뱃지 값을 설정할 수 있습니다.

2. UNUserNotificationCenter를 사용하여 알림 요청

iOS 10부터는 사용자에게 알림을 보내기 위해 UNUserNotificationCenter를 사용해야 합니다. 아래의 예제 코드를 사용하여 알림을 생성하고 알림 뱃지를 설정할 수 있습니다.

import UserNotifications

// 알림 콘텐츠 생성
let content = UNMutableNotificationContent()
content.title = "새로운 알림"
content.body = "새로운 메시지가 도착했습니다."
content.badge = NSNumber(value: 5) // 알림 뱃지 설정

// 알림 트리거 생성
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)

// 알림 요청 생성
let request = UNNotificationRequest(identifier: "notificationIdentifier", content: content, trigger: trigger)

// 알림 등록
UNUserNotificationCenter.current().add(request, withCompletionHandler: { error in
    if let error = error {
        print("알림 등록 중 에러 발생: \(error)")
    } else {
        print("알림 등록 성공")
    }
})

위의 코드에서 content.badge를 사용하여 알림 뱃지를 설정할 수 있습니다. 값을 설정하고자 하는 숫자로 변경하고 알림을 생성하여 보낼 수 있습니다.

3. 앱 아이콘에 대한 뱃지 이미지 생성

알림 뱃지는 앱 아이콘 위에 작은 동그라미로 나타나는데, 이 동그라미 모양의 이미지를 생성해야 합니다. 이미지에는 알림 뱃지로 표시할 숫자가 포함되어야 합니다. 아래의 예제 코드를 사용하여 뱃지 이미지를 생성할 수 있습니다.

// 이미지 캔버스 생성
let renderer = UIGraphicsImageRenderer(size: CGSize(width: 30, height: 30))

// 이미지 그리기
let image = renderer.image { context in
    let paragraphStyle = NSMutableParagraphStyle()
    paragraphStyle.alignment = .center

    // 동그라미 그리기
    let circle = UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: 30, height: 30))
    UIColor.red.setFill()
    circle.fill()

    // 숫자 그리기
    let attributes = [ NSAttributedString.Key.foregroundColor: UIColor.white,
                       NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 16),
                       NSAttributedString.Key.paragraphStyle: paragraphStyle ]
    let text = "\(5)"
    let textSize = text.size(withAttributes: attributes)
    let textRect = CGRect(x: (30 - textSize.width) / 2, y: (30 - textSize.height) / 2, width: textSize.width, height: textSize.height)
    text.draw(in: textRect, withAttributes: attributes)
}

위의 코드에서는 UIGraphicsImageRenderer 클래스를 사용하여 이미지 캔버스를 생성하고, 동그라미를 그리고 숫자를 그립니다. 숫자에는 \(5)를 변경하여 원하는 알림 뱃지 숫자로 설정할 수 있습니다.

Swift에서는 이미지를 생성하고 이를 앱 아이콘 위에 표시하는 방법을 제공하고 있습니다. 위의 코드를 참고하여 알림 뱃지 이미지를 생성하고 앱 아이콘에 표시할 수 있습니다.

이렇게 Swift에서는 UIApplication.shared.applicationIconBadgeNumber를 설정하여 알림 뱃지를 표시하고, UNUserNotificationCenter를 사용하여 알림을 생성하여 알림 뱃지를 설정할 수 있습니다. 앱 아이콘에 대한 뱃지 이미지도 생성하여 원하는 숫자를 표시할 수 있습니다.

참고 자료: