swiftUI
-
ScrollTargetBehaviorSwiftUI 2023. 9. 18. 12:29
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ ScrollTargetBehavior๋ผ๋๊ฒ์ ๋ํด ํ์ตํด๋ณด๋ ค ํฉ๋๋ค ๐๐ป ์ฐ์ ์ด ScrollTargetBehavior์ด ์ด๋ค๊ฑด์ง ์์์ผ๊ฒ ์ฃ ? ScrollTargetBehavior? iOS 17 ์ด์๋ถํฐ SwiftUI์์ ์๋กญ๊ฒ ์ง์ํ๋ ๊ธฐ๋ฅ์ ๋๋ค. protocol ScrollTargetBehavior ์ด๋ ๊ฒ ํ๋กํ ์ฝ๋ก ์คํฌ๋กค ๊ฐ๋ฅํ ๋ทฐ์ ์คํฌ๋กค ๋์์ ์ ์ํ๋ ์ ํ์ด์์. ์ฆ ์ฝ๊ฒ ๋งํด ์ฐ๋ฆฌ๊ฐ SwiftUI์ ScrollView ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์คํฌ๋กค๋ง์ ํ ๋ ์ด๋ค ์คํฌ๋กค ๋์์ ํด์ค์ง๋ฅผ ์ ์ํ ์ ์๋๊ฒ์ด์ฃ . ๊ทธ๋ผ ์ด ๊ธฐ๋ฅ์ด SwiftUI์์ ์ด๋ค ํ์ค์ ์ผ๋ก์ ๊ธฐ๋ฅ์ ํด์ค ์ ์์๊น์? ScrollTargetBehavior์ด ์๊ธฐ์ ์ฐ์ ..
-
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..
-
SwiftUI์์ ํ์ด๋จธ ๊ตฌํํ๊ธฐ (feat. User Notification)SwiftUI 2023. 8. 22. 08:56
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ์์ SwiftUI์์ ํ์ด๋จธ๋ฅผ ๊ตฌํํ๋ฉด์ ์๊ฐ์ด ๋ค๋๋ฉด Local Notification๊น์ง ๋ฐ์๋ณด๋ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณผ๊ป์ ๐๐ป ์ฐ์ ๋ชจ๋ธ๋ถํฐ ์ค๊ณํด๋ณผ๊ป์! Time Model ๊ตฌํ ์ค์ ํ ํ์ด๋จธ ์๊ฐ์ ์ / ๋ถ / ์ด๋ก ๋๋ ์ ๊ฐ ํ์ด๋จธ๊ฐ ๋ ์ ์๋๋ก ํ๋ฉด ์ข์๊ฒ ๊ฐ๋ค์. ๊ทธ๋ฌ๊ธฐ ์ํด์ ๊ฐ ํ๋กํผํฐ๋ค์ด ํ์ํ๊ณ ์ / ๋ถ / ์ด๋ก ๋๋ ์๊ฐ์ ๋ณํํ์ฌ ์ด๋ก ๋ง๋ค์ด์ฃผ๋ ํ๋กํผํฐ๋ค๋ ํ์ํ ๊ฒ ๊ฐ์์. struct Time { var hours: Int var minutes: Int var seconds: Int var convertedSeconds: Int { return (hours * 3600) + (minutes * 60) + seconds } static func ..
-
SwiftUI์์ Notification ์ฌ์ฉํ๊ธฐSwiftUI 2023. 8. 17. 12:25
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ Notification์ ๋ฐ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ํํ, ๋ค๋ฅธ ๋ทฐ์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ์ ์ญ์ ์ผ๋ก NotificationCenter๋ฅผ ํตํด Notification์ ์๊ณ ํด๋น ๋ ธํฐํผ์ผ์ด์ ์ ์์ ํ๊ณ ์๋ ๋ค๋ฅธ ๋ทฐ๋ค์์๋ ์ ์ ํ ์ฒ๋ฆฌ๋ฅผ ์ฝ๊ฒ ํด์ค ์ ์๊ณ ๋ ๊ทธ๋ด๋ ๋ง์ด ์ฌ์ฉํ์ฃ ! SwiftUI์์ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ตฌํํด๋ณด๊ณ ์์๊ฐ๋ณด์์ฃ ๐บ๐ป ์ฐ์ ๋๊ฐ์ง ๋ฐฉ์์ ์ฌ์ฉํด๋ณด๋ คํด์! ๊ฐ์ฅ ๋จผ์ SwiftUI์์ onRecieve๋ฅผ ํตํด ์์ ๋ฐ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. onRecieve ์ด์ฉํ๊ธฐ ์ฝ๋๊ฐ ๊ฐ๋จํ๋ ๋ณ๋ ํ์ผ์ ์ชผ๊ฐ์ง ์๊ณ ์ฝ๊ฒ ํ ๋ทฐ์์ ๋ณด๊ฒ ์ต๋๋ค. import SwiftUI struct Conten..
-
SwiftUI๋ก ์์ฑ๋ฉ๋ชจ ๊ตฌํํ๊ธฐSwiftUI 2023. 8. 15. 11:27
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI๋ก ์์ฑ๋ฉ๋ชจ๋ฅผ ๊ตฌํํ๋ ํ์ต์ ํด๋ณด๋ คํด์! ๐ ์ด๋ป๊ฒ ๋ง๋ค์ด ๋ณผ๊น์? ์ ์ฒด์ ์ผ๋ก ์ค๋ช ํ๋ฉด AVFoundation์ ์ด์ฉํ์ฌ ํด๋น ์์ฑ๋ฉ๋ชจ ๋ฐ ์ฌ์ ๋ฑ์ ๊ดํ ๊ธฐ๋ฅ์ ํด์ค ์ ์๋ ์๋น์ค๋ฅผ ๋ง๋ค๊ณ ํด๋น ์๋น์ค ๊ฐ์ฒด๋ฅผ ๋ทฐ์์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. MVVM์ผ๋ก ๊ตณ์ด ๋ทฐ์ ๋ทฐ๋ชจ๋ธ์ ๋ง๋ค์ด ํด๋น ๋ทฐ๋ชจ๋ธ์ด ์์ฑ๋ฉ๋ชจ๋ฅผ ๊ด์ฅํ๋ ์๋น์ค ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๋ ๊ตฌ์กฐ๋ก ํ ์ ๋ ์์ง๋ง ๊ฐ๋จํ ์ด๋ฒ ํฌ์คํ ์์๋ ์์ฑ๋ฉ๋ชจ ๊ธฐ๋ฅ์ ์ด์ ์ ๋ง์ถ๊ธฐ ์ํด ๊ตฌ์กฐ์ ์ผ๋ก ์๋ตํ์์ ๋ง์๋๋ ค์ ๐๐ป ๊ทธ๋ผ ๋ฐ๋ก ํ๋ฒ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค ๐บ๐ป ์์ฑ๋ฉ๋ชจ ์๋น์ค ๊ฐ์ฒด ๊ตฌํํ๊ธฐ ๊ฐ์ฅ ๋จผ์ ์์ฑ๋ฉ๋ชจ๋ฅผ ๋ด๋นํ๋ ์๋น์ค ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ๋๊ฒ์ด ํต์ฌ์ด์ ์ฌ์ค ์ ๋ถ์ ๋๋ค. ๊ทธ๋ ๊ธฐ์ ๋จผ์ ์ฝ๋๋ก ๋ณด๋ฉด์ ์ค๋ช ์ ํด๋ณผ๊ป์!..