티스토리 뷰

구조체(struct) 및 확장(extension) 기능을 이용하여 코드를 간결하게 작성하는 방법을 나름대로 정리해보려고 합니다.


아래는 구조체를 이용하여 폰트의 종류나 크기로 예를 들어 코드를 작성해 본 것입니다.

import UIKit

struct Styles {
    private init(){}
    
    struct Fonts {
        private init(){}
        
        static let light = UIFont(name: "NanumSquareL", size: 12.0)!
        static let regular = UIFont(name: "NanumSquareR", size: 12.0)!
        static let bold = UIFont(name: "NanumSquareB", size: 12.0)!
        static let extraBold = UIFont(name: "NanumSquareEB", size: 12.0)!
        
        static func light(size: CGFloat) -> UIFont {
            return UIFont(name: "NanumSquareL", size: size)!
        }
        
        static func regular(size: CGFloat) -> UIFont {
            return UIFont(name: "NanumSquareR", size: size)!
        }
        
        static func bold(size: CGFloat) -> UIFont {
            return UIFont(name: "NanumSquareB", size: size)!
        }
        
        static func extraBold(size: CGFloat) -> UIFont {
            return UIFont(name: "NanumSquareEB", size: size)!
        }
        
        struct Size {
            private init(){}
            
            static let small: CGFloat = 12
            static let regular: CGFloat = 16
            static let large: CGFloat = 24
        }
    }
}
import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        // Configure View
        var label = UILabel()
        label.font = Styles.Fonts.regular(size: Styles.Fonts.Size.regular)
    }
}


확장을 통해 간결하게 작성하는 법은 UIColor를 예로 들어 코드를 작성해 보았습니다.

import UIKit

extension UIColor {
    static let base = UIColor(red:1.00, green:0.20, blue:0.70, alpha:1.00)
    static let text = UIColor(red:0.30, green:0.35, blue:0.30, alpha:1.00)
    static let defaultBackground = UIColor(red:0.60, green:0.80, blue:0.90, alpha:1.00)
    static let button = UIColor(red: 1.00, green: 1.00, blue: 1.00, alpha: 1.00)
}
import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        // Configure View
        self.view.backgroundColor = .base
    }
}


위와 같은 구성으로 앱의 스타일을 적용한다며 추후 변경사항이 있을 때, 간단하고 일관되게 수정가능할 것입니다.

자신이 원하는 방식으로 조금씩 코드를 개선해가면 좀 더 성장할 수 있지 않을까 생각합니다.

'Swift' 카테고리의 다른 글

mutating 키워드에 대해 알아보기  (0) 2018.06.11
inout 파라미터 알아보기  (0) 2018.06.08
URLSession 쿠키 삭제하기  (0) 2018.05.23
navigationBar 하단 border 핸들링.  (0) 2018.04.06
guard문 알아보기.  (0) 2018.04.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함