ios
-
DynamicTypeSize๋ก ์ ๊ทผ์ฑ ๋์ด๊ธฐ (feat. SwiftUI)SwiftUI 2025. 1. 24. 16:42
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ DynamicTypeSize๋ก ์ ๊ทผ์ฑ์ ๋์ด๋๊ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ์ DynamicTypeSize์ด ๋ญ์ง ์์์ผ๊ฒ ์ฃ ? DynamicTypeSize๋ก ์ ๊ทผ์ฑ ๋์ด๊ธฐSwiftUI์์ ์ ๊ณตํ๋ ๋์ ํ ์คํธ ํฌ๊ธฐ ์กฐ์ ์์คํ ์ด๋ผ๊ณ ๋ณผ ์ ์์ด์.์ฌ์ฉ์์ ์ ๊ทผ์ฑ ์ค์ ์ ๋ฐ๋ผ ์ฑ์ ํ ์คํธ ํฌ๊ธฐ๋ฅผ ์๋์ผ๋ก ์กฐ์ ํ ์ ์๊ฒ ํด์ฃผ์ฃ . iOS 15.0 ๋ถํฐ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ ์๋ ์๋์ ๊ฐ์์. enum DynamicTypeSize ์ด๊ฑฐ ํ์ ์ด๋ฉฐ ์ผ์ด์ค๋ค๋ก๋ ์๋์ ๊ฐ์ด type size์ accessibility type size๋ก ๊ตฌ๋ถํ ์ ์์ต๋๋ค. .xSmall // ๊ฐ์ฅ ์์ ํฌ๊ธฐ.small // ์์ ํฌ๊ธฐ.m..
-
SwiftUI - ScrollBounceBehaviorSwiftUI 2025. 1. 20. 19:47
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์ SwiftUI์ ScrollBounceBehavior์ ๋ํด ๊ด๋ จํ์ฌ ์์๋ณด๋ ค ํฉ๋๋ค ๐๐ป ์๊ฐ๋ณด๋ค ๊ฐ๋จํ์ง๋ง ์ ์ฉํ ๊ธฐ๋ฅ์ด๋ ๊ฐ๋ณ๊ฒ ๋ด๋ณผ๊น์? ScrollBounceBehavior?iOS 16.4 ์ด์์์๋ถํฐ ์ฌ์ฉ ๊ฐ๋ฅํ ํ์ ์ผ๋ก, ์คํฌ๋กค ๊ฐ๋ฅํ ๋ทฐ๊ฐ ์ปจํ ์ธ ๋์ ๋๋ฌํ์ ๋ ํ์ด์ค๋ฅด๋ ๋ฐฉ์์ ์ ์ํฉ๋๋ค. struct ScrollBounceBehavior ํด๋น ๊ตฌ์กฐ์ฒด ํ์ ์๋ ์๋ ์ธ๊ฐ์ง๋ก ๊ธฐ๋ณธ ์ ์๊ฐ ๋์ด ์์ด์. 1๏ธโฃ automatic - ๊ธฐ๋ณธ๊ฐ์ผ๋ก ํ๋ซํผ๊ณผ ์ํฉ์ ๋ฐ๋ผ์ ์ ์ ํ ๋ฐ์ด์ค ๋์์ ์๋์ผ๋ก ๊ฒฐ์ 2๏ธโฃ always - ์ปจํ ์ธ ํฌ๊ธฐ์ ์๊ด์์ด ํญ์ ๋ฐ์ด์ค ํจ๊ณผ๋ฅผ ๊ฐ์ง3๏ธโฃ basedOnSize - ์ปจํ ์ธ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฐ์ด์ค ํจ๊ณผ๊ฐ ๊ฒฐ์ ์ฌ๊ธฐ์ ..
-
SwiftUI ์คํฌ๋กค ๋ทฐ์ ์๊ณ๊ฐ ์ฝ์งํ๊ธฐSwiftUI 2025. 1. 16. 19:00
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ ์ด๋ ํ ํ์ต ์ ๋ณด ์ ๋ฌ๋ณด๋ค๋ ๊ทธ๋ฅ ์ฝ์ง์ ํ๋ ๊ณผ์ ๊ณผ ๊ทธ๊ฑธ ๊ธฐ๋กํด๋ณด๋ ํฌ์คํ ์ ๋๋ค ๐๐ป SwiftUI์ ์คํฌ๋กค ๋ทฐ์ ์๊ณ๊ฐ ์ฝ์งํ๊ธฐ์ฐ์ , ์๋ ์ฝ๋๋ฅผ ๋ด๋ณผ๊น์? import SwiftUIstruct ContentView: View { var body: some View { ScrollView { VStack(spacing: 50) { Rectangle() .fill(.red) .frame(height: 100) Rectangle() .fill(.green) .frame(height: 100) Rectangle()..
-
SwiftUI์์ UUID๋ฅผ ํ์ฉํ ๋ทฐ ๊ฐฑ์ ์ ๋ฐ์ดํธSwiftUI 2025. 1. 9. 18:53
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ์ค์ ๋ง์ด ์ฌ์ฉ๋ ์ ์๋ UUID๋ฅผ ํ์ฉํ ๋ทฐ ๊ฐฑ์ ์ ๋ฐ์ดํธ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ๋ฌด์์ ํด๋ณด๋๊ฑธ๊น?SwiftUI๋ก ๋ง์ฝ ์ ๋๋ฉ์ด์ ์ ๊ตฌํํ๊ฑฐ๋ ํ ๋ ๊ฐ์ฅ ๊น๋ค๋ก์ธ ์ ์๋ ๋ถ๋ถ์ด ์ํ ๋ณ๊ฒฝ ์ ์ ๋๋ฉ์ด์ ์ ์๋ก ์์ํ๋๊ฒ์ด์ฃ .ํนํ, Lottie์ ๊ฐ์ ์๋ํํฐ ์ ๋๋ฉ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋ ์ด๋ฌํ ๋ฌธ์ ๊ฐ ๋์ฑ ๋๋๋ฌ์ง ์ ์์ต๋๋ค.๊ทธ๋์ ์ด๋ฒ์ UUID๋ฅผ ํ์ฉํ์ฌ ํด๊ฒฐํด๋ณด๊ณ ์ ํฉ๋๋ค. ๋ฌธ์ ์ํฉ์ฐ์ ๊ฐ๋จํ ๋กํฐ๋ฅผ ์ฌ์ฉํ ์ฝ๋๋ฅผ ๋ณผ๊ป์. import Lottieimport SwiftUI// ์ฒซ ๋ฒ์งธ ํ๋ฉดstruct FirstView: View { @State var isGrowUp: Bool = false var actio..
-
NSObject์ ๋ํ์ฌSwift 2024. 12. 19. 08:44
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์ ์ฃผ์ ๋ NSObject์ ๋ํด ํ๋ฒ ์ ๋ฆฌํด๋ณด๋ ค ํฉ๋๋ค ๐๐ป ์ฌ์ค, NSObject๋ Swift ์นดํ ๊ณ ๋ฆฌ๋ณด๋ค๋ Objective-C์ ๋ ๊ฐ๊น๊ธดํ์ฃ .๋, iOS ๊ฐ๋ฐ์ ๊ทผ๊ฐ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ผ ํ๋ฒ ์์๋ณผ๊น์? NSObject?NSObject๋ Objective-C ๋ฐํ์ ์์คํ ์ ๊ทผ๊ฐ์ ์ด๋ฃจ๋ ์ต์์ ํด๋์ค์ฃ .Foundation ํ๋ ์์ํฌ์ ๋ฃจํธ ํด๋์ค๋ก, ๊ฑฐ์ ๋ชจ๋ Cocoa์ Cocoa Touch ํด๋์ค์ ๊ธฐ๋ณธ ํด๋์ค ์ญํ ์ ํด์ค๋๋ค.๊ฒฐ๊ตญ Objective-C์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ํต์ฌ ์์๋ผ๊ณ ๋ณผ ์ ์์ด์.์ด NSObject๋ฅผ ์์๋ฐ๋ ํ์ ํด๋์ค๋ค์ ๋ฐํ์ ์์คํ ์ ๋ํ ๊ธฐ๋ณธ ์ธํฐํ์ด์ค์ Objective-C ๊ฐ์ฒด์ฒ๋ผ ๋์..
-
SwiftUI์์ ์ธํฐ๋ํฐ๋ธ ํธ์ ๋ค๋น๊ฒ์ด์ ์ฌ์ฉํ๊ธฐSwiftUI 2024. 12. 12. 18:46
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ์ฝ๊ฒ ์ธํฐ๋ํฐ๋ธ ํธ์ ๋ค๋น๊ฒ์ด์ ์ ์ฌ์ฉํ๋๊ฑธ ๊ตฌํํด๋ณด๋ ค๊ณ ํฉ๋๋ค ๐๐ป ๋จผ์ ์ธํฐ๋ํฐ๋ธ ํธ์ ๋ค๋น๊ฒ์ด์ ๋ ๋ค์ํ ์ฐ์์ด ์์๊ฑด๋ฐ, ํ์ฌ ์ ๊ฐ ํ๊ณ ์ ํ๋ ๊ฒฐ๊ณผ๋ฌผ๋ถํฐ ๊ณต์ ํด๋ณผ๊ป์! ๋๋ฅ - ๐ ์ด๋ฐ๊ฑธ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค! ์ฆ, ํญ๋ทฐ์ ๊ฐ์๊ฑธ ์ฌ์ฉํ์ง ์๊ณ ์ฃ์ง ์ค์์ดํ๋ฅผ ํตํด ์ด์ ๊ณผ ์ดํ ๋ทฐ๋ก ์ฌ๋ผ์ด๋ ํ์์ผ๋ก ์์ฐ์ค๋ฝ๊ฒ ์ ํ๋๋๋ก ์ธํฐ๋ํฐ๋ธ ํธ์ ๋ค๋น๊ฒ์ด์ ์ SwiftUI์ ์น์ด๋ณด๋ ค๊ณ ํฉ๋๋ค ๐๐ป ๊ทธ๋ผ ํ๋ฒ ์์ํด๋ณผ๊น์? ์ธํฐ๋ํฐ๋ธ ํธ์ ๋ค๋น๊ฒ์ด์ ๊ตฌํํ๊ธฐ๋จผ์ ์ ๊ฐ ํ๋ ๋ฐฉ์์ผ๋ก๋ SwiftUI์์๋ง ๋ชจ๋ ๊ฑธ ํด๊ฒฐํ ์ ์์ด์.๊ทธ๋ ๊ธฐ์ UIKit์ UINavigationController๋ฅผ ์ฑํํ ๋ณ๋์ InteractivePushNavi..
-
์นด์นด์คํก ๊ณต์ ํ๊ธฐ (๋ฉ์์ง ํ ํ๋ฆฟ)iOS 2024. 12. 5. 18:58
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ ํํ ๋ง์ด ์ฌ์ฉํ๋ ์นด์นด์คํก ๊ณต์ ๋ฅผ ํด๋ณผ๊ฑด๋ฐ, ํด๋น ๊ณต์ ๋ฅผ ์ปค์คํ ํ๊ฒ ๋ง๋ค์ด๋ณด๋ ค๊ณ ํด์! ๐๐ป ์๋ฅผ๋ค์ด์ ๊ทธ๋ฅ ๋งํฌ๋ ์ด๋ฏธ์ง๋ง ๋ณด๋ด๋๊ฒ์ด ์๋๋ผ ์นด์นด์ค SDK์ ๊ธฐ๋ฅ์ ์ด์ฉํด ํด๋น ์นดํก ๊ณต์ ๋ฉ์์ง์ ๋ฒํผ์ ๋์ด ๋ค๋ฅธ ๋์์ ํ๋ค๋์ง ๋ฑ์ ๊ตฌํํด๋ณด๋ ค ํฉ๋๋ค ๐ ๊ทธ๋ผ ๋ฐ๋ก ์์ํด๋ณผ๊น์? ์นด์นด์คํก ๊ณต์ ํ๊ธฐ (๋ฉ์์ง ํ ํ๋ฆฟ์ ํ์ฉํ)๊ฐ์ฅ ๋จผ์ ํด์ผํ ์ผ์ ๋น์ฐํ๊ฒ๋ ์นด์นด์ค SDK ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์ค๋๊ฒ์ด๊ฒ ์ฃ ?์ ๋ SPM์ผ๋ก ๊ฐ์ ธ์์ต๋๋ค. ํด๋น SDK๋ฅผ ์ฐ๋ฆฌ SPM์์ ์ถ๊ฐํ๋ฏ์ด ์ฝ๊ฒ ๊ฒ์ํ์ฌ ๊ฐ์ ธ์ต๋๋ค.์ด๋ ์ฌ๋ฌ ํจํค์ง ํ๋ก๋ํธ๋ก ์ฌ๋ฌ๊ฐ๊ฐ ๋ณด์ผํ ๋ฐ ์ฌ๊ธฐ์ ํ์ํ๊ฒ๋ง ์ถ๊ฐํ์ ๋ ๋ฉ๋๋ค!Add to Target์ ๊ผญ ํด๋น ํ๋ก์ ํธ ํ๊ฒ์ผ๋ก ๋ง์ถฐ์ค์ผ์ง ์๊ทธ๋ฌ๋ฉด i..
-
ETag ์บ์ฑ์ผ๋ก ์ฑ ์ฑ๋ฅ ์ต์ ํํ๊ธฐSwift 2024. 11. 26. 18:51
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ ETag๋ฅผ ์ด์ฉํด ๋คํธ์ํฌ ์บ์ฑ์ ํ์ฌ ์ฑ ์ฑ๋ฅ์ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณผ๊ป์ ๐๐ป ETag ์บ์ฑ์ผ๋ก ์ฑ ์ฑ๋ฅ ์ต์ ํํ๊ธฐ๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ์์ ๋คํธ์ํฌ ์ต์ ํ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค๋ ํต์ฌ ์์์ ๋๋ค. ์ด๋ฒ ํฌ์คํ ์์ HTTP ํ๋กํ ์ฝ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ์ค ํ๋์ธ ETag(Entity Tag)์ ๋ํด ์์ธํ ์์๋ณด๊ณ , iOS ์ฑ์์ ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ETag?ETag๋ ์น ๋ฆฌ์์ค์ ํน์ ๋ฒ์ ์ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ์๋ณ์์์.์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฆฌ์์ค๋ฅผ ์๋ตํ ๋ ETag ํค๋๋ฅผ ํจ๊ป ์ ์กํ๋ฉฐ, ํด๋ผ์ด์ธํธ๋ ์ดํ ์์ฒญ ์ ์ด ๊ฐ์ ์ฌ์ฉํด ๋ฆฌ์์ค๊ฐ ๋ณ๊ฒฝ๋์๋์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ์๋์ ๊ฐ์ด ์๋ฅผ ๋ค์ด์, ์๋ฒ์ ์๋ต ํค๋๋..