[swift] SwiftyUserDefaults를 사용하여 사용자 폰트 설정 관리하기

모바일 애플리케이션에서 사용자에게 폰트 설정을 제공하는 것은 매우 중요합니다. 이번 포스트에서는 Swift 언어의 SwiftyUserDefaults 라이브러리를 사용하여 사용자의 폰트 설정을 관리하는 방법을 알아보겠습니다.

SwiftyUserDefaults란?

SwiftyUserDefaults는 UserDefaults를 사용하여 데이터를 저장하고 검색하는 프로퍼티 래퍼입니다. 이 라이브러리는 Swift 언어에서 UserDefaults 사용을 간편하게 만들어줍니다. 사용자 정의 타입을 저장할 수 있으며, 타입 안전성을 보장하여 런타임 오류를 방지할 수 있습니다.

시작하기 전에

SwiftyUserDefaults를 사용하기 위해 먼저 프로젝트에 추가해야 합니다. 프로젝트의 Podfile에 다음 줄을 추가하세요.

pod 'SwiftyUserDefaults'

그런 다음 터미널에서 pod install 명령어를 실행하여 라이브러리를 설치하세요.

폰트 설정 저정 및 가져오기

다음은 SwiftyUserDefaults를 사용하여 사용자의 폰트 설정을 저장하고 가져오는 간단한 코드 예제입니다.

import SwiftyUserDefaults

// 사용자 정의 폰트 설정 타입
enum FontSetting: String {
    case small
    case medium
    case large
}

// 사용자 폰트 설정을 저장할 변수
extension DefaultsKeys {
    static let fontSetting = DefaultsKey<FontSetting>("fontSetting")
}

// 폰트 설정 저장
func saveFontSetting(_ fontSetting: FontSetting) {
    Defaults[.fontSetting] = fontSetting
}

// 폰트 설정 가져오기
func getFontSetting() -> FontSetting {
    return Defaults[.fontSetting]
}

위의 코드에서는 FontSetting이라는 사용자 정의 타입을 만들고, DefaultsKeys를 확장하여 fontSetting이라는 프로퍼티를 추가합니다. saveFontSetting 함수는 사용자의 폰트 설정을 저장하고, getFontSetting 함수는 저장된 폰트 설정을 가져옵니다.

폰트 설정 사용하기

폰트 설정을 가져온 후에는 해당 설정을 UI에 적용하는 등의 작업을 수행할 수 있습니다. 다음은 폰트 설정에 따라 라벨의 폰트를 변경하는 코드 예제입니다.

func applyFontSetting() {
    let fontSetting = getFontSetting()
    var fontSize: CGFloat = 0
    
    switch fontSetting {
    case .small:
        fontSize = 12
    case .medium:
        fontSize = 16
    case .large:
        fontSize = 20
    }
    
    let font = UIFont.systemFont(ofSize: fontSize)
    myLabel.font = font
}

위의 코드에서는 getFontSetting 함수를 사용하여 사용자의 폰트 설정을 가져온 후, switch 문을 사용하여 폰트 크기를 결정합니다. 이후 해당 폰트 크기에 맞는 폰트를 생성하고 라벨에 적용하는 작업을 수행합니다.

결론

이번 포스트에서는 SwiftyUserDefaults를 사용하여 사용자의 폰트 설정을 관리하는 방법에 대해 알아보았습니다. SwiftyUserDefaults를 사용하면 매우 간편하게 UserDefaults를 활용할 수 있으며, 데이터의 타입 안정성을 보장할 수 있습니다. 사용자가 애플리케이션의 폰트 설정을 변경할 수 있도록 함으로써, 더 나은 사용자 경험을 제공할 수 있습니다.

참고 자료