swiftUI
-
SwiftUI์์ ScrollOffset์ ๊ฐ์งํ๋ ScrollView ๊ตฌํํ๊ธฐSwiftUI 2024. 4. 9. 18:01
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI๋ก ์ปค์คํ ํ ScrollOffset ๊ฐ์ ๊ฐ์งํ์ฌ ์ฌ์ฉํ๋ ScrollView ๊ตฌํ์ ํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ์ SwiftUI์์ ๊ธฐ๋ณธ์ ์ธ ScrollView ์ปดํฌ๋ํธ๋ง์ผ๋ก๋ ์คํฌ๋กค ๋ ์์น์ธ ScrollOffset์ ๊ฐ์งํ ์๊ฐ ์์ต๋๋ค. ์ด์ background๋ก GeometryReader๋ฅผ ํ์ฉํด์ ์ปค์คํ ํ๊ฒ ๊ตฌํํด์ค์ผํด์. ๊ทธ๋์ ์ด๋ฒ ํฌ์คํ ์์ ์ปค์คํ ํ scrollOffset์ ๊ฐ์งํ๋ OffsetObservableScrollView๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค! OffsetObservableScrollView ์ฐ์ , ๊ตฌํ๋ถํฐ ์ดํด๋ณด์์ฃ ! struct OffsetObservableScrollView: View { var axes: Axis.Set = ..
-
SwiftUI - ShareLinkSwiftUI 2024. 4. 5. 18:56
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ ShareLink์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฌ์ค ์์ ํฌ์คํ ์์ SwiftUI์์ ๊ณต์ ์ํธ๋ฅผ ์ํ ActivityView๋ฅผ ์ฌ์ฉํ๋๊ฒ์ ํ์ตํ์ ์ด ์์ต๋๋ค. ActivityView in SwiftUI ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ActivityView(์กํฐ๋นํฐ ๋ทฐ)๋ฅผ ๋์ฐ๋๊ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป SwiftUI๋ฅผ ํตํด ๊ตฌํ์ ํ๋ค ์ด๋ป๊ฒ ํ๋ฉด ์๋ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ์ ์ green1229.tistory.com ์ด๋ฒ์ ํ ๊ฒ๋ ์ ActivityView๋ฅผ ๋์ฐ๋๊ฒ์ธ๋ฐ์. ์ฐจ์ด๋, ์ด์ ์ ํฌ์คํ ์์๋ SwiftUI์์ ์ง์ ์ ์ผ๋ก ์ง์ํ์ง ์์์, UIKit์ ActivityViewController๋ฅผ ์ฌ์ฉํ..
-
SwiftUI - blendModeSwiftUI 2024. 4. 1. 19:03
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ blendMode๋ผ๋ ๋ทฐ ๋ชจ๋ํ์ด์ด๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ๋ฐ๋ก ์ด์ ํฌ์คํ ์ธ compositingGroup์ ๋ํด ๋ค๋ฃฐ๋ ์ฌ์ฉ blendMode๋ฅผ ํตํด ๊ฒน์ณ์ง๋ ์ปดํฌ๋ํธ๋ค์ ์๊ฐ ํจ๊ณผ๋ฅผ ๋ค๋ฃฐ ์ ์๋ค๊ณ ์ธ๊ธํ์ต๋๋ค. ๊ทธ๋ ๊ธฐ์ ์ด๋ฒ ํฌ์คํ ์์ ์ด blendMode๊ฐ ๋ฌด์์ธ์ง ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ์์๋ณด์์ฃ ! blendMode? ํผํฉ ๋ชจ๋๋ผ๊ณ ์ง์ญ์ด ๋๋ฉฐ ์ด๋ ํ ๋ทฐ๋ฅผ ๊ฒน์น๋ ๋ทฐ์ ํฉ์ฑํ๊ธฐ ์ํ ๋ชจ๋ ๋ฐฉ์์ ์ค์ ํ๋๊ฒ์ ๋๋ค. ์ฆ, ๊ฒน์ณ์ง๋ ๋ทฐ์ ๋ํด ์๊ฐ์ ํจ๊ณผ๋ฅผ ์ ์ดํ๋๊ฒ์ด์ฃ . iOS 13 ์ด์์ด๋ SwiftUI๋ฅผ ์ฌ์ฉํ๋ ๋ฏธ๋๋ฉ ํ๊ฒ ํ๊ฒฝ์ด๋ผ๋ฉด ๋ชจ๋ ์ด ๋ทฐ ๋ชจ๋ํ์ด์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. func blendMode(_ blendMode: Blend..
-
SwiftUI - compositingGroupSwiftUI 2024. 3. 28. 18:57
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ compositingGroup์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป compositingGroup? compositingGroup์ SwiftUI์์ ์ฌ์ฉ๋๋ ๋ทฐ ๋ชจ๋ํ์ด์ด๋ก iOS 13 ์ด์, ์ฆ SwiftUI๋ฅผ ์ฐ๋ ํ๊ฒฝ์ด๋ผ๋ฉด ๋ค ์ ์ฉํด๋ณผ ์ ์์ด์! ์ด๋ฆ์์๋ ์ ์ ์๋ฏ์ด ๋ทฐ๋ค์ ํฉ์ฑ๋ ๊ทธ๋ฃน์ผ๋ก ํฉ์ณ ๋ํํด์ฃผ๋ ์ญํ ์ ๊ฐ์ง๋๋ค. func compositingGroup() -> some View ์ ์๋ ์๋ฌํฉ๋๋ค. ๋ทฐ๋ฅผ ๋ฐํํ๋ ์ฌ๋ ๋ทฐ ๋ชจ๋ํ์ด์ด์ ๋์ผํ๋ ์ด๋ ค์ธ๊ฒ์ด ์์ด์! compositingGroup์ ๋ทฐ๊ฐ ๋ ๋๋ง๋๊ธฐ ์ ํด๋น ๋ทฐ์ ์์ ๋ทฐ๋ค์์ ๋ฐ์ํ๋ ํฌ๋ช ๋ ๋ฐ ๋ธ๋ ๋ ๋ชจ๋๊ฐ์ ์ปดํฌ์งํ ๋๋ ํจ๊ณผ๋ค์ ์ ์ฉ์์ผ์ค๋๋ค. compositingGro..
-
Meet the Screen Time API (WWDC21)iOS 2024. 3. 14. 19:00
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ Screen Time API์ ๋ํด ์์๋ณด๋ ค ํฉ๋๋ค ๐๐ป ๋์จ์ง ๊ฝค ๋์์ง๋ง, ์ด์ ์ผ ๊ถ๊ธํด์ ํ๋ฒ ํ์ตํด๋ณด๋ ค๊ณ ํด์ใ ใ ํ์ต ๋ ํผ๋ฐ์ค๋ WWDC๋ฅผ ๊ธฐ์ค์ผ๋ก ์์๋ด ๋๋ค! Meet the Screen Time API 2021๋ WWDC์์ Meet the Screen Time API๋ผ๋ ์น์ ์์ ์ฒ์ ์ด API๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ์๊ฐํ๊ณ ์์ต๋๋ค. ์ฌ์ค ๋์จ์ง๋ 3๋ ์ ์ธ 2018๋ ์ ๊ธฐ๋ฅ ์์ฒด๋ ๋์์ฃ ! ๋๋ฐ์ด์ค๋ฅผ ํตํด ์ฌ์ฉ์์ ๊ฐ์กฑ์ ๊ด๊ณ๋ฅผ ๊ฐ์ ํ๋๋ฐ ํฐ ์ง์ ์ด ์์๋ค๊ณ ํฉ๋๋ค. ์ค์ ๋ก ๊ฐ์ฅ ํฐ ์ฌ์ฉ์ฌ๋ก์ด์ ์ํ๋ ์๋๋ ์์ด์ ๊ด๋ จ์ด ์์๊ฒ๋๋ค. ์๋ ๋ค์ ๋ ๋ถ๋ชจ๋๋ค์ด ์๋ ์ ๋๋ฐ์ด์ค์์ ์ฑ ์ฌ์ฉ ์๊ฐ๋ค์ ํ์ ํ ์ ์๊ณ , ๋ ์ ํ์ ๊ฑธ ์๋ ์์ต๋๋ค. ์ด๋ฅผ..
-
Firebase - Remote ConfigLibrary 2024. 3. 11. 18:59
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ํ์ด์ด๋ฒ ์ด์ค์ Remote Config ๊ธฐ๋ฅ ์ฌ์ฉ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ์ ํ์ด์ด๋ฒ ์ด์ค์์ ์ ๊ณตํ๋ Remote Config๊ฐ ๋ฌด์์ธ์ง ํ๋ฒ ์ง๊ณ ๊ฐ๊น์? Firebase Remote Config? ํ์ด์ด๋ฒ ์ด์ค์์๋ Remote Config๋ผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ฃผ๋๋ฐ์. ํด๋น ๊ธฐ๋ฅ์ ํด๋ผ์ฐ๋์์ ์ฑ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ํด์ ๊ฐ์ ์ ๋ฐ์ดํธํ๋ฉด ์ฑ์ ๋ค์ ๋ฐฐํฌํ์ง ์์๋ ์ฑ์ ๋ทฐ๋ ๊ธฐ๋ฅ์ ์์ ํ ์ ์์ต๋๋ค. ์ฆ, ์๋ฒ์ ์๋ ์๊ฒฉ ๊ฐ์ ์ด์ฉํ์ฌ, ์ค์๊ฐ์ผ๋ก ๋ฆฌ์ค๋๋ฅผ ํตํด ์ ๋ฐ์ดํธ ๋ฐ์ ์ฑ์ ์ํ๋ฅผ ๋ณ๊ฒฝ์์ผ์ค ์ ์์ฃ . ์ด๋ป๊ฒ ์ ํ์ฉ๋๋๋ฉด, ์ฃผ๋ก ์ฑ์ ๊ฐ์ ์ ๋ฐ์ดํธ๋ ์ผ์์ ์ธ ์ ๊ฒ์ด ํ์ํ ๋ ์ด ์ปจํธ๋กคํด์ค ๊ฐ์ Remote Config๋ฅผ ํตํด ์ค์ ํ๊ณ ์ฑ์์๋ ..
-
SwiftUI - AppStorageSwiftUI 2024. 3. 7. 19:10
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ์ฌ์ฉ๋๋ AppStorage์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ด๋ฒ ํฌ์คํ ์ ๋ด์ฉ์ UserDefaults๋ฅผ ์๋ค๋ ๊ฐ์ ํ์ ์งํํ๋ฉฐ, ๋ด์ฉ์ ์งง์ต๋๋คใ ใ AppStorage? AppStorage๋ UserDefaults๋ก ๋ถํฐ ๊ฐ์ ๋ฐ์ํ๊ณ ๊ฐ ๋ณ๊ฒฝ์ ๋ํ ๋ทฐ๋ฅผ ๋ฌดํจํํ๋ ํ๋กํผํฐ ๋ํผ๋ก ์ฌ์ฉ๋๋ ๊ตฌ์กฐ์ฒด์ ๋๋ค. iOS 14์ดํ๋ถํฐ ์ฌ์ฉํ ์ ์๊ณ ๊ตฌํ๋ ์ ์๋ ์๋์ ๊ฐ์ต๋๋ค. ์ฆ, ์ฝ๊ฒ ์๊ฐํ๋ฉด UserDefaults์ SwiftUI์ฉ์ด๋ผ๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค. @frozen @propertyWrapper struct AppStorage ๊ธฐ๋ณธ์ ์ธ ์ด๋์ ๋ผ์ด์ ํํ๋ ์ด๋ฌํด์. init( wrappedValue: Value, _ key: String, ..
-
TCA 1.0 - Navigation (ch.08)TCA 2024. 2. 27. 19:10
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ Navigation์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ํญ์ ํฌ์คํ ์์๋ ์๊ฐํ์ง๋ง, TCA 1.0 ์๋ฆฌ์ฆ ํ์ต์ ์๋ ํ์ต์๋ฃ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์์ต๋๋ค. ํด๋น ๋ ํผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ตํ๋ฉด์ ์ ๋๋ฆ๋๋ก ์ ๋ฆฌํด๋ณด๋ ํฌ์คํ ์ด๊ธฐ์, ์ฃผ๊ด์ ์ธ ์ฌ๊ฒฌ์ด ์ถ๊ฐ๋ฉ๋๋ค ๐๐ป Chapter 8. Navigation | Notion 8.1 Navigation์ด๋? axiomatic-fuschia-666.notion.site Navigation์ด๋? ๊ธ์์ SwiftUI์ sheet์ fullScreenCover๋ ๋ค๋น๊ฒ์ด์ ์ผ๋ก ๋ณผ ์ ์๋ฐ๋๋ฐ, ๋ฐฉ์ ์์ฒด๋ ํด๋น ๋๊ฐ๋ ๋ชจ๋ฌ ๋ฐฉ์์ด๊ณ ํํ ๋ค๋น๊ฒ์ด์ ๋ฐฉ์์ ํ๋ฉด ํ๋ฆ ์์ฒด๊ฐ ์ ํ๋์ด ๋์ด๊ฐ๊ธฐ์ ์กฐ๊ธ ๋ค๋ฅด์ง ์๋ ๊ฐ์ธ์ ์ผ๋ก ์๊ฐ๋จ ํด๋น..