iOS의 built-in framework 중, Combine이 있습니다. 그 중, Future라는 publisher에 대한 기본적인 사용방법 부터, 제한사항, 주의사항과 이를 해결하는 대안 등에 대해서 알아보겠습니다. 🤔 Combine framework, Future Publisher 란? Future Publisher는 클로져를 통해 일정 작업을 수행하고, 그 콜백을 단일 값으로 방출하고 싶을때 사용할 수 있는 Publisher입니다. 클로져 내에서 원하는 작업을 수행 후, 그 결과값을 방출하거나, 필요시 Error를 던질 수도 있습니다. 만약 failure 케이스가 없다면, Failure 타입을 Never로 지정하면 됩니다. Future Publisher 기본 사용 예시 및 주의사항 1 // fut..
combine을 사용하다보면, type erasure 역할을 하는 eraseToAnyPublisher를 많이 사용하게 되는데요. 오늘은 Combine framework에서 제공하는 eraseToAnyPublisher 공식 문서를 살펴보는 시간을 가져보겠습니다. eraseToAnyPublisher Overview eraseToAnyPublisher는 instance method이며, iOS13+에서 지원합니다. type erasure와 함께 publisher를 wrapping합니다. Declaration을 보면, Output, Failure 타입을 가진 AnyPublisher를 반환하고 있습니다. eraseToAnyPublisher는 downstream subscriber에게 publisher의 상세 타입..
오늘은 iOS의 Combine framework를 활용해서 UIView, UIButton(UIControl을 상속받는 애들)의 탭 이벤트(+ throttle publisher event)를 Custom Publisher를 만들어서 구독하고, UI와 바인딩해서 사용해보는 시간을 갖도록 합니다. 프로젝트는 UILabel, UIButon을 중앙에 배치시켰습니다. 이제 위에 있는 UILabel, UIButton에 탭이벤트를 적용시켜볼 예정입니다. ViewController.swift 초기 모습 생성한 ViewController 파일 초기 모습입니다. 임의의 이름으로 UIButton, UILabel (centerButton, centerLabel)을 생성했습니다. 그리고 Publisher 구독정보를 관리한 can..
UIKit으로 View를 구성할때 뿐만 아니라 SwiftUI를 사용할때도 키보드가 올라오거나 내려가는 등의 이벤트가 발생했을때를 감지해서 뷰의 상태를 변화시키고 싶을때가 있을텐데요. 오늘은 Combine framework에서 제공하는 Combine framework, Publisher를 사용해서 SwiftUI View 에서 공통적으로, 혹은 개별적으로 키보드 이벤트를 처리하는 방법을 알아보겠습니다. SwiftUI View에서 키보드 show, hide 이벤트 처리하는 프로토콜, Publisher 구현하기 KeyboardReadable protocol 구현 먼저 키보드 이벤트를 감지할 View에 채택해서 사용할 프로토콜을 구현하겠습니다. Combine framework에서 사용할 Publisher 뿐만 아..
- Total
- Today
- Yesterday
- 알고리즘문제
- createML
- 알고리즘
- 김프매매
- swift reduce
- publisher
- CoreML
- swift
- 스위프트
- swift문제
- 자연어처리
- 컬렉션
- swift string
- 백준알고리즘
- Collection
- 프로그래머스swift
- Protocol
- 개발자문서
- SwiftUI
- Swift 알고리즘
- swift언어
- swift 기초
- swift 문자열
- ios
- 프로토콜
- 부스트코스
- uikit
- 백준swift
- swift알고리즘
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |