일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- stack
- SwiftUI
- 웹뷰
- window
- Code
- rxswift
- Realm
- MacOS
- FLUTTER
- darkmode
- Swift
- JPA
- UIButton
- Apple
- Git
- iOS16
- Xcode
- mac
- Archive
- IOS
- view
- Notification
- appstore
- github
- Session
- geofencing
- Firebase
- 한글
- error
- 개발자
- Today
- Total
목록rxswift (4)
EEYatHo 앱 깎는 이야기
개요 UIKit 에 RxBus 를 사용하던 프로젝트를, SwiftUI + TCA 로 컨버팅하면서 발생한 일. SwiftUI.View 가 struct 라 내부 closure 에 weak self 를 사용할 수 없음. TCA 의 reducer 도 struct 로 제공 중. 기 사용중이던 RxBus 는 Rx를 통해 전역 이벤트를 수신해야함. 해당 과정에서 weak를 사용하지 못하기에, self 를 강한참조하여 메모리 릭 발생.. 해결 과정 & Solution SwiftUI(struct) 에서, 비동기 First Party인 NotificationCenter를 어떻게 사용하는지 탐구. -> Combine을 사용하여 수신하는 것을 발견. -> RxBus 이벤트를 받으면 Combine publisher를 sink하..
RxSwift 의 Scheduling RxSwift 에서 제공하는 스케쥴러(쓰레드) 관리 API 는 2가지 subscribe(on: Scheduler) subscribeOn is deprecated and renamed observe(on: Scheduler) observeOn is deprecated and renamed subscribe(on:) operator chain 의 어디에서 호출하든 모든 closure 의 Scheduler 설정. 여러개를 호출할 경우, 맨 처음(맨 위)의 subscribe(on:) 만 적용됨. subscribe(on:)이 없으면, create {} 는 관찰하는 곳(subscribe()이 호출된 곳)에서 호출된다. 여기서 정해진 Scheduler는, observe(on:)이..
테이블 리로드 후, 스크롤 하는 기능을 만들어야해서... reload completion 관련으로 엄청 삽질했는데...... 그냥 테이블 그리는 이벤트 발생, 스크롤 하는 이벤트 발생으로 단순하게 하면 잘.. 됩..니..다...ㅇㄴㅁㄴㅁㅇㄴㅁㄹㅁㄴ 충격에 휩싸여서 쓰는 글 ㅠ tableRelay.acceopt(list) tablaScrollRelay.accept(scrollIndex) 이런식으로 말이죠 ㅜㅡ..
[ NotificationCenter로 백그라운드 감지 ] if #available(iOS 13.0, *) { NotificationCenter.default.addObserver(self, selector: #selector(taskFunc), name: UIScene.willDeactivateNotification, object: nil) } else { NotificationCenter.default.addObserver(self, selector: #selector(taskFunc), name: UIApplication.willResignActiveNotification, object: nil) } [ NotificationCenter로 포그라운드 감지 ] if #available(iOS 13.0..