swiftUI
-
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์ผ๋ก ๊ตณ์ด ๋ทฐ์ ๋ทฐ๋ชจ๋ธ์ ๋ง๋ค์ด ํด๋น ๋ทฐ๋ชจ๋ธ์ด ์์ฑ๋ฉ๋ชจ๋ฅผ ๊ด์ฅํ๋ ์๋น์ค ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๋ ๊ตฌ์กฐ๋ก ํ ์ ๋ ์์ง๋ง ๊ฐ๋จํ ์ด๋ฒ ํฌ์คํ ์์๋ ์์ฑ๋ฉ๋ชจ ๊ธฐ๋ฅ์ ์ด์ ์ ๋ง์ถ๊ธฐ ์ํด ๊ตฌ์กฐ์ ์ผ๋ก ์๋ตํ์์ ๋ง์๋๋ ค์ ๐๐ป ๊ทธ๋ผ ๋ฐ๋ก ํ๋ฒ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค ๐บ๐ป ์์ฑ๋ฉ๋ชจ ์๋น์ค ๊ฐ์ฒด ๊ตฌํํ๊ธฐ ๊ฐ์ฅ ๋จผ์ ์์ฑ๋ฉ๋ชจ๋ฅผ ๋ด๋นํ๋ ์๋น์ค ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ๋๊ฒ์ด ํต์ฌ์ด์ ์ฌ์ค ์ ๋ถ์ ๋๋ค. ๊ทธ๋ ๊ธฐ์ ๋จผ์ ์ฝ๋๋ก ๋ณด๋ฉด์ ์ค๋ช ์ ํด๋ณผ๊ป์!..
-
SwiftUI - monospaced๋ฅผ ์ด์ฉํ Text ๊ณ ์ ํญ ์ค์ ํ๊ธฐSwiftUI 2023. 7. 20. 17:56
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ Text์ ๊ณ ์ ํญ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ monospaced์ ํจ๊ป ์์๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ monospaced๊ฐ ์ด๋ค ์ญํ ์ ํ๋์ง๋ถํฐ ๊ณต์๋ฌธ์๋ฅผ ํตํด ์ดํด๋ณด๊ฒ ์ต๋๋ค ๐บ๐ป monospaced ๊ธฐ๋ณธ ๊ธ๊ผด๊ณผ ๋์ผํ ํฐํธ ํจ๋ฐ๋ฆฌ์ ๊ณ ์ ๋๋น ๊ธ๊ผด์ ๋ฐํํด์ฃผ๋ ๋ฉ์๋์ ๋๋ค. ๋ง์ฝ ๋์ผํ ํฐํธ ํจ๋ฐ๋ฆฌ์ ์ ํฉํ ๊ธ๊ผด์ด ์์ ๊ฒฝ์ฐ SwiftUI๊ฐ ๊ธฐ๋ณธ ๊ณ ์ ๋๋น ๊ธ๊ผด๋ก ๋ฐํํด์ค๋๋ค. func monospaced() -> Font ์ ์ธ์ ๋ณด์๋ฉด SwiftUI์ ์ฌ์ฉํ๋ ๋ฉ์๋๋ก Font ํ์ ์ผ๋ก ๋ฐํํด์ค๋๋ค. ๋ค๋ง ์์ฌ์ด์ ์ iOS 15 ์ด์๋ถํฐ ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ ๐ฅฒ ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก Text๋ ๊ทธ ์ธ ํ ์คํธ๋ฅผ ๊ฐ์ธ๋ HStack๋ฑ์์ ๋ถ์ผ ์ ์์ง๋ง, font ์ง..
-
ํน์ ๋ฒ์ ์ ๋ํ ๋ถ๊ธฐ ์ฒ๋ฆฌํ๊ธฐ (systemVersion)iOS 2023. 7. 13. 08:50
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ํน์ ๋ฒ์ ์ ๋ํ ๋ถ๊ธฐ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ผ๋จ ๊ฐ๋จํ ํฌ์คํ ์ด ๋ ์๋ ์์๊ฒ ๊ฐ๋ค์ใ ใ ๋ถ๊ธฐ ์ฒ๋ฆฌ? ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ๋ฒ์ ๋ณ๋ก ์ฝ๋๋ฅผ ๋ค๋ฅด๊ฒ ๋์์ํค๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์์ต๋๋ค. iOS๋ฅผ ์๋ฅผ๋ค์ด๋ณธ๋ค๋ฉด iOS 17์์๋ถํฐ ์ง์๋๋ Keyframe Animator์ ์ฌ์ฉ์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ ํ์ฌ ํ๋ก์ ํธ์ ๋ฏธ๋๋ฉ ํ๊ฒ์ ๋ง์ฝ iOS 15๋ผ๊ณ ๊ฐ์ ํด๋ณผ๊ป์. ๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๋ ํน์ ํ์ผ์์ ํด๋น ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด iOS 17 ์ด์์์๋ ์ ๋์ ๊ทธ ๋ฐ์์๋ ์ ๋์ ์ด๋ ๊ฒ ๋ถ๊ธฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ์ฃ ? ์ ์ด๋ด๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋ฉด ๋ ๊น์? available ํด๋น ์์ฑ์ ์ด์ฉํด ๋ฒ์ ์ ์ฒดํฌํ๊ณ ๋ถ๊ธฐ์ฒ๋ฆฌ๋ฅผ ํ ์ ์์ต๋๋ค. ์ผ๋จ ๊ฐ๋จํ๊ฒ #available๊ณผ..
-
SwiftUI - Custom ScrollTabViewSwiftUI 2023. 7. 10. 21:58
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ปค์คํ ํ ์คํฌ๋กค ํญ๋ทฐ๋ฅผ ๋ง๋ค์ด๋ณด๋ คํด์! ์ ํํ๊ฒ๋ ํญ๋ทฐ ๋ด ์ปจํ ์ธ ๊ฐ ์คํฌ๋กค๋๋๊ฒ ์ธ์๋ TabBar ์ฆ, ํค๋ ์์ญ ์์ฒด๊ฐ ์คํฌ๋กค ๋๋๊ฒ์ ๊ตฌํํด๋ณด๋ ค ํฉ๋๋ค๐ ์ผ๋ง์ ์ SwiftUI๋ก ์ปค์คํ ํญ ๋ทฐ๋ฅผ ๊ตฌํํด๋ณธ์ ์ด ์์ด์. https://green1229.tistory.com/385 SwiftUI - Custom TabView ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI๋ก ์ปค์คํ ํ ํญ๋ทฐ๋ฅผ ๊ตฌํํด๋ณด๋ ค ํฉ๋๋ค๐ SwiftUI์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ฃผ๋ TabView ์ปดํฌ๋ํธ๊ฐ ์์ง๋ง ์์ ์์ ์ปค์คํ ํ๊ฒ ํญ๋ทฐ๋ฅผ ์ ๋ง๋ green1229.tistory.com ๊ทธ๋ฐ๋ฐ ํด๋น ์ปค์คํ ๋ทฐ์์ ํญ ๋ฐ์ ์ญํ ์ ํ๋ ํค๋ ์์ญ์ ๋ง์ ๊ฐฏ์์ ํญ์ด ์์นํ๊ฒ ๋ ๊ฒฝ์ฐ ์คํฌ..
-
SwiftUI - ๋ทฐ์ ๋์ด๊ฐ ์ถฉ๋ถ์น ์์๋๋ Sticky ์ ์งํ๊ธฐSwiftUI 2023. 7. 6. 15:31
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ค์ ๋ก ๊ฒช์ ์ ์๋ SwiftUI์ ๊ตฌํ ๊ณผ์ ์์ ๋ฌธ์ ๋ฅผ ์์๋ณด๊ณ ๋์ฒํด๋ณด๋ ค ํฉ๋๋ค ๐๐ป Stickyํ ์คํฌ๋กค ๋ทฐ๋ ๋ค๋ค ํ๋ฒ์ฏค ๋ค์ด๋ณด์ จ์๊ฒ ๊ฐ์์! ๋ง์ฝ Stickyํ ๋ทฐ๊ฐ ์ด๋ค๊ฑด์ง ์ฒ์ ๋ค์ด๋ณด์ ๋ค๋ฉด ์๋ ํฌ์คํ ์ ๋จผ์ ๋ณด๊ณ ์ค์๋ฉด ๋ง์ ๋์์ด ๋ฉ๋๋คใ ใ https://green1229.tistory.com/302 SwiftUI - PinnedScrollableViews (a.k.a Sticky View) ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ PinnedScrollableViews๋ผ๋๊ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ ์ด๊ฑธ ์์๋ณด๊ฒ ๋ ๋ฐฐ๊ฒฝ์ ํ๋ก๋ํธ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค ์คํฌ๋กค๋ทฐ๋ก ๊ฐ์ธ์ง VStack์์ green1229.tistory.com ..