본문 바로가기
반응형

combine5

SwiftUI View Custom Initializer SwiftUI View 구조체는 자동으로 @Binding 프로퍼티를 초기화 매개변수로 지정하는 생성자를 만든다. 바인딩은 당연하게도 외부에서 값을 전달받아야 하는 프로퍼티이기 때문이다. 그런데 이렇게 하나라도 바인딩 프로퍼티가 있으면 나만의 생성자를 작성하는 것에서 난관이 있을 수 있다. 예를 보자. 아래는 CustomView 라는 View에 바인딩 프로퍼티가 하나 선언된 예다. struct CustomView: View { @Binding var name: String ... } 앞서 이야기했다시피 바인딩 프로퍼티는 자동으로 생성자에 매개변수로 값을 전달받는 인터페이스를 가진다. 그래서 위의 뷰는 아래와 같은 형태로 인스턴스를 생성해서 사용해야 한다. struct ContentView: View { @.. 2021. 5. 17.
Combine과 SwiftUI 컴바인을 활용해서 실무에 좀 더 유용한 내용을 알아봅시다. Combine을 활용하는 가장 직접적인 예는 아마도 이 글에서 살펴볼 Swift 5.1부터 제공되는 Property Wrapper와 이를 이용해 만들어진 SwiftUI의 몇 가지 기능이 이에 해당할지도 모르겠습니다. 이 글에서 살펴볼 것은 네 가지 키워드입니다. 바로 State, Binding, Observed Object, 그리고 Environment Object입니다. 이 키워드들은 Combine을 이용해 구현한 Property Wrapper를 응용해서 만들어진 것들이지요. 이 글은 Swift 5.1, Xcode 11.3을 기준으로 작성하였습니다. State State는 이름처럼 상태 그 자체를 나타냅니다. 영어로는 Source of Trut.. 2020. 1. 28.
약간은 더 현실적인 Combine 예제들 컴바인에 대한 여러 개념적인 이야기들을 써오긴 했는데 역시 개념 설명 글은 와 닿는 것이 없는 것 같습니다. 아무래도 현실적으로 현업에서 쓸 만한 예제는 아니니깐요. 그래서 이번에는 조금은 더 실용성이 있어 보이는 컴바인 예제 투성이라는 주제로 글을 써봅니다. 기본 자료구조의 퍼블리셔 스위프트(Swift)는 다채로운 자료구조를 제공합니다. 예를 들어 기본 타입도 있겠지만 배열(array)이나 사전형(dictionary) 같은 복잡한 자료구조도 있지요. 대표적으로 Sequence.publisher를 살펴보겠습니다. 이 타입은 보통 배열(array) 혹은 리스트(list)라고도 불리며 굉장히 자주 쓰이는 타입이지요? let publisher = [1, 2, 3, 4, 5].publisher publisher.. 2020. 1. 27.
Combine 이벤트 체인이 왜 필요할까? 앞서 작성한 글에서 Combine Framework의 기본 개념인 퍼블리셔(Publisher)와 서브스크라이버(Subscriber), 그리고 서브젝트(Subject)에 대해 간략히 살펴봤습니다. 이번 글에서는 왜 이런 것을 이용해 프로그래밍을 하는지에 대한 이유를 정리해보고자 합니다. 사실 잘 설명할 수 있을지는 의문이긴 합니다만, 개인적으로도 글로 정리하는 것이 큰 공부가 되기에 억지로(?) 글을 써 봅니다. 전통적인 예제 그냥 다짜고짜 예제부터 시작해 봅시다. var value = 1 if value % 2 == 0 { print("\(value) is even!") } 이 코드의 의도는 value의 값이 짝수인지 판단하는 것입니다. 짝수이면 해당 값을 콘솔에 찍지요. 실행시키면 당연하게도 1은 짝수.. 2020. 1. 23.
Combine Framework는 어떤 녀석일까요? Combine Framework는 SwiftUI가 소개되면서 함께 소개된 정체 불며의 이벤트 기반 데이터 흐름 처리 프레임워크입니다. 근데 이 설명은 사실 멋대로 붙인 거고, 실제론 Rx의 애플판이라는 말이 더 맞다고는 하는데 저는 Rx도 몰라요. 그렇다면 바닥부터 공부해야겠네요... 아아... Combine Framework Combine 은 이벤트 처리 오퍼레이터를 조합하여 만든 비동기 이벤트 처리 프레임워크입니다. 네 뭔 소리인지 모르겠습니다. 어쨌든 앞서 이야기 했다시피 보통은 Rx라는 것이 사용하던 반응형(Reactive) 프로그래밍 라이브러리라고 설명합니다. 뭐 이렇게 이야기 해 봤자 의미 없으니 막무가내로 예제 코드부터 시작합시다. import Combine 네. Combine 은 프레임워크.. 2020. 1. 15.
728x90
반응형