ios
-
SwiftUI์์ View์ Size ์ธก์ ํ๊ธฐSwiftUI 2023. 9. 27. 11:04
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ View์ Size๋ฅผ ์ธก์ ํ๋ ์ฝ๋๋ฅผ ๊ณต์ ํด๋ณผ๊นํฉ๋๋ค ๐๐ป ์ด๋จ๋ View Size ๊ฐ์ด ํ์ํ ๊น์? ์ฐ์ , SwiftUI๋ก ๊ตฌํ์ ํ๋ค๋ณด๋ฉด ์ํ๋ ํด๋น ์์ญ์ ๋ทฐ ์ฌ์ด์ฆ๋ฅผ ๊ฐ์ง๊ณ ์ด๋ ํ ์์ ์ ํด์ค์ผํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋ฅผ๋ค์ด, VStack์ผ๋ก ํ์ ๋ทฐ๋ค์ด ์์ผ๋ ํค๋ ์์ญ์ ์ฌ๋ฌ ๋ทฐ๋ค์ ์กฐํฉํ์ฌ ๋ฃ๊ณ ์ด์ ๋ํ ํค๋ ์์ญ์ ๋ทฐ ๋์ด๋ฅผ ๊ฐ์ง๊ณ ์ด๋ ํ ์์ ์ ํด์ค๋๊ฐ ์ข ์ข ๋ฐ์ํฉ๋๋ค. ๋ฒํผ ํญ ๋ฑ ์ธํฐ๋์ ์ด ๋ฐ์ํ์๋ offset์ ์ต์๋จ์ผ๋ก ์ด๋์ํค๋๊ฒ์ด ์๋ ํค๋ ์์ญ ์ดํ๋ถํฐ ๋ ธ์ถ์ํค๊ณ ์ถ๋ค๋ฉด ์ด ํค๋ ์์ญ์ height๋ฅผ ๊ตฌํด y offset์ ๋ณ๊ฒฝํด์ค์ผ ํ ์ ์์ฃ . ๋ฌผ๋ก ์ด๋ด ๊ฒฝ์ฐ ํค๋ ์์ญ์ ๋ด๊ธด ํ์ ๋ทฐ๋ค์ ํ๋ ์์ด ๊ณ ์ ์ ..
-
Colletcion์ Struct ํ์ ์ธ๋ฐ Heap์ ์ ์ฅ๋๋ ์ด์ ?Swift 2023. 9. 25. 14:33
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ Swift ์ธ์์ผ๋ก ๋์ด์์ Collection์ด๋ผ๋ ๊ฐ ํ์ ์ด ์ Heap์ ์ ์ฅ๋๋์ง ๊ทธ ์ด์ ๋ฅผ ํํค์ณ๋ณด๊ฒ ์ต๋๋ค! ์ด์ ํฌ์คํ ์์ ๋ฉ๋ชจ๋ฆฌ ๋คํ๋ฅผ ๋ถ์ํ๋ค๊ฐ string์ด dump์ ๋จ์์๋๊ฑธ ๋ณด๊ณ string์ ์กฐ๊ธ ๋ ํํค์ณ๋ณด๊ณ ์์๋๋ฐ์. ์ ๋ชฐ๋๋ ์ฌ์ค์ด๋ ์๋ชป ์๊ณ ์์๋ ์ง์์ ๊นจ๋ฌ์์ด์! ๊ทธ๋์ ์ด๋ฒ์ String์ผ๋ก ์์ํ์ง๋ง Collecion์ด๋ผ๋ ์์ ๊ฐ๋ ์ผ๋ก ๊ฐ์ด ์ค๋ช ์ ํด๋ณด๋ คํฉ๋๋ค ๐๐ป ๋ฉ๋ชจ๋ฆฌ ๋คํ ๋ถ์ (feat. fridump) ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ fridump๋ฅผ ์ด์ฉํด์ ๋ฉ๋ชจ๋ฆฌ ๋คํ ๋ถ์์ ํด๋ณผ๊นํด์! ์ฌ์ค ๋ณด์ํ์์๋ ๊ฐ ์ฑ์ ๋ณด์์ ์ง๋จํ๊ธฐ ์ํด์ memory dump๋ฅผ ๋ณด๊ณ ๋ถ์ํ๋ ์ ๋ฌด๋ ํ๊ณ gree..
-
ScrollTargetBehaviorSwiftUI 2023. 9. 18. 12:29
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ ScrollTargetBehavior๋ผ๋๊ฒ์ ๋ํด ํ์ตํด๋ณด๋ ค ํฉ๋๋ค ๐๐ป ์ฐ์ ์ด ScrollTargetBehavior์ด ์ด๋ค๊ฑด์ง ์์์ผ๊ฒ ์ฃ ? ScrollTargetBehavior? iOS 17 ์ด์๋ถํฐ SwiftUI์์ ์๋กญ๊ฒ ์ง์ํ๋ ๊ธฐ๋ฅ์ ๋๋ค. protocol ScrollTargetBehavior ์ด๋ ๊ฒ ํ๋กํ ์ฝ๋ก ์คํฌ๋กค ๊ฐ๋ฅํ ๋ทฐ์ ์คํฌ๋กค ๋์์ ์ ์ํ๋ ์ ํ์ด์์. ์ฆ ์ฝ๊ฒ ๋งํด ์ฐ๋ฆฌ๊ฐ SwiftUI์ ScrollView ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์คํฌ๋กค๋ง์ ํ ๋ ์ด๋ค ์คํฌ๋กค ๋์์ ํด์ค์ง๋ฅผ ์ ์ํ ์ ์๋๊ฒ์ด์ฃ . ๊ทธ๋ผ ์ด ๊ธฐ๋ฅ์ด SwiftUI์์ ์ด๋ค ํ์ค์ ์ผ๋ก์ ๊ธฐ๋ฅ์ ํด์ค ์ ์์๊น์? ScrollTargetBehavior์ด ์๊ธฐ์ ์ฐ์ ..
-
๋ฉ๋ชจ๋ฆฌ ๋คํ ๋ถ์ (feat. fridump)iOS 2023. 9. 14. 10:11
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ fridump๋ฅผ ์ด์ฉํด์ ๋ฉ๋ชจ๋ฆฌ ๋คํ ๋ถ์์ ํด๋ณผ๊นํด์! ์ฌ์ค ๋ณด์ํ์์๋ ๊ฐ ์ฑ์ ๋ณด์์ ์ง๋จํ๊ธฐ ์ํด์ memory dump๋ฅผ ๋ณด๊ณ ๋ถ์ํ๋ ์ ๋ฌด๋ ํ๊ณ ์์ต๋๋ค. ์ฆ, ์ฌ์ฉ์์ ๋ฏผ๊ฐํ ํด๋ํฐ์ ๋ณด / ๋น๋ฐ๋ฒํธ / ์ด๋ฉ์ผ ๋ฑ ๊ฐ์ธ์ ๋ณด๋ค์ด ์ค์ memory์์ ์ฌ์ฉ ํ ํด์ ๋์ง ์๊ณ ๋จ์์๋์ง, ๊ทธ๊ฒ์ผ๋ก ์ด๋ ํ ํ์ทจ๊ฐ ๊ฐ๋ฅํ ๋ฃจํธ๊ฐ ์๋์ง ๋ฑ์ ํ์ ํ๊ธฐ ์ํด์๋ ์ฑ์ ๋ฉ๋ชจ๋ฆฌ ๋คํ๋ฅผ ๊ฐ์ง๊ณ ๋ถ์ํด๋ณด๋๊ฒ์ด ์ฒซ๋ฒ์งธ ๋จ๊ณ์ผ๊ฒ ๊ฐ์์ ๐๐ป ๊ทผ๋ฐ ์ฐ๋ฆฌ๋ ๋ณด์ํ์ด ์๋์ง๋ง! ๊ทธ๋๋ ์ฐ๋ฆฌ๋ ๋ฏผ๊ฐ์ ๋ณด๋ค์ด ๋ฉ๋ชจ๋ฆฌ์ ๋จ์์์ง ์๊ฒ ์ค๊ณํ๊ณ ๊ตฌํํ๋ค ํ๋๋ผ๋ ๊ฒ์ฆ์ ํด๋ณด๋๊ฒ์ด ์ข๊ฒ ์ฃ ? ๊ทธ๋ ๊ธฐ์ ์ด๋ฒ ํฌ์คํ ์์ ๋ฉ๋ชจ๋ฆฌ ๋คํ๋ฅผ ํ์ธํ๋ ๊ณผ์ ๊น์ง ์๊ฐํด๋ณผ๊นํด์! ๊ฐ์ฅ ์ฐ์ ๋๋๊ฑด frid..
-
DatePicker & Picker ์ฌ์ฉํ๊ธฐSwiftUI 2023. 9. 11. 09:52
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI๋ก DatePicker์ Picker ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐ ๋ ์ปดํฌ๋ํธ ๋ชจ๋ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ์ด๋ ํ๊ฑธ ์ ํํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ๊ฒ ์ฃ !? ์ฌ์ค ๋๊ฒ ๊ฐ๋จํ ์ปดํฌ๋ํธ๋ค์ด๊ณ ์ฌ์ฉํ๊ธฐ ๋๋ฆ์ด๊ธฐ์ ํ๋ฒ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ์ ์ตํ๋ณผ๊ป์! ๊ทธ๋ผ DatePicker๋ถํฐ ๋ฐ๋ก ๊ฐ๋ณด๊ฒ ์ต๋๋ค ๐ DatePicker A control for selecting an absolute date DatePicker๋ ์ด๋ฆ์์๋ ๋ฐ๋ก ์ ์ ์๋ฏ์ด ์ด๋ค ๋ ์ง๋ฅผ ์ ํํด์ฃผ๋ ์ญํ ์ ์ง๋ ์ปดํฌ๋ํธ์ ๋๋ค. ์ฆ, ์ฝ๊ฒ ๋งํด ์ฌ์ฉ์๊ฐ ํน์ ๋ ์ง๋ฅผ ์ ํํ ์ ์๋๋ก ํ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ปดํฌ๋ํธ๋ฅผ ์๋ฏธํ์ฃ . ๋ ์ง/์๊ฐ์ ์ ํํ ์ ์์ต๋๋ค! str..
-
SwiftUI์ onChange ์ฌ์ฉ ์ ์ฃผ์ํ ๋ถ๋ถSwiftUI 2023. 9. 5. 09:49
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ onChange ์ฌ์ฉ ๊ตฌํ ์ ์ฃผ์ํ ๋ถ๋ถ์ ๋ํด ํ๋ฒ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค ๐๐ป ์ฐ์ , SwiftUI์์๋ ๋ทฐ์์์ ํ๋กํผํฐ ๋ณํ๋ฅผ ๊ณ์ ๊ฐ์งํ๊ณ ์๋ค ๋ณํ๊ฐ ์ผ์ด๋๋ฉด ๊ตฌํ๋ ์ฌํญ์ ๋ฐ์ํด์ฃผ๋ onChange ๋ฉ์๋๊ฐ ์์ต๋๋ค. iOS 17 ์ด์ ์์๋ ์๋ onChange ๋ฉ์๋๋ฅผ ์ด์ฉํ๊ฒ ๋๊ณ , onChange(of:perform:) | Apple Developer Documentation Adds an action to perform when the given value changes. developer.apple.com iOS 17 ์ดํ๋ถํฐ๋ ์ onChange ๋ฉ์๋๊ฐ deprecated๋์ด ์๋ onChange ๋ฉ์๋๋ฅผ ์ด์ฉํด์ผ ํฉ๋๋ค...
-
UIApplicationDelegateAdaptorSwiftUI 2023. 8. 28. 11:19
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ UIApplicationDelegateAdaptor์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป UIApplicationDelegateAdaptor? ์ฐ์ UIApplicationDelegateaAdaptor๋ SwiftUI์์ UIKit app delegate๋ฅผ ์์ฑํ๋๋ฐ ์ฌ์ฉํ๋ ํ๋กํผํฐ ๋ํผ์ ๋๋ค. @MainActor @propertyWrapper struct UIApplicationDelegateAdaptor where DelegateType : NSObject, DelegateType : UIApplicationDelegate ์ ์ธ์ ์์ ๊ฐ์ด ๋์ด ์๋ ํ๋กํผํฐ ๋ํผ์ด์ฃ ! SwiftUI์ ๋ผ์ดํ ์ฌ์ดํด์ ์ฌ์ฉํ๋ ์ฑ์์ ์ฑ๋๋ฆฌ๊ฒ์ดํธ ์ฝ๋ฐฑ์ ์ฒ๋ฆฌํ๋ ค๋ฉด UIApplic..
-
AVFoundation (feat. AVAudio)Swift 2023. 8. 25. 09:12
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ AVFoundation์ ๋ํด ๊ธฐ์ด๋ฅผ ์์๋ณด๋ฉฐ AVAudio ๋ถ๋ถ์ ์กฐ๊ธ ๋ ๊ฐ๋ ์ ์ผ๋ก ํ๋ณด๋ คํฉ๋๋ค ๐ ์ด์ ํฌ์คํ ์์ ์์ฑ์ ๋ น์ํ๊ณ ํ๋ ์ดํ๋ AVAudio๋ฅผ ์ค์ ์ฝ๋๋ก ๊ตฌํํ๋ฉด์ ๋ค๋ฃฌ์ ์ด ์์ด์! ๊ฑฐ๊ธฐ์ AVFoundation์ ์กฐ๊ธ ๋ ๋ฅํ๊ฒ ๋ค์ ํฌ์คํ ์์ ์๊ธฐํด๋ณธ๋ค๊ณ ํ์ต๋๋ค. ๊ทธ๋ ์ด ์ค๋์ ๋๋ค!!!!! AVFoundation ์ฐ์ AVFoundation์ด ๋ญํ๋ ๋ ์์ธ์ง๋ถํฐ ๊ณต์๋ฌธ์๋ฅผ ๋ณด๋ฉด์ ์ดํด๋ณผ๊ป์. AVFoundation์ ์์ฒญ๊ฐ asset์ผ๋ก ์์ ํ๊ณ , ์นด๋ฉ๋ผ ์ฅ์น๋ฅผ ์ปจํธ๋กคํ๋ฉฐ, ์ค๋์ค๋ฅผ ์ฒ๋ฆฌํ๊ณ , ์์คํ ์ค๋์ค ์ธํฐ๋์ ์ ๊ตฌ์ฑํฉ๋๋ค. iOS์์์ AVFoundation์ Core ํ๋ ์์ํฌ์ชฝ์ ์ํด์์ต๋๋ค. ๋ณด์๋ฉด ์ค๋ ๋ค๋ค๋ณผ Audio..