๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ381 [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. [Swift] ์๋ ์ฐธ์กฐ ์นด์ดํธ ์๋ ์ฐธ์กฐ ์นด์ดํธ(ARC, Automatic Reference Counting)์ฑ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉ์๋์ผ๋ก ์ฐธ์กฐ ํ์๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ์ ๊ฒฝ์ธ ํ์๊ฐ ์๊ณ ARC๊ฐ ์๋์ผ๋ก ์ฌ์ฉํ์ง ์๋ ์ธ์คํด์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ํด์งํน์ ๊ฒฝ์ฐ์ ARC์์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํด ์ฝ๋์ ํน์ ๊ด๊ณ์ ๋ํ ์ ๋ณด๋ฅผ ํ์๋ก ํจ์ฐธ์กฐ ํ์๋ ํด๋์ค ํ์ ์ ์ธ์คํด์ค์๋ง ์ ์ฉ๋๊ณ ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ๋ฑ ๊ฐ ํ์ ์๋ ์ ์ฉ๋์ง ์์ ARC ๋์์๋ก์ด ํด๋์ค ์ธ์คํด์ค๋ฅผ ๋ง๋ค ๋ ๋ง๋ค ARC๋ ์ธ์คํด์ค ์ ๋ณด๋ฅผ ๋ด๋๋ฐ ํ์ํ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฉ๋ชจ๋ฆฌ๋ ์ธ์คํด์ค์ ๋ํ ์ ๋ณด์ ๊ด๋ จ๋ ์ ์ฅ ํ๋กํผํฐ ๊ฐ์ ๊ฐ๊ณ ์์์ธ์คํด์ค๊ฐ ๋์ด์ ์ฌ์ฉ๋์ง ์์ ๋ ARC๋ ๊ทธ ์ธ์คํด์ค๊ฐ ์ฐจ์งํ๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์งํด ๊ณต๊ฐ์ ํ๋ณดAR.. 2024. 4. 2. [Swift] ์ ๋ค๋ฆญ ์ ๋ค๋ฆญ(Generics)์ ์ฐํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํจ์์ ํ์ ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํจ์ธ์๊ฐ์ ํ์ ๋ง ๋ค๋ฅด๊ณ ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ๋ ํจ์๋ฅผ ํ๋๋ก ๋ง๋ค ์ ์์ ์ ๋ค๋ฆญ ํจ์(Generic Functions)ํจ์๋ช ๋ค์ ํ์ ์ด๋ฆ placeholder์ธ T๋ฅผ ์ ์ธํ๊ณ a,b ํ๋ผ๋ฏธํฐ๋ฅผ T๋ก ์ ์ธfunc swapTwoValues(_ a: inout T, _ b: inout T) { let temporaryA = a a = b b = temporaryA}var someInt = 3var anotherInt = 107swapTwoValues(&someInt, &anotherInt)// someInt is now 107, and anotherInt is now 3var someString .. 2024. 4. 2. ์ด์ 1 ยทยทยท 12 13 14 15 16 17 18 ยทยทยท 64 ๋ค์ ๋ฐ์ํ