์ ์ฒด ๊ธ
-
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์ผ๋ก ๊ตณ์ด ๋ทฐ์ ๋ทฐ๋ชจ๋ธ์ ๋ง๋ค์ด ํด๋น ๋ทฐ๋ชจ๋ธ์ด ์์ฑ๋ฉ๋ชจ๋ฅผ ๊ด์ฅํ๋ ์๋น์ค ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๋ ๊ตฌ์กฐ๋ก ํ ์ ๋ ์์ง๋ง ๊ฐ๋จํ ์ด๋ฒ ํฌ์คํ ์์๋ ์์ฑ๋ฉ๋ชจ ๊ธฐ๋ฅ์ ์ด์ ์ ๋ง์ถ๊ธฐ ์ํด ๊ตฌ์กฐ์ ์ผ๋ก ์๋ตํ์์ ๋ง์๋๋ ค์ ๐๐ป ๊ทธ๋ผ ๋ฐ๋ก ํ๋ฒ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค ๐บ๐ป ์์ฑ๋ฉ๋ชจ ์๋น์ค ๊ฐ์ฒด ๊ตฌํํ๊ธฐ ๊ฐ์ฅ ๋จผ์ ์์ฑ๋ฉ๋ชจ๋ฅผ ๋ด๋นํ๋ ์๋น์ค ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ๋๊ฒ์ด ํต์ฌ์ด์ ์ฌ์ค ์ ๋ถ์ ๋๋ค. ๊ทธ๋ ๊ธฐ์ ๋จผ์ ์ฝ๋๋ก ๋ณด๋ฉด์ ์ค๋ช ์ ํด๋ณผ๊ป์!..
-
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ํ์์ ์์๋ณธ ๊ตฌ์กฐ๋ค์ ์ฝ๋๋ก ๊ฐ ํํธ๋ฅผ ํํํด๋ณด๋ ๊ณผ์ ์ ํด๋ด์ผํด์. ์์๋ ์ํ๋๋ฐ ๋ญ๊ฐ ํฐ ์ฐ์ด ๋จ์์์๊ฒ ๊ฐ์ ๋๋..
-
VIPER ๋ฟ์ ๋ณด๊ธฐ (1)VIPER 2023. 8. 2. 23:05
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ค๋๋ง์ ์๋ฆฌ์ฆ๋ก ์จ๋ณผ๊นํด์! ์ฃผ์ ๋ VIPER์ ๋๋ค ๐ ์ํคํ ์ณ๋ค ์กฐ๊ธ์ฉ ๋ด์ผ์ง ๋ด์ผ์ง~ ํ๋ค๊ฐ ํ๋ฒ์ ๋ค ๊ณต๋ถํ๊ณ ์ ๋ฆฌํ๊ธฐ๋ ๋น์ฐํ ๋ฒ ์ฐฐ๊ฒ ๊ฐ์์ ์กฐ๊ธ์ฉ ๋๋ ์ ์๋ฆฌ์ฆ๋ก ๋ฐฐ์๋ณผ๊นํ์ด์. ๊ทธ๋์ ํ์ ๊ด์ฌ์ด ์๋ VIPER ์ํคํ ์ณ์ ๋ํด ์ฐ๋จน ๋๋์ผ๋ก ํ๋ค๊ฐ ๋ฅ ๋ค์ด๋ธํด๋ณด๋ ๊ทธ๋ฐ ์๋ฆฌ์ฆ๋ฅผ ๋ง๋ค์ด๋ณด๋ ค๊ณ ๊ณํ์ค์ด์ ์ค์ค๋ก ์ฝ์ํ๊ณ ์์ต๋๋ค! ๊ณํ ์ ์งํฌ ์ ์๋๋ก ์ง์ง ์ชผ์ค๊ธ์ฉ ๊พธ์คํ ํด๋ณด์ ๋ฏธ๋์ ๋์ผ... ๊ทธ๋ผ VIPER ์์ํด๋ณผ๊ป์ ๐บ๐ป ์ฐ์ VIPER ์ํคํ ์ณ๊ฐ ๋ญ์ง๋ถํฐ ์๊ณ ๊ฐ์ผํ๊ธฐ์ ์ด๋ฒ ํฌ์คํ ์์๋ VIPER ๋๋์ฒด ๋ญ์ง ์ฐ๋จน ๊ฐ๋๋ค! VIPER ๋ ๋์ฒด ๋ญ์ผ? ์ฐ์ VIPER๋ฅผ ๊ฒ์ํ๋ฉด ๋ง์ ๊ธ๋ค์์ ๋์ค๋ ๋ํ์ ์ธ ํ๋ฆ ๊ตฌ์กฐ๋๊ฐ ์์ด์ ์ ๋ ..
-
Swift HTTP Types ์ฐ๋จนํ๊ธฐSwift 2023. 7. 31. 10:14
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ผ๋ง์ ๊ณต๊ฐ๋ Swift HTTP Types๋ผ๋๊ฒ์ ๋ํด ์ฐ๋จน์ ํด๋ณด๋ คํด์. ์ต๊ทผ ์ ํ์์ Swift HTTP Types๋ผ๋ ์๋ก์ด ์คํ ์์ค ํจํค์ง๋ฅผ ๋ง๋ค์๊ณ ํ์ฌ๋ ์ด๊ธฐ ๋จ๊ณ์ด๊ธฐ์ ํ๋ฐํ ์งํ๋๊ณ ์์ต๋๋ค. ํ์ฌ ๋ฆด๋ฆฌ์ฆ๋ ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ 0.2.0์ด๊ณ ์์ง ๋ฉ์ด์ ํ 1.0.0 ๋ฒ์ ์ด ์๋์์ฃ ใ ใ ๊ทธ๋ ๊ธฐ์ ํ์ฌ iOS์์๋ ๊ธฐ๋ณธ ์ ๊ณต๋๋ ํ๋ ์์ํฌ์ ์์ง ์ํ์ง ์์ต๋๋ค๐ฅฒ ์กฐ๋ง๊ฐ Foundation ํ๋ ์์ํฌ์ ๊ฐ์ด ๋ค์ด๊ฐ์ง ์์๊น ์ถ์ธกํด๋ด์! ํ์ฌ๋ ์ฐ๋จนํด๋ณด๊ณ ์ถ์ผ์๋ค๋ฉด SPM์ผ๋ก ์ฌ์ฉํด์ผํฉ๋๋ค! GitHub - apple/swift-http-types: Version-independent HTTP currency types for Swift Versio..