์ ์ฒด ๊ธ
-
SwiftUI์ Text์์ verbatim ์ฌ์ฉํ๊ธฐSwiftUI 2022. 9. 22. 09:48
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์ ์์ฃผ์์ฃผ ๊ฐ๋จํ๊ณ ์ค์ ๊ฐ๋ฐ์ ํ์ํ ํ ํ๋๋ฅผ ํฌ์คํ ํ๋ ค ํฉ๋๋ค๐ ์ค๋ ํฌ์คํ ํ ์ฃผ์ ๋ verbatim์ด๋ผ๋๊ฒ๋๋ค. SwiftUI๋ก ๋ทฐ ๋๋ก์์ ํ ๋ Text๋ผ๋ UI ์์๋ ์ ๋งํด์๋ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ verbatim์ด๋ผ๋ ์กฐ๊ฑด์ผ๋ก ํด๋น Text๋ฅผ ์ด๋ํ ์ ์๋ค๋๊ฑด ์ ๋ชจ๋ฅด์๋ ๋ถ์ด ๋ง์ต๋๋ค. ๊ทธ๋ผ ์ด๊ฑธ ์? ๊ทธ๋ฆฌ๊ณ ์ด๋ค ์ํฉ์์ ์ฌ์ฉํด์ผ ํ๋์ง ์์๋ณด๊ฒ ์ต๋๋ค๐บ๐ป verbatim? ์ ๋ ์ด ๋จ์ด๋ฅผ ์ฒ์ ๋ค์ด๋ดค์ต๋๋ค! ๊ทธ๋์ ์ฐ์ ํํ๊ณ ์์ ๋ฌด์จ ๋ป์ธ์ง๊ฐ ๋๋ฌด ๊ถ๊ธํด์ก์ด์. "๊ธ์ ๊ทธ๋๋ก" ๋ผ๋ ๋ป์ ๊ฐ์ง๋ค์. ์ฆ ์ ์ถํด๋ณด๋ฉด ์ฐ๋ฆฌ๊ฐ Text๋ String์ ํํํ๊ธฐ ์ํด ์ฌ์ฉํ์ฃ . ์ด String์ ๋ฌธ์์ด์ ๋ปํ๊ตฌ์. ๊ทธ๋ ๊ธฐ์ Text๋ฅผ verbatim์ผ๋ก..
-
TCA - pullbackTCA 2022. 9. 19. 10:59
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ๋ถํฐ TCA์ ๋ํด ์กฐ๊ธ์ฉ ํ์ตํ๊ณ ๊ณต์ ํ๋ คํฉ๋๋ค๐ TCA์ ๊ธฐ๋ณธ ๊ฐ๋ ์ธ State, Action, Reducer๋ฅผ ๋จผ์ ํ ์๋ ์๊ฒ ์ง๋ง ๊ทธ๋ฅ ์ ๊ฐ ํฌ์คํ ํ๊ณ ์ถ์ ์์ผ๋ก ํ ์์ ์ด๋ผ ์ฐจ๊ทผ ์ฐจ๊ทผ TCA๋ฅผ ํ์ตํด ๋๊ฐ๋๋ฐ๋ ์์๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค..! ์ค๋์ ์ฒซ๋ฒ์งธ ์ฃผ์ ๋ก pullback์ด๋ผ๋ ๋ฉ์๋์ ๋ํด ์์๋ณผ๊ป์! TCA? ์ฐ์ TCA๋ The Composable Architecture์ ์ฝ์์ ๋๋ค. ์ด๋ค ์ํคํ ์ณ์ธ์ง ์์ธํ ์๊ฐ๋ ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์! ๋จผ์ ๋ณด๊ณ ์ค๋ฉด ์ข์ต๋๋ค๐ https://green1229.tistory.com/138?category=936861 Composable Architecture ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ C..
-
SwiftUI-IntrospectLibrary 2022. 9. 15. 09:42
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์ ์ค๋๋ง์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ํ์ตํด๋ณด๋ ค๊ณ ๊ฐ์ ธ์์ด์. ๋ง์ ๋ถ๋ค์ด ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๋๋ผ๊ณ ์๊ฐ๋ค๋ฉฐ ๊ฐ์ธ์ ์ผ๋ก SwiftUI๋ก ๋ทฐ ๋๋ก์์ ํ๋ฉด์ ๊ฐํน UIKit์ API๋ค์ด ํ์ํ๊ณ ์ฌ์ฉํ๋๊ฒ์ด ๋ ํธํ ๋ ๋ณ๋ UIRepresntable๋ก๋ ๋ณ๋ ์ปค์คํ ๋ทฐ๋ก ์ง์ SwiftUI์์ ๊ธฐ๋ฅ์ ํ๋ค๊ฒ ๊ตฌํํ๊ฑฐ๋ ๊ตฌ์ฑํ์ง ์์๋ ์กฐ๊ธ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ SwiftUI-Introspect ์ ๋๋ค! ์ด๊ฑด ์ฌ์ค ๋ฅํ๊ฒ ๋ณด์ง ์์๋ ๋ ์ ๋๋ก ์ทจํฅ์ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ณ ์ ๋ํ ์ด์ ๋ ๊ฑฐ์ ์ฌ์ฉ์ ํ์ง ์๊ณ ์ ๋งํ๋ฉด ์ปค์คํ ํ๊ฒ ๋ทฐ๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๊ณ ์์ด์. ๊ทธ๋ผ์๋ UIKit๋ง ์ ํ๋ค๊ฐ SwiftUI๋ฅผ ์ฒ์ ์ ํ๋ ๋ถ๋ค๊ป์ UIKit์ ์กฐ๊ธ ํธ๋ฆฌํ๊ฒ Swi..
-
์ ๊ท ํํ์ (Regex)Swift 2022. 9. 13. 12:23
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๊ท ํํ์์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ ๊ท ํํ์์ด๋? ์ฐ์ ์ ๊ท ํํ์์ Swift์์ ์ฌ์ฉํ๋๊ฒ์ ์์๋ณด๊ธฐ์ ์์ ์ ๊ท ํํ์์ด ๋ฌด์์ธ์ง ๊ทธ ์ ์๋ถํฐ ๊นจ์ฐ์น๊ณ ๊ฐ๋๊ฒ ๋ง์๊ฒ ๊ฐ์์. ๊ทธ๋ ๊ธฐ์ ์ ๊ท ํํ์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ์ ์ฐพ์๋ดค์ต๋๋ค. (์ด๋ฐ ๊ฐ๋ ์ ์ธ๊ฒ์ ํ๋ณผ๋๋ ์ญ์ ์ํค ๋ฐฑ๊ณผ๊ฐ ์งฑ์ธ๊ฒ ๊ฐ์์..!) ์ ๊ท ํํ์์ ์์ด๋ก regular expression์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ ์ฐ๋ฆฌ๋ ์ค์ฌ์ Regex๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ์ ๊ท์์ ์ฃผ๋ก ํน์ ํ ๊ท์น์ ๊ฐ์ง ๋ฌธ์์ด์ ์งํฉ์ ํํํ๋๋ฐ ์ฌ์ฉ๋๋ ํ์ ์ธ์ด์ ๋๋ค. ์ฌ๊ธฐ์ ํ์ ์ธ์ด๋ ์ํ, ์ปดํจํฐ ๊ณผํ, ์ธ์ดํ์์ ํน์ ํ ๋ฒ์น๋ค์ ๋ฐ๋ผ ์ ์ ํ๊ฒ ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์งํฉ์ ๋งํฉ๋๋ค. ์ ๊ท ํํ์์ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ฌธ์..
-
Redacted๋ฅผ ํตํ ๋ทฐ ๋ชจ์์ดํฌSwiftUI 2022. 9. 8. 13:56
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ Redacted๋ผ๋ View Modifier๋ฅผ ํตํด ๋ทฐ ๋ฐ ๋ด๋ถ ์ปจํ ์ธ ์์๋ค์ ๋ชจ์์ดํฌ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํ๊ฒ ์ต๋๋ค๐ ์ฐ์ Redacted๋ผ๋ ๋ทฐ ๋ชจ๋ํ์ด์ด๊ฐ ์๋ค๋๊ฒ๊ณผ ์ด๋ฐ ๋จ์ด๋ฅผ ์ฒ์ ๋ค์ด๋ดค์ด์ ์ ๋.. ๊ทธ๋์ ์ด ๋จ์ด๊ฐ ๋ญ ๋ป์ธ์ง๋ฅผ ์๊ณ ๊ฐ์ผ๋ ๊ฒ ๊ฐ์์ ํํ๊ณ ๋ฅผ ์ผฐ์ต๋๋ค! redacted? ๋? ์ด๊ฑธ ์ํ๊ฑด ์๋๋ฐ... ๋ญ ์์ ์ด๋ผ๋ ์๋ฉ์ด ํฌํจ๋์ด์ ๊ฒฐ๊ตญ ๋ญ๊ฐ์ ๋ณํ์ด ์ผ์ด๋๋๊ตฌ๋ SwiftUI๋ก ์น๋ฉด View์ ์์ ์ด ์ผ์ด๋๋๊ตฌ๋ ์๊ฐ๋ง ํด๋ด ์๋ค. ๊ทผ๋ฐ ๋ญ๊ฐ ์กฐ๊ธ ์ฐ์ฐํด์ ์กฐ๊ธ ๋ ์ฐพ์๋ดค์ด์! redaction ์ํ์ ์ฐพ๋ค๋ณด๋ redaction์ด๋ผ๋ ์ ๋ณด๋ฅผ ์ฐพ์๋ดค์ต๋๋ค. https://en.wikipedia.org/wiki/Red..
-
@FocusState ์ฌ์ฉํ๊ธฐSwiftUI 2022. 9. 5. 11:37
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ @FocusState ๋ผ๋ ํ๋กํผํฐ ๋ํผ๋ฅผ ์ฌ์ฉํด SwiftUI์์ ์ฌ์ฉ๋๋ ํ ์คํธ ํ๋ ๋ฑ์ ํฌ์ปค์ฑ์ ์ปจํธ๋กค ํ๋ ํ์ต์ ํด๋ณด๊ฒ ์ต๋๋ค๐ @FocusState ์ฌ์ฉ ํ์ง ์์์ ๊ฒฝ์ฐ iOS 15๋ถํฐ ๋์จ ๊ฐ๋ ์ด๋ผ ์ด์ OS์์๋ TextField๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ปค์๊ฐ ์์นํ๋ ์ฆ ์ฌ๊ธฐ์ ๋งํ๋ ํฌ์ปค์ฑ์ ์ฌ์ฉํ๋ ๊ธฐ์ ์ SwiftUI์์๋ ์ง์ํ์ง ์์์ต๋๋ค. ๊ทธ๋ ๊ธฐ์ ์ฐ๋ฆฌ๋ ๋ ๊ทธ๋ ๋ฏ SwiftUI๋ง์ผ๋ก๋ ์์ง ์ ๊ณตํ์ง ์๊ฑฐ๋ ๊ตฌํ๋์ง ์๋ ํญ๋ชฉ์ด ์์ผ๋ฉด UIKit์ ๋์์ ๋ฐ์์ผ ํ์ด์. ์ด๋ฒ ๊ฒฝ์ฐ๋ ๋์ผํฉ๋๋ค. UIViewRepresentable๋ฅผ ์ฌ์ฉํด์ ๊ฒฐ๊ตญ UITextView๋ฅผ ๋ง๋ค์ด SwiftUI์์ ์ฌ์ฉ์์ผ์ค์ผ ํ์ด์. ์ด ๊ณผ์ ์์ UITextFiel..
-
์ฑ ๋ ธ์ถ ๋ง์ผํ ์์ํ๊ธฐ & TestFlight ์์ํ๊ธฐApp Store 2022. 9. 1. 09:57
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ ํ์์ ํ๊ตญ ์ธ์ ์ผ๋ก App Store Connect ์ฌ์ดํธ์ ๋ํด ์ ๋ฒ๋ฌ๋ถํฐ ์ด์ ๊น์ง ์ญ์ฑ ์ด์ด์ก์ด์. ์ด 6๊ฐ์ ์ธ์ ์ด์๊ณ ๋๋์ด ์ด๋ฒ์ฃผ ์ค๋ ํฌ์คํ ํ ๋ ์ฃผ์ ๋ฅผ ์๊ฐํ๋ฉฐ ๋์ด ๋ฌ์ต๋๋ค! ๊ทธ๋ ๊ธฐ์ ์ ์ข ์ ๋ฏธ๋ฅผ ๊ฑฐ๋๊ธฐ ์ํด ๋ง์ง๋ง ๋ ์ธ์ ์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐธ๊ณ ๋ก ์ด์ ์์ ๋ ์ด๋ฒคํธ๊ฐ ์๊ธฐ์ ์ ํ ๋๋ฒจ๋กํผ ์ฌ์ดํธ์์ ํ์ธํ ์ ์์ต๋๋ค๐ฅฒ ์ ๊ฐ ์๋์ ๋งํ์ง๋ง ์ด๋ฒ App Store Connect ์ธ์ ์ ๊ฐ๋ฐ์์ ์ด์ ๋ณด๋ค๋ ๋ง์ผํฐ๋ฅผ ๋์์ผ๋ก ์งํ๋ ๋๋์ด ๊ฐํฉ๋๋ค. ๊ทธ๋ ๊ธฐ์ ๊ฐ๋ฐ์๊ฐ ๋ค์ด๋ ๊ทธ๋ง ์๋ค์ด๋ ๊ทธ๋ง ์ด์ ๋์์ด์. ๋ฌผ๋ก App Store Connect ์ฌ์ดํธ๋ฅผ ์ด์ฉํด๋ณด์ง ์์๊ฑฐ๋ ํ๋ ๊ฐ๋ฐ์๊ฐ ์๋ค๋ฉด ์ ๋ฐ์ ์ธ ์ฌ์ดํธ ์๊ฐ๋ฅผ ํด์ฃผ๋ ๋ค์ผ๋ฉด ์ ์ฉ๊น์ง ์๋๋๋ผ๋ ์๊ฐ์ด ์..
-
dSYM (feat. Firebase Crashlytics)iOS 2022. 8. 29. 16:11
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ dSYM์ ๋ํด ์์๋ณด๊ณ Firbase Crashlytics์์ ํด๋น ์ฑ์ ๋น์ ์ ์ข ๋ฃ๋๋ ์ํฉ์ ์๋ฌ ๋ฆฌํฌํธ๋ฅผ ๋ฐ์ ์ ์๋๋ก dSYM ํ์ผ์ ์ ๋ก๋ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ dSYM? dSYM์ด๋ debug symbol file์ ์ฝ์์ ๋๋ค. dSYM ํ์ผ์ ์ด๋ฆ์์๋ ์ ์ ์๋ฏ์ด ํด๋น ์ฑ์ ๋๋ฒ๊ทธ ๊ธฐํธ ๋ฐ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค. ์ฑ๋ค์ ๊ฐํน ๋ฐํ์ ์๋ฌ๊ฐ ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ฆ ๊ฐ์ ์ข ๋ฃ๊ฐ ๋๋๊ฒ์ด๊ณ ์ด๋ ์ฌ์ฉ์์๊ฒ ์ข์ง ์์ ์ฌ์ฉ ๊ฒฝํ์ ์ฃผ๋๊ฒ์ด์ฃ . ๊ทธ๋ ๊ธฐ์ ๊ผญ ์ด๋ค ์ํฉ ๋ฐ ๋น๋์์ ์ด๋ค ์๋ฌ๊ฐ ๋ํ๋๋์ง ๋ฐฐํฌ๋์ด ์ด์๋๋ ์ฑ์์๋ ๊ผญ ์ด๋ฅผ ๋ถ์ํ์ฌ ๊ฐ์ ์์ผ์ผ ํฉ๋๋ค. ์ด๋ฐ ๋ถ์์ ํ๊ธฐ ์ํด์๋ ์๋ฅผ๋ค์ด ํ์ด์ด๋ฒ ์ด์ค์ crashlytics ๊ฐ..