[swift] SwiftyUserDefaults를 사용하여 푸시 알림 구독 관리하기

소개

푸시 알림은 사용자와 앱 간의 소통을 돕는 중요한 기능 중 하나입니다. 앱에서 푸시 알림을 보내기 위해서는 사용자가 해당 알림을 구독하도록 허용해야 합니다. 이를 위해 SwiftyUserDefaults라는 라이브러리를 사용하여 간편하게 푸시 알림 구독 관리 기능을 구현할 수 있습니다.

SwiftyUserDefaults란?

SwiftyUserDefaults는 UserDefaults를 더 쉽게 사용할 수 있도록 도와주는 Swifty한 라이브러리입니다. UserDefaults는 데이터를 앱의 영구 저장소에 저장하고 검색할 수 있는 인터페이스를 제공합니다. SwiftyUserDefaults는 이 UserDefaults 기능을 더 편리하고 명확하게 사용할 수 있도록 해줍니다.

푸시 알림 구독 관리하기

1. SwiftyUserDefaults 설치하기

CocoaPods를 사용하여 SwiftyUserDefaults를 설치합니다. Podfile에 다음과 같이 추가합니다:

pod 'SwiftyUserDefaults'

그리고 터미널에서 pod install 명령어를 실행하여 라이브러리를 설치합니다.

2. 푸시 알림 구독 설정하기

먼저, UserDefaults에 “pushNotificationSubscribed”라는 키를 선언하여 푸시 알림 구독 상태를 저장합니다. 이 키의 값은 Bool 타입이며, 기본값은 false입니다.

import SwiftyUserDefaults

extension DefaultsKeys {
    static let pushNotificationSubscribed = DefaultsKey<Bool>("pushNotificationSubscribed")
}

Defaults[.pushNotificationSubscribed] = false

3. 푸시 알림 구독/해제 기능 구현하기

import SwiftyUserDefaults
import UserNotifications

class PushNotificationManager {
    static func subscribe() {
        // 푸시 알림 구독 처리
        
        // UserDefaults에 구독 상태를 true로 저장
        Defaults[.pushNotificationSubscribed] = true
        
        // 사용자에게 푸시 알림 구독 성공 메시지 표시
        showSuccessMessage()
    }
    
    static func unsubscribe() {
        // 푸시 알림 구독 해제 처리
        
        // UserDefaults에 구독 상태를 false로 저장
        Defaults[.pushNotificationSubscribed] = false
        
        // 사용자에게 푸시 알림 구독 해제 성공 메시지 표시
        showSuccessMessage()
    }
    
    private static func showSuccessMessage() {
        let successMessage = Defaults[.pushNotificationSubscribed] ? "푸시 알림 구독되었습니다." : "푸시 알림 구독이 해제되었습니다."
        print(successMessage)
        
        // 사용자에게 구독(해제) 성공 메시지를 화면에 표시
        // UIAlertController 등을 사용하여 구현
    }
}

4. 사용자에게 푸시 알림 구독 제공하기

앱의 설정 화면에서 사용자에게 푸시 알림 구독을 제공합니다. 사용자가 구독/해제 버튼을 터치할 때마다 PushNotificationManager를 사용하여 푸시 알림 구독 상태를 변경합니다.

class SettingsViewController: UIViewController {
    @IBAction func pushNotificationSwitchToggled(_ sender: UISwitch) {
        if sender.isOn {
            PushNotificationManager.subscribe()
        } else {
            PushNotificationManager.unsubscribe()
        }
    }
}

결론

SwiftyUserDefaults를 사용하여 간편하게 푸시 알림 구독 관리 기능을 구현할 수 있습니다. UserDefaults를 사용하여 구독 상태를 저장하고, SwiftyUserDefaults를 통해 UserDefaults를 더 편리하게 사용할 수 있습니다. 이를 활용하여 사용자가 편리하게 푸시 알림을 구독하고 해제할 수 있도록 제공하면, 앱의 사용성과 편의성을 크게 향상시킬 수 있습니다.

참고 자료