전체 글
-
Swift(UIKit) 를 SwiftUI처럼 쓰는 방법SwiftUI 2021. 12. 24. 13:28
1. Builder Pattern 사용 : 명명을 Worker로 변경(Ribs에서 Builder 가 충돌나기 때문) dynamicMemberLookup에 대한 상세 설명 및 출처 : https://kkimin.tistory.com/83 import UIKit @dynamicMemberLookup struct Worker { private var base: Base init(_ base: Base) { self.base = base } subscript(dynamicMember keyPath: ReferenceWritableKeyPath) -> (Value) -> Worker { { [base] value in base[keyPath: keyPath] = value return Worker(base) } ..
-
Swift AsyncSequence (비동기 시퀀스에 대한 지원)Swift 2021. 12. 22. 13:51
Swift 5.5 async await 과 함께 https://developer.apple.com/documentation/swift/asyncsequence AsyncSequence라 우선 Async Await 도 알아야한다 : https://kkimin.tistory.com/56 (더이상 completiion 콜백은 안녕~~) AsyncSequence 란 protocol AsyncSequence 다른곳에서 다음과 같은 예제도 볼 수 있었다. let url = URL(string: "https://www.donnywals.com")! let sequence = url.lines.map { string in return string.count } for try await line in sequence {..
-
Feature flags in SwiftSwift 2021. 12. 22. 13:27
Feature flags 란? 말 그대로 기능 flag 를 뜻한다. 서버로 실시간으로 변경해서 -> 보이는 화면을 다르게 만들어 주는 개념 : 사용자가 보이는 화면을 바로 다르게 해줄 수 있기 때문에 아래와 같은 장점이 아주아주 좋다고 느껴졌다(공감 100) 1. 빌드 시간을 줄일 수 있고 2. 여러가지로 빠르게 테스트 할 수 있도록 제공해줄 수 있습니다. (서로 윈윈 ) + 기능을 제한적으로 오픈하거나 + 서비스가 안정적으로 오픈되기 전까지 해둘 수 있다. (예를 들어, 서버에서 1로주면 기능을 보여주고, 0으로 주면 보여주지 않는다고 가정할 경우 기능에 문제가 있을때 서버를 수정해 빠르게 대응할 수 도 있는 등 장점이 있다.) + 서비스 부하나 조금씩 오류 등을 확인해 부정적인 반응을 낮춰 점진적으로..
-
Swift nil, 왜 null이 아닐까?Swift 2021. 12. 19. 02:23
출처 : https://www.quora.com/Why-does-Swift-use-nil-instead-of-null Swift does allow use of null in a C-like way, but also has a more abstract concept of optional values. In a language like C, all pointer types are optional and all "non-pointer" types are not. This is a direct consequence of how C models optional values: pointers that point nowhere — that have an address value of 0 on many systems..
-
RxSwift 를 사용하는 이유, 선언적 프로그래밍에 대해 (+선언적 UI)RxSwift 2021. 12. 16. 15:57
Let us Go 2017 가을 행사 https://www.youtube.com/watch?v=cXi_CmZuBgg 를 보고 정리 겸 공부 하기 위해 작성하는 글 입니다. (모든 출처 곰튀김님 감사합니다) Programming : input 으로 output을 만들어 낸다 우리의 개발 패러다임은 Low Memory 시대에서 -> High Memory 시대가 되면서 변화하고 있다. 그러면서 data : program = 1:1 이 아니게 된다. data를 여러곳에서 write를 하게 되는셈이된다. async 가 제일 먼저 생각날텐데 전역변수로 선언되어있는 데이터의 값이 여러곳에 의해 변경될 여지가 있다. 따라서 Immutable 변수를 제공해주는것이다. 데이터 공유를 위해 동시에 쓰지 못하게 하는거지! 그..
-
Property WrapperSwift 2021. 12. 13. 13:30
Swift5.1에서 추가된 기능 Swift UI 관련된 영상을 보면 @ObservedObject , @Binding, @State 이런 친구들이 있는데 ...! Property 앞에 선언해서 사용하는 형식이다. 아래 같은 느낌이다. @ObservedObject var viewModel = ViewModel() Propery Wrapper는 반복되는 로직을 프로퍼티에 연결할 수 있다. @propertyWrapper 를 붙이고 wrappedValue 라는 반복되는 로직을 넣으면 된다. 내 예제는 Userdefaults에 Property Wrapper를 적용한것이다. @propertyWrapper// 이런식으로 선언해주고 struct UserDefaultsWrapper { let key: String let ..
-
Combine vs RxSwiftRxSwift 2021. 12. 13. 11:12
https://tv.naver.com/v/19397553 RxSwift, Combine 둘 중에 어느 것을 공부해야 할까요 NAVER Engineering | 발표자: 김용수 (NAVER) 발표월: 2021.03. 개요 RxSwift와 Combine이 그렇게 비슷하다는데, 지금 타이밍에 어느 것을 공부하는 것이 좋을지? 에 대하여 얘기를 나누어 보았습니다. tv.naver.com 정답이 없는 얘기지만 위 영상을 보고 생각하기 현업에 도입하기에 가장 중요한점 : + SwiftUI도 최소버전이 ios13임 iOS 13 최소버전이 되는지 아래 Combine 예제를 보면 Rx와 매우 흡사하고 개념도 비슷하다는걸 알 수 있다. let eventProvider = MoyaProvider() eventProvider..