2024/06 4

[RxSwift] BehaviorSubject, PublishSubject, ReplaySubject, AsyncSubject

[RxSwift] Observable & Observer (just, of, from, create)RxSwfitReactive eXension + Swift๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง๊ด€์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌRxSwift๋Š” ๊ตฌ๋…(Observe)์„ ํ•ด์„œ ๋ฐ์ดํ„ฐ ๋ณ€ํ™”์— ๋ฐ˜์‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„yegenie-coding.tistory.comObseravable & ObserverObservable์€ ์ด๋ฒคํŠธ๋ฅผ "์ „๋‹ฌ"ํ•˜๋Š” ๋…€์„์ด๊ณ , Observer๋Š” ๊ทธ ์ด๋ฒคํŠธ๋ฅผ "์ฒ˜๋ฆฌ"ํ•˜๋Š” ๋…€์„์ด๋‹ค.์ด๋ฒคํŠธ๋ฅผ ๊ด€์ฐฐํ•˜๋Š” Observable๋ฅผ ๊ตฌ๋…(subscribe)์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ์ด๋ฒคํŠธ๋ฅผ ๋ฐฉ์ถœํ•˜๊ฒŒ ๋œ๋‹ค.ํ•˜์ง€๋งŒ, Observable์€ "์ „๋‹ฌ๋งŒ"ํ•  ์ˆ˜ ์žˆ๊ณ , Observe..

RxSwift 2024.06.26

[RxSwift] Observable & Observer (just, of, from, create)

RxSwfitReactive eXension + Swift๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง๊ด€์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌRxSwift๋Š” ๊ตฌ๋…(Observe)์„ ํ•ด์„œ ๋ฐ์ดํ„ฐ ๋ณ€ํ™”์— ๋ฐ˜์‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. Observable & Observerโ–ท Observable์„ ํ†ตํ•ด์„œ ์ด๋ฒคํŠธ ๊ฐ’์„ ๋ฐฉ์ถœ(Emit)ํ•  ์ˆ˜ ์žˆ๊ณ , ์ด ๊ฐ’์„ ๊ตฌ๋…(Subscribe)ํ•˜์—ฌ ๊ด€์ฐฐํ•˜๊ณ  ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.โ–ท ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ด€์ž˜์ฐจ(Observer)๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ณ€ํ™”์— ๋ฐ˜์‘ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•œ๋‹ค. (ex. UI ์—…๋ฐ์ดํŠธ, ํด๋ฆญ ์ด๋ฒคํŠธ, ...)→ Observable์„ ๊ตฌ๋…ํ•˜๊ณ  ์žˆ๋Š” Observerโ–ท Observable์€ 3๊ฐ€์ง€ ์ด๋ฒคํŠธ๋ฅผ ๋ฐฉ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. - onNext: ๋‹ค์Œ ๊ฐ’์„..

RxSwift 2024.06.24

[Swift] ํ”„๋กœํผํ‹ฐ(Property) โ‘ก - ํƒ€์ž…

ํ”„๋กœํผํ‹ฐ ๊ฐ์‹œ์ž (Property Observers)- ํ”„๋กœํผํ‹ฐ ๊ฐ’์ด ๋ณ€๊ฒฝ๋จ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์ž‘์—…์„ ์ทจํ•  ์ˆ˜ ์žˆ๋‹ค. - ๋˜ํ•œ, ํ”„๋กœํผํ‹ฐ ๊ฐ’์ด ์ƒˆ๋กœ ํ• ๋‹น๋  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ๋œ๋‹ค.- ๋ณ€๊ฒฝ๋˜๋Š” ๊ฐ’์ด ํ˜„์žฌ์˜ ๊ฐ’๊ณผ ๊ฐ™๋”๋ผ๋„ ํ˜ธ์ถœ๋œ๋‹ค.- ์ €์žฅ ํ”„๋กœํผํ‹ฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”„๋กœํผํ‹ฐ๋ฅผ ์žฌ์ •์˜ํ•ด ์ƒ์†๋ฐ›์€ ์ €์žฅ ํ”„๋กœํผํ‹ฐ ๋˜๋Š” ์—ฐ์‚ฐ ํ”„๋กœํผํ‹ฐ์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.- ์ƒ์†๋ฐ›์ง€ ์•Š์€ ์—ฐ์‚ฐ ํ”„๋กœํผํ‹ฐ์—๋Š” ํ”„๋กœํผํ‹ฐ ๊ฐ์‹œ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. (์ €์žฅ๋˜์–ด์•ผ ํ•  ๊ฐ’์ด ์žˆ์„ ๋•Œ๋งŒ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์—)• willSetํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๊ธฐ ์ง์ „์— ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์„œ๋“œ• didSetํ”„๋กœํผํ‹ฐ ๊ฐ’์ด ๋ณ€๊ฒฝ๋œ ์งํ›„์— ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์„œ๋“œ• willSet & didSet์˜ ๋งค๊ฐœ๋ณ€์ˆ˜willSet ๋ฉ”์„œ๋“œ์— ์ „๋‹ฌ๋˜๋Š” ์ „๋‹ฌ์ธ์ž → ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๊ฐ’didSet ๋ฉ”์„œ๋“œ์— ์ „๋‹ฌ๋˜๋Š” ์ „๋‹ฌ์ธ์ž..

Swift 2024.06.04

[Swift] AutomaticDimension

์ข‹์€ ์ฝ”๋“œ ๊ตฌ์„ฑ์€ ์•„๋‹ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ AutomaticDimension์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ ์–ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!๊ธฐ๋ณธ ์…‹ํŒ… ์ฝ”๋“œ๋Š” ์•„๋ž˜ ์ ‘์€ ๊ธ€๋กœ ์ ์–ด๋‘๊ฒ ์Šต๋‹ˆ๋‹ค :)๋”๋ณด๊ธฐimport UIKitimport SnapKitclass ViewController: UIViewController { let tableView = UITableView() override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .white configureTableView() } func configureTableView() { view.addSu..

Swift 2024.06.03