[swift] SwiftyUserDefaults를 사용하여 앱의 뱃지 개수 관리하기

안녕하세요! 이번 글에서는 SwiftyUserDefaults 라이브러리를 사용하여 iOS 앱의 뱃지 개수를 손쉽게 관리하는 방법에 대해 알아보겠습니다.

1. SwiftyUserDefaults란?

SwiftyUserDefaults는 UserDefaults를 더 편리하게 사용할 수 있도록 도와주는 Swift 라이브러리입니다. UserDefaults는 iOS 앱에서 간단한 데이터를 저장하고 불러오는 데 사용되는 기능입니다. SwiftyUserDefaults는 이러한 UserDefaults를 감싸고 있어서 더 쉽게 사용할 수 있도록 해줍니다.

2. 뱃지 개수 저장하기

먼저, SwiftyUserDefaults를 프로젝트에 추가해야 합니다. Cocoapods를 사용한다면 Podfile에 다음과 같이 추가해주세요.

pod 'SwiftyUserDefaults'

이후, 터미널에서 pod install 명령어를 실행하여 SwiftyUserDefaults를 설치합니다.

뱃지 개수를 저장하기 위해 아래의 코드를 AppDelegate.swift 파일에 추가합니다.

import UIKit
import SwiftyUserDefaults

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // 뱃지 개수 기본값 설정
        Defaults[\.badgeCount] = 0

        return true
    }

    // ...
}

위 코드에서는 뱃지 개수를 저장할 badgeCount라는 속성을 선언하고 기본값으로 0을 설정합니다.

3. 뱃지 개수 업데이트하기

이제 뱃지 개수를 업데이트하는 방법을 알아보겠습니다. 예를 들어, 알림을 받을 때마다 뱃지 개수를 증가시키고 싶다면 다음과 같이 코드를 작성할 수 있습니다.

import UIKit
import SwiftyUserDefaults

class ViewController: UIViewController {

    // ...

    // 뱃지 개수 업데이트
    func updateBadgeCount() {
        let currentCount = Defaults[\.badgeCount]
        Defaults[\.badgeCount] = currentCount + 1
        UIApplication.shared.applicationIconBadgeNumber = currentCount + 1
    }

    // ...
}

위 코드에서는 updateBadgeCount 메서드를 호출할 때마다 현재 뱃지 개수를 가져와서 1을 증가시키고, UserDefaults에 저장한 뒤 앱 아이콘의 뱃지 개수를 업데이트합니다.

4. 뱃지 개수 사용하기

이제 저장된 뱃지 개수를 사용하는 방법을 알아보겠습니다. 예를 들어, 뱃지 개수를 화면에 표시하고 싶다면 다음과 같이 코드를 작성할 수 있습니다.

import UIKit
import SwiftyUserDefaults

class ViewController: UIViewController {

    // ...

    // 뱃지 개수 표시
    func showBadgeCount() {
        let badgeCount = Defaults[\.badgeCount]
        badgeLabel.text = "\(badgeCount)"
    }

    // ...
}

위 코드에서는 showBadgeCount 메서드를 호출할 때마다 UserDefaults에서 뱃지 개수를 가져와서 화면에 표시합니다.

5. 뱃지 개수 초기화하기

뱃지 개수를 초기화하고 싶을 때는 다음과 같이 코드를 작성할 수 있습니다.

import UIKit
import SwiftyUserDefaults

class ViewController: UIViewController {

    // ...

    // 뱃지 개수 초기화
    func resetBadgeCount() {
        Defaults[\.badgeCount] = 0
        UIApplication.shared.applicationIconBadgeNumber = 0
    }

    // ...
}

위 코드에서는 resetBadgeCount 메서드를 호출할 때마다 UserDefaults의 뱃지 개수를 0으로 설정하고, 앱 아이콘의 뱃지 개수도 0으로 초기화합니다.

참고 자료

SwiftyUserDefaults 공식 문서: https://github.com/radex/SwiftyUserDefaults

이상으로 SwiftyUserDefaults를 사용하여 iOS 앱의 뱃지 개수를 관리하는 방법에 대해 알아보았습니다. SwiftyUserDefaults를 사용하면 UserDefaults를 간편하게 사용할 수 있으며, 뱃지 개수 관리 외에도 다양한 데이터를 손쉽게 저장하고 불러올 수 있습니다. 이를 통해 더 효율적인 앱 개발을 할 수 있습니다.