ios
-
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..
-
VIPER ๋ฟ์ ๋ณด๊ธฐ (3)VIPER 2023. 8. 10. 10:08
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ VIPER์ ๋คํธ์ํน๊ณผ Interactor ๋ถ๋ถ์ ์น์คํ์ฌ ํ๋ฒ ํ์ต์ ํด๋ณด๋ คํฉ๋๋ค ๐ ์ผ๋จ ์ด์ ํฌ์คํ ์ ๊ธฐ๋ฐ์ผ๋ก ์ด์ผ๊ธฐ๋ฅผ ํ์ด๋๊ฐ ์์ ์ด๊ธฐ์ ์ฌ์ ์ ๊ผญ ๋ณด๊ณ ์ค์๋๊ฒ ์ข์ต๋๋ค! VIPER ๋ฟ์ ๋ณด๊ธฐ (2) ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ VIPER 2ํ, ์ฝ๋๋ก ์์๋ณด๋ VIPER๋ฅผ ์๊ฐํ๋ฉด์ ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐ ์ฐ์ , VIPER์ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ๋ฐ ํน์ง ๊ทธ๋ฆฌ๊ณ ๊ตฌ์กฐ ๋ฑ์ 1ํ์์ ๋ค๋ค๊ธฐ์ ๋จผ์ green1229.tistory.com ์ ๊ทธ๋ผ Interactor๋ฅผ ์๊ณ ๊ณ์ ๋ค๋ ๊ฐ์ ํ์ ์งํํ๊ฒ ์ต๋๋ค. ์ค์ ๋คํธ์ํฌ ํต์ ์ ๊ฐ์ง Interactor ๊ตฌํํ๊ธฐ ์ด์ 2ํ์์๋ Interactor๋ฅผ ๋คํธ์ํฌ ํต์ ์์ด ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์์๋ก fake ๊ตฌํ..
-
VIPER ๋ฟ์ ๋ณด๊ธฐ (2)VIPER 2023. 8. 7. 12:36
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ VIPER 2ํ, ์ฝ๋๋ก ์์๋ณด๋ VIPER๋ฅผ ์๊ฐํ๋ฉด์ ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐ ์ฐ์ , VIPER์ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ๋ฐ ํน์ง ๊ทธ๋ฆฌ๊ณ ๊ตฌ์กฐ ๋ฑ์ 1ํ์์ ๋ค๋ค๊ธฐ์ ๋จผ์ ์ ํ์ผ๋ก ๋ณด๊ณ ์ค์๋๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค ๐ VIPER ๋ฟ์ ๋ณด๊ธฐ (1) ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ค๋๋ง์ ์๋ฆฌ์ฆ๋ก ์จ๋ณผ๊นํด์! ์ฃผ์ ๋ VIPER์ ๋๋ค ๐ ์ํคํ ์ณ๋ค ์กฐ๊ธ์ฉ ๋ด์ผ์ง ๋ด์ผ์ง~ ํ๋ค๊ฐ ํ๋ฒ์ ๋ค ๊ณต๋ถํ๊ณ ์ ๋ฆฌํ๊ธฐ๋ ๋น์ฐํ ๋ฒ ์ฐฐ๊ฒ green1229.tistory.com ๊ทธ๋ผ ์ฐ๋ฆฌ์ ์๊ฐ์ ๊ท์คํ๋๊น ํต์ฌ์ผ๋ก ๋ฐ๋ก ๋์ด๊ฐ๋ณผ๊ป์. ์ค๋ ๋ฟ์ ๋ณผ ๋ถ๋ถ์ด ๋ญ๋ผํ์ฃ ? 1ํ์์ ์์๋ณธ ๊ตฌ์กฐ๋ค์ ์ฝ๋๋ก ๊ฐ ํํธ๋ฅผ ํํํด๋ณด๋ ๊ณผ์ ์ ํด๋ด์ผํด์. ์์๋ ์ํ๋๋ฐ ๋ญ๊ฐ ํฐ ์ฐ์ด ๋จ์์์๊ฒ ๊ฐ์ ๋๋..