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를 사용하여 알림을 생성하여 알림 뱃지를 설정할 수 있습니다. 앱 아이콘에 대한 뱃지 이미지도 생성하여 원하는 숫자를 표시할 수 있습니다.
참고 자료:
- Apple Developer Documentation - UNUserNotificationCenter
- Apple Developer Documentation - UIApplication.shared
- Apple Developer Documentation - UIApplication.shared.applicationIconBadge