모바일 개발 (4) 썸네일형 리스트형 Swift Decodable Tip (1) 아마 SwiftyJSON을 사용하는 케이스가 아니라면 자연스럽게 Codable을 많이 이용하실 겁니다. 개인적으로 SwiftyJSON은 직관적(?)으로 내부 구조에 접근하는 반면, Codable을 사용할 때에는 다소 귀찮은 점이 많았습니다. 특히 Decode를 할 때가 많다보니, 종종 서버 응답이 복잡한 구조라면 골치가 아픈 적이 종종 있어서, 이번 기회에 개인적으로 사용하고 있는 팁을 두 번의 포스팅을 통해 짧게나마 나누어 적어두고자 합니다. KeyDecodingStrategy 대부분의 iOS개발에서 권장되는 변수 네이밍 규칙 중 하나가 camelCase인데, 서버응답은 snake_case로 올 때가 매우 빈번하죠 그러다보니 CodingKeys를 활용하여 프로퍼티 하나 하나 별도로 매칭 시켜주는 경우가.. Diffable Data Source 점멸현상 방지 실험 최근 Rx기반의 구조에서 멀어지고 있어서, RxDataSource를 대체하는 UITableViewDiffableDataSource나 UICollectionViewDiffableDataSource를 활용하고 있습니다. - https://developer.apple.com/documentation/uikit/uitableviewdiffabledatasource Apple Developer Documentation developer.apple.com - https://developer.apple.com/documentation/uikit/uicollectionviewdiffabledatasource Apple Developer Documentation developer.apple.com 점멸(?) 현상 방지 .. Property Wrapper 이름그대로 property를 감싸는 기능이고, property get/set영역이 중복되는 경우가, 여러 파일에 걸쳐 산재되어 있는 경우에 적합한 기능입니다. 개인적으로는 현업 코드에도 종종 활용하는 기능이고, 주로 UserDefault활용할 때 사용하고 있습니다. https://github.com/apple/swift-evolution/blob/master/proposals/0258-property-wrappers.md 사용방법은 위의 링크에도 나와있지만, 개인적으로 사용하는 방법을 간단하게 소개합니다 @propertyWrapper struct MyDefaults { let key: String let defaultValue: Value var userDefaults: UserDefaults = .st.. VIP 최근에 회사의 아키텍처 전환으로 인해 VIP 구조에 대해 알아봤습니다 아래의 그림처럼 각 주요 인스턴스간의 관계를 순환하는 형태로 맞물려 있고, 각 인스턴스의 주요 역할은 ViewController → Display Logic Interactor → Business Logic Presenter → Present Logic 역할들을 프로토콜로 만들어 각 인스턴스가 준수할 수 있도록 합니다. Display vs Present 개인적으로 각 역할을 보면 Business Logic은 의미가 분명한 것에 비해, 비교적 나머지 2개의 로직은 불명한 것으로 생각이 되었고, 이에 대해 확실한 구분방법이 필요했었습니다.(정확한 것은 아니지만...) Display Logic - HOW Present Logic - WHAT.. 이전 1 다음