728x90 ๋ฐ์ํ SwiftUI6 [WWDC 2022] ๊ธฐ์กด UIKit ์ฑ์ SwiftUI ์ ์ฉํ๊ธฐ (Use SwiftUI with UIKit) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์์ ๋ถํฐ WWDC ๋ด์ฉ์ ์ ๋ฆฌํ๊ณ ์ถ์๋๋ฐ ๋๋์ด ์ค๋ WWDC์ ๋ํด ๊ธ์ ์์ฑํ๊ฒ ๋๋ค์. WWDC 2022์์ ๊ฐ์ฅ ๊ด์ฌ์ ๋์๋ ์ธ์ ์ UIKit ์ฑ์ SwiftUI๋ฅผ ์ ์ฉํ๋ ์ธ์ ์ด์๋๋ฐ์. ํด๋น ์ธ์ ์ ์ง์ ๊ตฌํํด ๋ณด๊ณ ์ ๋ฆฌํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ (Xcode 14 Beta๋ก ์งํ๋๊ธฐ ๋๋ฌธ์ ํน์ ๋ฏธ๋ฆฌ ๊ฒฝํํ๊ณ ์ถ์ ๋ถ๋ค์ ์ฌ๊ธฐ ์์ ๋ค์ด๋ก๋ ๋ฐ์์ ์งํํด ์ฃผ์ธ์~) Preview UIHostingController UIHostingController๋ SwiftUI ๋ทฐ๋ฅผ ํฌํจํ UIViewController์ ๋๋ค. UIHostingController๋ฅผ ์ด์ฉํ์ฌ UIViewController์์ SwiftUI ๋ทฐ๋ฅผ ํ์ ํ์์ผ๋ก ๋์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.. 2022. 7. 9. [SwiftUI] GeometryReader๋? (feat. GeometryProxy,CoordinateSpace) ์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค! ์ค๋์ SwitUI๋ฅผ ์ด์ฉํด์ Layout์ ์ก์ ๋ ์์ฃผ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ GeometryReader์ ๋ํด์ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ GeometryReader๋? ์ด๋ฆ์ ์ง์ญํ๋ฉด Geometry๋ ๊ธฐํํ์ ๋ํ๋ด๋๊น, ๊ธฐํํ์ ์ธ ๋ฌด์ธ๊ฐ๋ฅผ ์ฝ๋ ๊ฒ์ด๋ผ๊ณ ํด์ํ ์ ์๋๋ฐ์. ๊ณต์ ๋ฌธ์์๋ ์ด๋ฆ์ ์ง์ญํ ๊ฒ๊ณผ ๋น์ทํ๊ฒ "์ปจํ ์ธ ์ ํฌ๊ธฐ์ ์์น๋ฅผ ํจ์๋ก ๋ํ๋ด๋ ์ปจํ ์ด๋ ๋ทฐ์ผ!" ๋ผ๊ณ ์๊ฐํฉ๋๋ค. GeometryReader๋ฅผ ์ด๊ธฐํ ํ๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ด ์ปจํ ์ธ ๋ฅผ ๋ง๋๋๋ฐ GeometryProxy๋ฅผ ์ด์ฉํด์ ๋ง๋ญ๋๋ค. GeometryProxy๋? ๊ทธ๋ ๋ค๋ฉด GeometryProxy๋ ๋ฌด์์ผ๊น์? ์ฐ์ Proxy์ ๋ป์ ๋ฌด์์ธ๊ฐ๋ฅผ ๋์ ํ๋ค๋ ์๋ฏธ๋ฅผ ๋ํ๋ ๋๋ค. .. 2022. 4. 4. [SwiftUI] ์์ฐ์ค๋ฌ์ด ํ๋ฉด์ ํ ์ ๋๋ฉ์ด์ ๊ตฌํํ๊ธฐ (feat. matchedGeometryEffect,Namespace) ์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค! ํ์์ AppStore๋ฅผ ๋ณด๋ฉด ํ๋ฉด ๊ฐ ์ ํํ ๋ ์์ฐ์ค๋ฌ์ด ์ ๋๋ฉ์ด์ ์ด ๋ง์ด ๋ณด์๋๋ฐ, '์ด๊ฑด ์ด๋ป๊ฒ ๊ตฌํํ์๊น' ๋ผ๋ ์๊ฐ์ด ๋ง์ด ๋ค์ด ๊ธ์ ์ ๋ฆฌํ๊ฒ ๋์์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Preview @Namespace ํ๋ฉด ์ ํ ์ ๋๋ฉ์ด์ ์ ๊ตฌํํ๊ธฐ ์ํด์ @Namespace ํ๋กํผํฐ ๋ํผ๊ฐ ํ์ํฉ๋๋ค. @Namespace๋ ๊ณต์ ๋ฌธ์์ ์๋์ ๊ฐ์ด ์๊ฐํฉ๋๋ค. ์์ฑ์ ํฌํจํ๋ ๊ฐ์ฒด(์: view)์ ์๊ตฌ ID๋ก ์ ์๋ ๋ค์์คํ์ด์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ ๋์ ์์ฑ ์ ํ์ ๋๋ค. ๊ฐ๋จํ๊ฒ ๋งํ๋ฉด ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ID์ ํจ๊ป ๊ธฐ์ตํ๊ณ ์๋ ๋ํผ์ ๋๋ค. ์ด ID๋ฅผ ํตํด์ ์ ๋ณด๋ฅผ ๋ค๋ฅธ ๋ทฐ์ ๊ณต์ ํ ์ ์์ผ๋ฉฐ, ์ด๊ฒ์ ํตํด ์ง์ค๋ฉํธ๋ฆฌ ์ ๋๋ฉ์ด์ ์ด ๊ฐ๋ฅํด ์ง๋๋ค. ์ ์ธํ๋ ๋ฐฉ์์ ์.. 2022. 3. 28. [SwiftUI] TabView์ ๋ํด ์์๋ณด๊ธฐ (feat. UITabBar) ์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค! ์ค๋์ SwiftUI์์ ํญ๋ทฐ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. (UIKit์์ UITabBar๋ฅผ ๋ปํฉ๋๋ค.) ๋ฐ๋ก ์์ํ ๊ฒ์~ TabView Contents SwiftUI์์ ํญ๋ทฐ๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ฌด ๋๋ฌด ๊ฐ๋จํฉ๋๋ค. ์๋์ ๊ฐ์ด TabView๋ก ๊ฐ์ธ๊ณ ํญ๋ทฐ ์์ ๋ค์ด๊ฐ ๋ทฐ๋ค์ ๋ฃ์ผ๋ฉด ๋ฉ๋๋ค. TabView { View1() View2() View3() ... } TabView Item ํ์ง๋ง ์๋์ ๊ฐ์ด ์ค์ ํ๋ฉด ์์ง ํญ๋ทฐ๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋๋ฐ์. TabView { LoginView() HelloView() SettingView() } ์ด์ ๋ ์ด๋ฏธ ํญ๋ทฐ๊ฐ ์กด์ฌํ์ง๋ง ํญ๋ทฐ๋ฅผ ๋ํ๋ด๋ ์์ดํ ์ ์ธํ ํด์ฃผ์ง ์์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ณ ๋ก ๋ค์๊ณผ ๊ฐ์ด ํญ์์ดํ .. 2022. 3. 10. [SwiftUI] @State๋? ์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค! ์์ฆ SwiftUI ๊ณต๋ถ๋ฅผ ํ๊ณ ์๋๋ฐ @State๊ฐ ๋ง์ด ์ฐ์ด๊ธด ํ๋๋ฐ ๋ญ์ง ์ ํํ๋ ๋ชจ๋ฅด๊ฒ ๋๋ผ๊ตฌ์. ๊ทธ๋์ @State์ ๋ํด์ ์ ํํ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ @State ๋? ์ ํ ๊ณต์ ๋ฌธ์์๋ ์๋์ ๊ฐ์ด ์ค๋ช ํฉ๋๋ค. ํด์ํด๋ณด๋ฉด SwiftUI์์ ๊ด๋ฆฌํ๋ ๊ฐ์ ์ฝ๊ณ ์ธ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ๊ณ ํ๋ค์. ๊ฐ์๋ฅผ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ์ต๋๋ค. 1. ์ํ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด View๋ฅผ ๋ค์ ๊ณ์ฐํ๊ณ ์ ๋ฐ์ดํธ ํฉ๋๋ค. 2. ์ธ์คํด์ค ๊ฐ์ด ์๋๋ผ ๊ฐ์ ์ฝ๊ณ ์ฐ๋ ์๋จ์ ๋๋ค. 3. ์ฃผ์ํ ์ ์ ๋ทฐ์ ๋ฐ๋ ์์์ ๋๋ ๋ทฐ์์ ํธ์ถํ ๋ฉ์๋์์๋ง ์ ๊ทผํด์ผ ํ๋ฏ๋ก ๋ทฐ์ ํด๋ผ์ด์ธํธ๊ฐ ์ ๊ทผํ์ง ๋ชปํ๋๋กprivate๋ก ์ ์ธํด์ผ ํฉ๋๋ค. 4. ์ฌ์ฉํ ๋๋ $์ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ๊ตฌ.. 2021. 11. 7. [iOS] UIKit์์ SwiftUI Preview ์ฌ์ฉํด๋ณด๊ธฐ ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ผ๋ง ์ ์ ์ ํ๋ธ์์ ๋งํ๊ฒฝ iOS ๊ฐ๋ฐ๊ธฐ๋ฅผ ๋ณด๋ค๊ฐ (https://www.youtube.com/watch?v=W_1FoBtaV7A) UI๋ฅผ ๊ฐ๋ฐํ๋๋ฐ ์คํ ๋ฆฌ๋ณด๋์ ์ฝ๋๋ก ๊ตฌํํ๋ ์ฅ๋จ์ ์ ๋ชจ๋ ์ด์ฉํ ์ ์๋๊ฒ UIKit์์ Preview๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ๊ณ ํ๋๋ผ๊ตฌ์. Preview๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ก ํ๋ฉด์ ๊ตฌํํ๋๋ผ๋ ์ง๊ด์ ์ผ๋ก ํ๋ฉด์ ๋ณผ ์ ์๊ณ ๋ํ ์คํ ๋ฆฌ๋ณด๋๋ก ๊ฐ๋ฐํ ๋ ์๊ธฐ๋ ์ถฉ๋ ๋ฌธ์ ๋ฑ์ ์์ ์ค ์ ์๊ธฐ ๋๋ฌธ์ด์ฃ ! ๊ทธ๋์ ์ค๋์ UIKit์์ Preview๋ฅผ ์ด๋ป๊ฒ ์ ์ฉํ๋์ง์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค~ UIViewController + Extension ์๋์ ๊ฐ์ด ํ๋ฆฌ๋ทฐ ์ต์คํ ์ ์ ๋ง๋ค์ด์ค์ ์ด๋ค ๋ทฐ์ปจํธ๋กค๋ฌ์์๋ ์ธ ์ ์๊ฒ ๋ง๋ค์ด์ค๋๋ค. import Swif.. 2021. 7. 28. ์ด์ 1 ๋ค์ 728x90 ๋ฐ์ํ