[swift] SwiftyUserDefaults를 사용하여 사용자 이메일 수신 설정 관리하기

Swift는 편리한 개발을 위해 다양한 라이브러리와 프레임워크를 제공합니다. 그 중 하나인 SwiftyUserDefaults는 iOS 앱에서 사용자 설정을 쉽게 관리할 수 있도록 도와줍니다. 이번 글에서는 SwiftyUserDefaults를 사용하여 사용자 이메일 수신 설정을 관리하는 방법에 대해 알아보겠습니다.

1. SwiftyUserDefaults 설치하기

SwiftyUserDefaults를 사용하기 위해 먼저 Cocoapods를 통해 SwiftyUserDefaults를 프로젝트에 설치해야 합니다. Podfile에 다음과 같은 코드를 추가해주세요:

pod 'SwiftyUserDefaults'

그리고 터미널에서 pod install을 입력하여 SwiftyUserDefaults를 설치해주세요. 설치가 완료되면 .xcworkspace 파일을 열어주세요.

2. 사용자 설정 모델 만들기

사용자 이메일 수신 설정을 관리하기 위해 우선적으로 사용자 설정을 저장할 모델을 만들어야 합니다. 아래와 같이 UserSettings라는 구조체를 만들어주세요:

import SwiftyUserDefaults

struct UserSettings {
    @UserDefaultsWrapper(key: "isEmailEnabled", defaultValue: false)
    static var isEmailEnabled: Bool
}

UserSettings 구조체에는 isEmailEnabled라는 Bool 타입의 프로퍼티가 있습니다. 이 프로퍼티는 SwiftyUserDefaults의 UserDefaultsWrapper를 사용하여 UserDefaults에 저장되는 값입니다.

3. 이메일 수신 설정 변경하기

이제 사용자가 이메일 수신 설정을 변경할 수 있도록 해보겠습니다. 예를 들어, 사용자가 “이메일 수신 허용” 버튼을 토글할 때마다 설정이 변경되도록 구현해보겠습니다.

import UIKit

class EmailSettingsViewController: UIViewController {
    @IBOutlet weak var toggleButton: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        setupToggleButton()
    }
    
    private func setupToggleButton() {
        let isEmailEnabled = UserSettings.isEmailEnabled
        let title = isEmailEnabled ? "수신 중" : "수신 거부"
        let backgroundColor = isEmailEnabled ? UIColor.green : UIColor.red
        
        toggleButton.setTitle(title, for: .normal)
        toggleButton.backgroundColor = backgroundColor
    }
    
    @IBAction func toggleButtonTapped(_ sender: UIButton) {
        UserSettings.isEmailEnabled.toggle()
        setupToggleButton()
    }
}

EmailSettingsViewController는 이메일 수신 설정을 변경하는 화면입니다. setupToggleButton() 메서드에서는 isEmailEnabled 값을 확인하여 버튼의 제목과 배경색을 설정합니다. toggleButtonTapped() 메서드에서는 isEmailEnabled 값을 토글하고, 다시 setupToggleButton()을 호출하여 버튼을 업데이트합니다.

4. 사용자 설정 사용하기

이제 다른 곳에서 저장된 사용자 이메일 수신 설정을 사용할 수 있습니다. 예를 들어, 이메일을 보내는 함수에서 사용자 설정을 확인하여 이메일을 수신할지 여부를 결정할 수 있습니다.

func sendEmail(to email: String, message: String) {
    guard UserSettings.isEmailEnabled else { return }
    // 이메일을 보내는 로직 구현
}

sendEmail(to:message:) 함수에서는 UserSettings.isEmailEnabled 값이 true일 때만 이메일을 보냅니다.

결론

SwiftyUserDefaults를 사용하면 iOS 앱에서 사용자 설정을 간편하게 관리할 수 있습니다. 이번 글에서는 SwiftyUserDefaults를 사용하여 사용자 이메일 수신 설정을 관리하는 방법에 대해 알아보았습니다. SwiftyUserDefaults의 다양한 기능을 활용하여 앱 개발을 더욱 편리하게 만들어보세요!

참고 자료