์ ์ฒด ๊ธ
-
STT๋ฅผ ์ด์ฉํด ์์ฑ์ ํ ์คํธ๋ก ๋ณํํด๋ณด์ ๐ฃ๏ธSwiftUI 2023. 12. 26. 18:57
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ iOS์ STT๋ฅผ ์ด์ฉํ์ฌ ์์ฑ์ ํ ์คํธ๋ก ๋ณํํ๋ ํ์ต์ ํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์์๋ STT๊ฐ ๋ฌด์์ธ์ง ์์๋ณด๊ณ ์ด๋ฅผ ํ๋ก์ ํธ์์ ํ์ฉํ์ฌ ์ง์ ์์ฑ์ ํ ์คํธ๋ก ๋ณํํด๋ณด๋ ์ฝ๋๊น์ง ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค! ๊ทธ๋ผ STT๊ฐ ๋์ฒด ๋ญ์ง ์์๋ณผ๊น์? STT(Speech-to-Text)๋? STT๋ Speech-to-Text์ ์ฝ์์ด๋ฉฐ, ์์ฑ์ ํ ์คํธ๋ก ๋ณํํ๋ ๊ธฐ์ ์ ๋งํฉ๋๋ค. ์ฃผ๋ก, ์์ฑ ์ธ์์ด๋ ์์ฑ ๋ณํ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๊ณ ์์ฑ ๋ฐ์ดํฐ ์์ฒด๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ํํ๋ก ๋ณํํ๋ ๊ณผ์ ์ ํฌํจํด์! ํํ STT๋ง๊ณ TTS(Text-to-Speech)๋ ๋ง์ด ๋ค์ด๋ณด์ จ์ํ ๋ฐ์! ์ด๋ฆ์์๋ ์ ์ถํ ์ ์๋ฏ์ด ์๋ก ๋ฐ๋์ ๊ฐ๋ ์ ๋๋ค. TTS๋ ํ ์คํธ๋ฅผ ์์ฑ ์ค๋์ค๋ก ๋ณํํ๋๊ฒ์ด๊ณ ..
-
SwiftUI - trim & maskSwiftUI 2023. 12. 21. 19:20
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ trim๊ณผ mask์ ๋ํด ํ์ตํด๋ณด๋ ค๊ณ ํฉ๋๋ค ๐๐ป ์ฐ์ ์ด ๋๊ฐ์ ๋ชจ๋ํ์ด์ด๋ฅผ ํ์ตํด๋ณด๋ ค๋ ์ด์ ๋ ๊ฐ๋จํ์ด์! ๋ํ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์๋ผ์ ํ์ํ๊ฑฐ๋ ์งํ ์ํฉ์ ๋ฐ๋ผ ๊ฐ๋ ค์ง ๋ถ๋ถ์ ์ ์ง์ ์ผ๋ก ์ฑ์๋๊ฐ๋ ค๋ ๊ตฌํ์ ์์๋ณด๋ค๊ฐ ์ด ๋๊ฐ์ง๋ฅผ ์ฐพ์์ต๋๋ค. trim๊ณผ mask์ ๊ฒฐ๊ณผ๋ทฐ๋ ๋น์ทํด๋ณด์ด์ง๋ง ๋์ํ๋ ๋ฐฉ์์์ ์ฐจ์ด๊ฐ ์๊ธฐ์ ์ฐ์ ๋ ๋ค ์ด๋ป๊ฒ ์ฌ์ฉํ๋๊ฒ์ธ์ง ์์๋ณด์์ฃ ! ๋จผ์ trim๋ถํฐ ์์๋ณด๊ฒ ์ต๋๋ค. trim(from:to:) trim ๋ฉ์๋๋ ๋ํ์ ํน์ ๋ถ๋ถ์ ์๋ผ๋ด ๋ณด์ฌ์ฃผ๋ ์ญํ ์ ํด์ค๋๋ค. ํด๋น ๋ฉ์๋๋ Shape ํ๋กํ ์ฝ์ ์ค์ํ๋ ๋ชจ๋ ๋ํ์ ์ฌ์ฉํ ์ ์์ด์! trim ๋ฉ์๋์ ์ ์๋ ์ด๋ ์ต๋๋ค. func trim( from sta..
-
UITest์์ accessibilityIdentifier ํ์ฉํ๊ธฐiOS 2023. 12. 18. 19:46
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ UITest์์ accessibilityIdentifier๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ์ accessibility ์ ๋์ฌ๊ฐ ๋ถ์ ๋ชจ๋ํ์ด์ด๋ค์ด ๋ฏ์ค์ง๋ ์์๋ฐ์! ์ด์ ํฌ์คํ ์ด์๋ VoiceOver ์ ์ฉํ๊ธฐ์์ ๋ง์ด ์๊ฐ๊ฐ ๋์์ด์ ๐ SwiftUI์์ VoiceOver ์ฌ์ฉํ๊ธฐ ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ VoiceOver๋ฅผ ์ ์ฉํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋ คํฉ๋๋ค ๐๐ป ์ด๋ฒ ํฌ์คํ ์์๋ VoiceOver๊ฐ ๋ฌด์์ด๊ณ SwiftUI์์ ์ด๋ป๊ฒ ์ ์ฉ ๋ฐ ์ฌ green1229.tistory.com ์ฌ๊ธฐ์ ๊ฐ UI ์ปดํฌ๋ํธ๋ค์ ๋ณด์ด์ค์ค๋ฒ๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก accessibilityLabel์ด๋ผ๋ ๋ฉ์๋๊ฐ ์ฌ์ฉ..
-
์ฑ ์ง์ ์ธ์ด ์ถ๊ฐ ๋ฐ ๊ธฐ๋ณธ ์ธ์ด ๋ณ๊ฒฝ (feat. Tuist)iOS 2023. 12. 14. 19:40
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ฑ์ ๊ธฐ๋ณธ ์ธ์ด๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ๊ณผ ๋ค์ํ ์ธ์ด๋ฅผ ์ง์ํ๋ ๋ฐฉ๋ฒ ๊ทธ๋ฆฌ๊ณ Tuist๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฌ์ค ๋๊ฒ ๊ฐ๋จํ๊ธดํด์ ํ๋ค๋ฅ ํ๋ฒ ์ ๋ฆฌํด๋ณผ๊ป์ ๐ ์ ์์๋ณด๊ณ ์ ๋ฆฌํ๊ฒ ๋์๋์ง? ์ฌ์ค VoiceOver๋ฅผ ํ๋ฒ ๋์ ํด๋ณด๋ฉด์ ํ์ํ๋ค๊ณ ๋๊ปด์ก์ด์. ์๋๋ฉด ๊ธฐ์กด ์ฑ์ด ์ ์ฒด ๊ตญ๋ด ๋ฐฐํฌ์ธ ํ๊ธ ์ฑ์์๋ ๋ถ๊ตฌํ๊ณ ๊ธฐ๋ณธ ์ธ์ด ์ค์ ์ด English๋ก ๋์ด ์์๊ฑฐ๋ ์. ๊ทธ๋ ๊ธฐ์ ์ฌ์ค์ ๋ฌธ์ ๊ฐ ๋๋ ๋ถ๋ถ์ ์์์ง๋ง, ๋ณด์ด์ค์ค๋ฒ ๊ธฐ๋ฅ์ ์ผ๊ณ ์ค์ ๊ธฐ๊ธฐ์์ ํ๊ธ ํ ์คํธ๋ฅผ ์ฝ์ผ๋ฉด ๋ชป ์ฝ์ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๊ตฌ์. ๋ฌผ๋ก , ์ฑ ๋ด ์ ํ ๋ก๊ทธ์ธ ๋ฒํผ ๋ฑ ์ ํ์์ ๊ธฐ๋ณธ ์ ๊ณตํ๋ API ๊ทธ๋ฐ๊ฒ๋ค์ ๋ํด์๋ ํ๊ธ๋ก ์ฝ์ด์ฃผ์ง๋ง ๊ฐ๋ฐ์๊ฐ String์ผ๋ก ๋ฃ์ Text๋ค์ ..
-
์ถ์ํ์ ๋คํ์ฑSwift 2023. 12. 11. 19:35
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ถ์ํ์ ๋คํ์ฑ์ ๋ํด ์๊ธฐํด๋ณผ๊น ํฉ๋๋ค ๐๐ป ๋ค๋ค ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ, ์ฆ OOP๋ผ๊ณ ๋ถ๋ฆฌ๋๊ฒ์ ๋ํด ํน์ง์ ์๊ณ ์์๊ฑฐ์์. ์ถ์ํ, ๋คํ์ฑ, ์บก์ํ, ์์ ๊ทธ ์ค์์ ํด๋น ํฌ์คํ ์์๋ ์ถ์ํ์ ๋คํ์ฑ์ด๋ผ๋๊ฒ์ ๋ํด ํ๋ฒ ์ ๋ฆฌํ๊ณ ๋์ด๊ฐ๋ณด๊ฒ ์ต๋๋ค. ์ฒ์ ๊ฐ์ฒด ์งํฅ์ด๋ผ๋ ๊ฐ๋ ์ ์ ํ์ค ๋ ์๊ทผํ ๋ง์ด ํท๊ฐ๋ คํ์๋ ํฌ์ธํธ์ธ๊ฒ ๊ฐ์์ ์ต๋ํ ์ฝ๊ฒ ํ์ด๋ณด๋ฉด์ ์ ๋ฌ ํด๋ณด๊ณ ์ถ์ด์ ์ด๋ ๊ฒ ํฌ์คํ ์ ์ฐ๊ฒ ๋์์ต๋๋คใ ใ ํน์ OOP์ ๋ํด ๋ฌด์์ธ์ง ์ฒ์ ๋ค์ด๋ณด์ ๋ค๋ฉด ์ฐ์ ๋ค๋ฅธ ๋ฌธ์๋ค์ ๋จผ์ ์ฐธ๊ณ ํ๊ณ ์ค๋๊ฒ์ด ๋ ๋์์ด ๋ ๊ฒ ๊ฐ์์! (๋์ค์ ์ฌ์ ๊ฐ ์์ผ๋ฉด OOP๋ ํ๋ฒ ์ ๋ฆฌํด๋ณผ๊ป์ ๐) ๊ทธ๋ผ ์ถ์ํ์ ๋คํ์ฑ ์์๋ณผ๊น์? ์ถ์ํ Abstraction์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ฐ์ฒด์งํฅ..
-
Core Data ํํค์น๊ธฐ ๐iOS 2023. 12. 7. 19:15
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ iOS์ Core Data์ ๋ํด ํ๋ฒ ํํด์ณ๋ณด๋ ค๊ณ ํฉ๋๋ค ๐๐ป ์ ํํค์น๊ธฐ๋ก ํด๋ดค๋์ง? ์์ฃผ ์ค๋์ ์..? ๊ฑฐ์ ์ฒ์ iOS๋ฅผ ๋ฐฐ์ธ๋ Core Data๋ฅผ ํ์ตํ๋ฉด์ ํด๋น ๋ธ๋ก๊ทธ ํฌ์คํ ์ผ๋ก ๊ธฐ์ฌํ์ ์ด ์๋๋ผ๊ตฌ์ ๐ฎ CoreData ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ CoreData(์ฝ์ด๋ฐ์ดํฐ)์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค..! ์ฐ์ ์ฝ์ด๋ฐ์ดํฐ๋ผ๋๊ฑธ ์๊ธฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ์์๋ณด๊ณ ์ฐจ๊ทผ์ฐจ๊ทผ ๋์ด๊ฐ๊ฒ ์ต๋๋คโบ๏ธ 1. ๋ฐ์ด green1229.tistory.com ๊ทธ๋์ ์ฐธ๊ณ ์ฐจ ๋ณด๋ คํ๋๋ฐ, ํฐ ํ์ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ๋ค ์์ฃผ๋ก ๋์ด ์์ด์ ์ค์ ๋ธ๋ก๊ทธ๋ง ๋ณด๊ณ ์ ์ฉ์ด ์ด๋ ค์ ์ด์. ์ ๋ธ๋ก๊ทธ๋ ์ฝ์ด ๋ฐ์ดํฐ์ ๊ด๊ณํ DB์ ๊ฐ๋ ์ค๋ช ์ ์ด์ ์ ๋ง์ถฐ์ ์ด๋ฌํ ๋ ์์ด๋ค~ ์๊ฐ์์ต..
-
์๋ ๋ฌธ์ ๊ฒฐํฉ ๋ฐฉ์งํ๊ธฐiOS 2023. 11. 30. 09:57
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ iOS ๊ฐ๋ฐ ์ ์๋ ๋ฌธ์ ๊ฒฐํฉ์ ๋ฐฉ์งํด๋ณด๋ ๊ตฌํ์ ํ๋ฒ ์ฝ์งํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ด์ฉ๋ค ์ด๊ฑธ ํฌ์คํ ํ๊ฒ ๋์์ง? ์ผ๋จ ์ฌ๊ฑด์ ์ ๋ง์ ์ด๋ฌํฉ๋๋ค. ํ ์คํธํ๋๊ฐ ์ฃผ์ด์ง๊ณ ์ต๋ ๊ธ์์๋ 8๊ธ์๊น์ง๋ง ๋ฐ์ผ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ์ ํ ์คํธ ํ๋์์ ์ ๋ ฅ๋์ด ๋ง๋ค์ด์ง ํ ์คํธ String์ count๊ฐ ์ด 8์ ๋๋์ง ํ๋จํด์ผ๊ฒ ์ฃ ? ์, ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค. import UIKit class ViewController: UIViewController, UITextFieldDelegate { let textField = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 40)) let button = ..