SWIFT
-
TCA - DebuggingTCA 2022. 10. 6. 12:22
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์ ์์ฃผ ์งง์๊ฑฐ๋ผ ์๊ฐ๋๋๋ฐ TCA์์์ ๋๋ฒ๊น ์ ๊ดํด์ ์จ๋ณผ๊นํฉ๋๋ค๐ TCA์์๋ ๋ฆฌ๋์๋ฅผ ํตํด ๋๋ฒ๊น ์ ์ง์ํฉ๋๋ค. ์ด ๋๋ฒ๊น ์ ์ง์ํ๋ ๋ฉ์๋์ ์ฌ์ฉ์กฐ์ฐจ ์์ฃผ ๊ฐ๋จํด์. ์ฐ์ ๋๋ฒ๊น ์ด ๋ฌด์์ธ์ง ๊ฐ๋จํ ์ง๊ณ ๋์ด๊ฐ๋ณผ๊ป์! Debugging? ๋๋ฒ๊น ์ด๋๊ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์์ ์ ๋ชฉ์์ผ๋ณธ๋ค๋ฉด ๋ฒ๊ทธ๋ฅผ ์ก๋๊ฒ์ผ๋ก ํต์ฉ๋ฉ๋๋ค. ์คํ์๋ฅผ ๋ฐ๊ฒฌํ๊ฑฐ๋ ์ปดํ์ผ ๋ฐ ๋ฐํ์ ์๋ฌ๊ฐ ๋๋ ๋ถ๋ถ๋ค์ ์บ์นํด ๋ฐ๋ก ์ก๊ธฐ ์ํ ํ๋์ด๋ผ ๋ณผ ์ ์์ต๋๋ค. ์ฑ๋ฅ ํ๋ก ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํด ๋๋ฒ๊น ํ ์๋ ์์ผ๋ฉฐ ๋๋ฒ๊ฑฐ๋ผ๋ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ ํฉ๋๋ค. ๋ญ ๋๋ฌด ๋ค๋ค ์๊ณ ์๋ ๋ด์ฉ์ด์ง๋ง ํ๋ฒ ์ง์ด๋ดค์ต๋๋ค. ๊ทธ๋ผ TCA์์ ๋๋ฒ๊น ์ ์ํด ์ ๊ณตํ๋ ๋ฉ์๋๊ฐ ๋ฌด์์ธ์ง์ ์ญํ ์ ๋ณด์์ฃ ! TCA์์ Debug..
-
Subscript์ ๋ํด ์์๋ณด๊ธฐ (feat.String)Swift 2022. 10. 3. 11:25
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ค๋ ํฌ์คํ ์ Subscript์ ๋ํด ์์๋ณด๋ฉฐ Swift ์ธ์ด์์๋ง ์ String์ ๋ค๋ฃฐ๋ Subscript๊ฐ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์์๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ Subscript๋ผ๋๊ฒ ๋ง์ด ๋ค์ด๋ณด์ จ์๊ฒ ๊ฐ์์. ๊ทธ๋ฐ๋ฐ ์๋ง๋ ์ ๋๋ก ์ค๋ช ํ๊ธฐ์๋ ๋ง๋งํ ๋ถ๋ค์ด ๋ง์๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค. ๋ณด๋ฉด ์~ ์ด๊ฑฐ! ํ๊ฒ ์ง๋ง ์ฉ์ด๋ง์ผ๋ก๋ ๋ญ์๋๋ผ..? ํ๊ฒ ๋์ฃ . ๊ทธ๋์ ์ฐ์ Subscript๊ฐ ๋ฌด์์ธ์ง ์ ์ํด๋ณด๊ณ ๊ฐ๊ฒ ์ต๋๋ค! Subscript์ ์ ์ ์๋ธ์คํฌ๋ฆฝํธ๋ ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ์์ ์ ์ํด์ ์ฌ์ฉํ๋ ์คํฌ๋ฆฝํธ์ ๋๋ค. ์ฆ ์ปฌ๋ ์ , ๋ฆฌ์คํธ, ์ํ์ค ๋ฑ ์งํฉ ๋ด ์ํ ์์์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฌธ๋ฒ์ธ ์ ์ด์ฃ . ์ด๋ฅผ ์ด์ฉํด ๋ฉ์๋ ๊ตฌํ์์ด๋ ๋จ์ํ ๊ฐ์ ์ถ๊ฐ ๋ฐ ํ๋ ๋ฑ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ํ์ ์ธ ์..
-
SwiftUI - DisclosureGroup & OutlineGroupSwiftUI 2022. 9. 29. 10:24
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ Lists์ ์ํด์๋ ํ์ ์ธ DisclosureGroup & OutlineGroup์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ ์ด ๋์ด ๋๋ต์ ์ผ๋ก ์ด๋ค๊ฑด์ง ๊ฐ๋จํ ์ค๋ช ํด๋ณผ๊ป์. ๋จ์ํ๊ฒ ์๊ฐํด์ ์ ๊ณ ํผ ์ ์๋ ํ์ผ์ธ ํธ๋ฆฌ ๊ตฌ์กฐ์ ํํ๋ฅผ ๊ฐ์ง๊ฒ ํ ์ ์๋ ๋ทฐ๋ผ๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค. ์ด์ ๋๋ก๋ง ์ค๋ช ํด์๋ ๊ฐ์ด ์์ค์ค ์๋ ์๊ฒ ์ง๋ง ์ค์ ๋ก ์๋ ๊ตฌํ๋๊ฑธ ๋ณด๋ฉด ๋ฐ๋ก ๋นก ์~ ์ด๋ฐ๊ฑฐ ํ ๊ฑฐ์์๐ ์..! ์ฐธ๊ณ ๋ก ์ด ๋๊ฐ์ง๋ SwiftUI๋ผ๊ณ ๋ค ์ฌ์ฉํ ์ ์๋๊ฒ์ด ์๋๊ณ iOS 14 ์ด์์์๋ง ์ ๊ณตํฉ๋๋ค๐บ๐ป ๊ทธ๋ผ ์ด๊ฑด ์ฝ๋๊ฐ ๋ ์ฝ๊ฒ ์ดํด๋ ์ ์์ผ๋ ๋ฐ๋ก ๋ณธ๋ก ์ผ๋ก ๊ฐ๋ณผ๊ป์! DisclosureGroup? ์ ์ด์ ์ํ์ ๋ฐ๋ผ ํ์ ์ปจํ ์ธ ๋ฅผ ํ์ํ๊ฑฐ๋ ์จ๊ธธ ์ ์๋ ๋ทฐ์ ..
-
TCA - ScopeTCA 2022. 9. 26. 09:23
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ Scope์ ๋ํด ๋ฌด์์ธ์ง ์์๋ณด๊ณ ์ด๋ป๊ฒ ์ด Scope ๋ฒ์๋ฅผ ์ง์ ํ๋ฉด ์ข์์ง ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ ์์ง๋ TCA๊ฐ ์ด๋ค๊ฑด์ง ์์ํ๋ถ๋ค์ด ๋น์ฐํ ๋ง์๊ฑฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฐ๋ถ๋ค์ด๋ผ๋ฉด ์ ํฌ์คํ ์ ๋จผ์ ๋ณด๊ณ ์ค์๋ฉด ์ข์ต๋๋ค! https://green1229.tistory.com/138?category=936861 Composable Architecture ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Composable Architecture์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ ์์๋ณด๊ฒ ๋์๋์ง? ์์ผ๋ก๋ SwiftUI์ ์ฌ์ฉ์ ์ด๋ฒคํธ๋ฅผ ํตํ ๋ทฐ์ ์ ๋ฐ์ดํธ ๋ฑ ์ํ ๊ฐ green1229.tistory.com ์ฐ์ Scope๋ฅผ ์์๋ณด๊ธฐ ์ด์ ์ ์ ํ์ผ๋ก ์์์ผ..
-
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..
-
์ ๊ท ํํ์ (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..