๐ iOS32 [RxSwift] Observable Observable ์ด๋?Observable์ RxSwift์์ ๋ฐ์ดํฐ์ ์คํธ๋ฆผ์ ๋ํ๋ ๋๋ค. ๋จ์ํ ๋งํ์๋ฉด, Observable์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ ๋ฐฉ์ถํ ์ ์๋ ๊ฐ์ฒด์ ๋๋ค. ์ด๋ฌํ ๊ฐ๋ค์ ์ฌ์ฉ์ ์ ๋ ฅ, ๋คํธ์ํฌ ์์ฒญ ์๋ต, ํ์ผ ์ ์ถ๋ ฅ ๋ฑ ๋ค์ํ ์์ค์์ ๋ฐ์ํ ์ ์์ต๋๋ค. Observable์ ์ธ ๊ฐ์ง ์ ํ์ ์ด๋ฒคํธ๋ฅผ ๋ฐฉ์ถํ ์ ์๋๋ฐ, ์ด๋ next, error, completed์ ๋๋ค.nextObservable์ด ์๋ก์ด ๋ฐ์ดํฐ ์์๋ฅผ ๋ฐฉ์ถํ ๋ ๋ฐ์ํฉ๋๋ค.Observable์ ์ฌ๋ฌ ๊ฐ์ next ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํฌ ์ ์์ต๋๋ค.error์๋ฌ๊ฐ ๋ฐ์ํ์ ๋ ๋ฐฉ์ถ๋๋ฉฐ, ์ดํ์๋ ๋ ์ด์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.completedObservable์ด ๋ชจ๋ ๋ฐ์ดํฐ ์์์ ๋ฐฉ์ถ์ ์๋ฃ.. 2024. 6. 7. [RxSwift] RxSwift๋? iOS ๊ฐ๋ฐ์๋ผ๋ฉด RxSwift์ ๋ํด ๋ค์ด๋ณธ ์ ์ด ์์ ๊ฒ์ ๋๋ค. RxSwift๋ Swift ์ธ์ด์ ๋ฐ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋์ ํ๋ ๊ฐ๋ ฅํ ํ๋ ์์ํฌ์ ๋๋ค. ์ด๋ฒ ํฌ์คํธ์์๋ RxSwift์ ํต์ฌ ๊ฐ๋ ์ ์ค๋ช ํ๊ณ , iOS ๊ฐ๋ฐ์์ RxSwift๊ฐ ์ด๋ป๊ฒ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ์ ์๋์ง์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.RxSwift๋?RxSwift๋ ๋น๋๊ธฐ์ ์ด๊ณ ์ด๋ฒคํธ ๊ธฐ๋ฐ์ ์ฝ๋๋ฅผ ๊ด์ฐฐ ๊ฐ๋ฅํ ์ํ์ค์ ํจ์ํ ์คํ์ผ์ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑํ ์ ์๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. RxSwift๋ ReactiveX (Reactive Extensions) ํจ๋ฐ๋ฆฌ์ ์ผ๋ถ๋ก, ๋น๋๊ธฐ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๋ค๋ฃจ๊ธฐ ์ํ ์ธ๊ธฐ ์๋ ํจ๋ฌ๋ค์์ ๋๋ค. ์ฃผ์ ๊ฐ๋ ObservableRxSwift์ ํต์ฌ ๋จ์์ ๋๋ค.Observable์ ์๊ฐ์ ๋ฐ๋ผ ์ด.. 2024. 6. 3. [SwiftUI] Text Text A view that displays one or more lines of read-only text ํ ์ค ์ด์์ ์ฝ๊ธฐ ์ ์ฉ text๋ฅผ ํ์ํ๋ ๋ทฐ์ ๋๋ค. Text ๋ทฐ๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ ํ์ํ ํ ์คํธ๋ฅผ ์ง์ ํฉ๋๋ค. import SwiftUI struct ContentView: View { var body: some View { Text("Hello, SwiftUI!") } } ํ ์คํธ ์คํ์ผ ์ ์ฉํ๊ธฐ .font()๋ฅผ ์ฌ์ฉํด ํ ์คํธ์ ๊ธ๊ผด ํฌ๊ธฐ์ ์คํ์ผ์ ์ง์ ํ ์ ์์ต๋๋ค. Text("Hello, SwiftUI!") .font(.title) .title, .caption ๋ฑ ์ฌ์ ์ ์ ์๋ ํ ์คํธ ์คํ์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Text("Hello, SwiftUI!") .font(.system(s.. 2024. 4. 18. [SwiftUI] Stack (VStack/HStack/ZStack) Stack ๋ทฐ๋ฅผ ์์ง ๋๋ ์ํ์ผ๋ก ์ ๋ ฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ปจํ ์ด๋์ ๋๋ค. Stack์ ์ฌ์ฉํด์ ์ฌ๋ฌ๊ฐ์ ๋ทฐ๋ฅผ ๊ทธ๋ฃนํํ๊ณ ๋ ์ด์์์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. VSatck ๋ทฐ๋ฅผ ์์ง์ผ๋ก ์๋ ์คํ์ ๋๋ค. ์ ์ธ๋ ์์๋๋ก ๋ทฐ๋ค์ ์์์ ์๋๋ก ์์ด๊ฒ ๋ฉ๋๋ค. import SwiftUI struct ContentView: View { var body: some View { VStack { Text("First View") Text("Second View") Text("Third View") } } } Alignment VStack์์ alignment ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ํ์ ๋ทฐ์ ์ ๋ ฌ ๋ฐฉ๋ฒ์ ์ง์ ํ ์ ์์ต๋๋ค. .leading์ ์ ํํ๋ฉด ์ผ์ชฝ์ ๊ธฐ์ค์ผ๋ก, .trailing์ ์ ํํ๋ฉด ์ค๋ฅธ์ชฝ์ ๊ธฐ์ค์ผ๋ก, .cente.. 2024. 4. 8. [SwiftUI] Property Wrappers Property Wrappers property wrapper๋ ํ๋กํผํฐ์ custom ํ ๋์์ ์ถ๊ฐํ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค. ํ๋กํผํฐ์ ๋ํ ์ ๊ทผ์ ๋ํ ํ์ฌ ์ถ๊ฐ ๋ก์ง์ด๋ ๋์์ ์บก์ํ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ, ๊ฐ๋ ์ฑ ๋ฐ ์ ์ง ๋ณด์์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. @State view์ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. view ๋ด๋ถ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์๋์ผ๋ก view๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค. ๊ฐ๋ณ ๊ฐ์ผ๋ก ์ทจ๊ธ๋๋ฉฐ, ๋ทฐ๊ฐ ์์ฑ๋ ๋ ํด๋น ๊ฐ์ด ์ด๊ธฐํ๋๊ณ , ์ฌ์ฉ์ ์ํธ ์์ฉ ๋๋ ์ธ๋ถ ์ด๋ฒคํธ์ ๋ฐ๋ผ ๊ฐ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ๋ทฐ ๋ด๋ถ์์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ private์ผ๋ก ์ ์ธํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. import SwiftUI struct ContentView: View { @State private va.. 2024. 4. 4. [๋น๋๊ธฐ ์ฒ๋ฆฌ] ๋น๋๊ธฐ ์ฒ๋ฆฌ๋? ๋น๋๊ธฐ(Asynchronous) ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ด๋ ์์ ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋์์ ์คํํ ์ ์๋ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ ์ ๋๋ค. ๊ฐ ์์ ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆด ํ์ ์์ด ํ๋ก๊ทธ๋จ์ด ๋ค์ ์์ ์ ์ํํ ์ ์๋๋ก ํฉ๋๋ค. ์ฆ, ๋ณ๋ ฌ์ ์ผ๋ก ์์ (task)์ ์ํํฉ๋๋ค. ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ ์ฃผ์ด์ง๋๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ผ๋ ๊ทธ ์๊ฐ ๋์ ๋ค๋ฅธ ์์ ์ ํ ์ ์์ด ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ง๋ง ๋๊ธฐ ๋ฐฉ์๋ณด๋ค ๋ณต์กํ๊ณ task์ ์คํ์์๊ฐ ๋ณด์ฅ๋์ง ์๋๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. ๋น๋๊ธฐ ์ฝ๋ ๋์ค์ ์ ์ ์๋ ์๊ฐ์ ํธ์ถ๋ ์ ์๋ ์ฝ๋ ๋ฐ๋ก ์คํ๋์ง ์์ ์ดํ ๋ผ์ธ์ ์๋ ์ฝ๋๊ฐ ์คํ๋๋ ๊ฒ์ ๋ง์ง ์์ ๋ณดํต ํด๋ก์ ๋ฅผ ํตํด ํด๋น ์์ ์ ์๋ ค์ค completionHandler ํน์ completi.. 2023. 9. 18. ์ด์ 1 2 3 4 ยทยทยท 6 ๋ค์ ๋ฐ์ํ