TCA
-
TCA - Shared StateTCA 2024. 8. 5. 18:35
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ TCA์์ ์ฌ์ฉํ๋ Shared State์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ํด๋น ํฌ์คํ ์์๋ ๊ฐ๋ณ๊ฒ ์ด๋ค๊ฒ์ด๊ณ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง์ ๋ํด์ ์ดํด๋ณผ๊ฑฐ์์ ๐๋ง์ฝ Shared State์ ๋ํด ๋ ๊น๊ฒ ๋ณด์๊ธฐ ์ํด์๋ ํฌ์ธํธํ๋ฆฌ์ Shared State ์ํผ์๋๋ฅผ ๋ณด์๋๊ฑธ ์ถ์ฒ๋๋ ค์! Composable Architecture › Shared State in PracticeWe refactor two real world code bases to take advantage of the state sharing tools of the Composable Architecture. Along the way we get to delete hundreds of lines o..
-
TCA - Dependency ์ค๊ณTCA 2024. 6. 29. 15:53
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ TCA์์ Dependencies ์ค๊ณ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ปDesigning dependencies์ข ์์ฑ์ ๊ธฐ๋ฅ์ ์ฃผ์ ํ๊ณ ํ ์คํธ๋ฅผ ์ํด์ ์ฌ์ ์ํ๋๋ฐ ๋์์ด ๋๋ ์ค๊ณ๊ฐ ํ์ํฉ๋๋ค.์ฆ, ํต์ฌ์ ์ผ๋ก ๊ฐ์ ธ๊ฐ์ผํ ๊ฒ์ ์ข ์์ฑ์ ์ ์ดํ ์ ์๊ฒ ๋ง๋ค๊ธฐ ์ํด์ ๊ฒฉ๋ฆฌ ๋ฐ ํ ์คํธ๊ฐ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋๊ฒ์ด์ฃ ! ํ๋จ๊ณ์ฉ ์์๋ณผ๊น์? Protocol-based dependenciesSwift์์ ์ข ์์ฑ์ ์ค๊ณํ๋ ๋ฐฉ๋ฒ ์ค ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋๊ฒ์ด ํ๋กํ ์ฝ์ ์ด์ฉํ๋๊ฒ์ ๋๋ค.์์๋ก, ์๋์ ๊ฐ์ด ์ค๋์ค ํ๋ ์ด์ ๋ํ ํ๋กํ ์ฝ์ ์ค๊ณํด๋ณธ๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค. protocol AudioPlayer { func loop(url: URL) async throws func play(u..
-
TCA 1.0 - Testable Code (ch.09)TCA 2024. 3. 2. 10:14
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ Testable Code์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ํญ์ ํฌ์คํ ์์๋ ์๊ฐํ์ง๋ง, TCA 1.0 ์๋ฆฌ์ฆ ํ์ต์ ์๋ ํ์ต์๋ฃ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์์ต๋๋ค. ํด๋น ๋ ํผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ตํ๋ฉด์ ์ ๋๋ฆ๋๋ก ์ ๋ฆฌํด๋ณด๋ ํฌ์คํ ์ด๊ธฐ์, ์ฃผ๊ด์ ์ธ ์ฌ๊ฒฌ์ด ์ถ๊ฐ๋ฉ๋๋ค ๐๐ป Chapter 9. TCA์ Testable Code | Notion 9.1 ์ ๋ ํ ์คํธ axiomatic-fuschia-666.notion.site ๊ทธ๋ผ ์์ํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ ๋ ํ ์คํธ TCA๋ฅผ ํ์ตํ๋ฉฐ ๋ํ๋์์ ๋ํด ํ๊ณ ๋ค์ด๋ดค๋ ์ด์ ์ค ํ๋๋ ์์กด์ฑ๋ค์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํจ ์ฆ, ์์กด์ฑ์ ๋์ผ์ฑ์ ๋ฐฉํดํ์ง ์๊ณ ์์ ํ ์ฌ์ฉํ๊ธฐ ์ํ ๋ชฉ์ TCA๋ ์ก์ ๋จ์๋ก ๋ง๋ค๊ธฐ์ ํ ์คํธ์ ์ฉ์ดํ๋ฉฐ ์์กด์ฑ..
-
TCA 1.0 - Navigation (ch.08)TCA 2024. 2. 27. 19:10
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ TCA์ Navigation์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ํญ์ ํฌ์คํ ์์๋ ์๊ฐํ์ง๋ง, TCA 1.0 ์๋ฆฌ์ฆ ํ์ต์ ์๋ ํ์ต์๋ฃ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์์ต๋๋ค.ํด๋น ๋ ํผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ตํ๋ฉด์ ์ ๋๋ฆ๋๋ก ์ ๋ฆฌํด๋ณด๋ ํฌ์คํ ์ด๊ธฐ์, ์ฃผ๊ด์ ์ธ ์ฌ๊ฒฌ์ด ์ถ๊ฐ๋ฉ๋๋ค ๐๐ป Chapter 8. Navigation | Notion8.1 Navigation์ด๋?axiomatic-fuschia-666.notion.site Navigation์ด๋?๊ธ์์ SwiftUI์ sheet์ fullScreenCover๋ ๋ค๋น๊ฒ์ด์ ์ผ๋ก ๋ณผ ์ ์๋ฐ๋๋ฐ, ๋ฐฉ์ ์์ฒด๋ ํด๋น ๋๊ฐ๋ ๋ชจ๋ฌ ๋ฐฉ์์ด๊ณ ํํ ๋ค๋น๊ฒ์ด์ ๋ฐฉ์์ ํ๋ฉด ํ๋ฆ ์์ฒด๊ฐ ์ ํ๋์ด ๋์ด๊ฐ๊ธฐ์ ์กฐ๊ธ ๋ค๋ฅด์ง ์๋ ๊ฐ์ธ์ ์ผ๋ก ์๊ฐ๋จํด..
-
TCA 1.0 - MultiStore (ch.07)TCA 2024. 2. 22. 19:10
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ MultiStore์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ํญ์ ํฌ์คํ ์์๋ ์๊ฐํ์ง๋ง, TCA 1.0 ์๋ฆฌ์ฆ ํ์ต์ ์๋ ํ์ต์๋ฃ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์์ต๋๋ค. ํด๋น ๋ ํผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ตํ๋ฉด์ ์ ๋๋ฆ๋๋ก ์ ๋ฆฌํด๋ณด๋ ํฌ์คํ ์ด๊ธฐ์, ์ฃผ๊ด์ ์ธ ์ฌ๊ฒฌ์ด ์ถ๊ฐ๋ฉ๋๋ค ๐๐ป Chapter 7. MultiStore | Notion ์ฌ๊ธฐ๊น์ง ์ค์ จ๋ค๋ฉด ์ด์ ์ฌ๋ฌ๋ถ๋ค์ Reducer๋ฅผ ํตํด Store๋ฅผ ์์ฑํด View์ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ตํ์ ๊ฒ๋๋ค. ํ์ง๋ง ์ด์ ๋ณด๋ค ์ฑ์ด ๋ณต์กํด์ง๊ณ ๊ท๋ชจ๊ฐ ์ปค์ง๋ค๋ฉด ํ๋์ Reducer์์ ์ํ๊ด๋ฆฌ๋ฅผ ํ axiomatic-fuschia-666.notion.site ๊ทธ๋ผ ์์ํ๊ฒ ์ต๋๋ค ๐ MultiStore ์ง๊ธ๊น์ง์ ํ์ต์ ํตํด Reducer๋ก St..
-
TCA 1.0 - Swift์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ TCA์์์ ์์ฉ (ch.06)TCA 2024. 2. 20. 19:03
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ Swift์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ TCA์์์ ์์ฉ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ํญ์ ํฌ์คํ ์์๋ ์๊ฐํ์ง๋ง, TCA 1.0 ์๋ฆฌ์ฆ ํ์ต์ ์๋ ํ์ต์๋ฃ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์์ต๋๋ค. ํด๋น ๋ ํผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ตํ๋ฉด์ ์ ๋๋ฆ๋๋ก ์ ๋ฆฌํด๋ณด๋ ํฌ์คํ ์ด๊ธฐ์, ์ฃผ๊ด์ ์ธ ์ฌ๊ฒฌ์ด ์ถ๊ฐ๋ฉ๋๋ค ๐๐ป Chapter 6. Swift์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ TCA์์์ ์์ฉ | Notion ์ด๋ฒ ์ฅ์์๋ TCA์์์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๋์ง ์์๋ณด๊ธฐ ์ ์ Swift Concurrency, ์ฆ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. Combine ํ๋ ์์ํฌ์ ๋ฌ๋ฆฌ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ Task์ ๋ณ axiomatic-fuschia-666.notion.site ๊ทธ๋ผ ๋ฐ๋ก ์์๋ณด์์ฃ ! TCA์ ๋น๋..
-
TCA 1.0 - Dependency (ch.05)TCA 2024. 2. 15. 19:00
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA Dependency์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ํญ์ ํฌ์คํ ์์๋ ์๊ฐํ์ง๋ง, TCA 1.0 ์๋ฆฌ์ฆ ํ์ต์ ์๋ ํ์ต์๋ฃ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์์ต๋๋ค. ํด๋น ๋ ํผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ตํ๋ฉด์ ์ ๋๋ฆ๋๋ก ์ ๋ฆฌํด๋ณด๋ ํฌ์คํ ์ด๊ธฐ์, ์ฃผ๊ด์ ์ธ ์ฌ๊ฒฌ์ด ์ถ๊ฐ๋ฉ๋๋ค ๐๐ป Chapter 5. Dependency | Notion 5.1 TCA์ Dependency axiomatic-fuschia-666.notion.site ๋ํ๋์ ์์๋ณด์์ฃ ๐ Dependency TCA & Dependency Dependency๋ ํํ ์์กด์ฑ์ด๋ผ๋ ๋ป์ ๊ฐ์ง ๋คํธ์ํฌ ํต์ , ํ์ผ ์ก์ธ์ค, ํ์ด๋จธ ๋ฑ ์ฌ์ด๋ ์ดํํธ๋ฅผ ์ผ์ผํค๋ ์์๋ค์ ๋ชจ๋ Dependency๋ก ๋ณผ ์ ์์ TCA Dependenc..
-
TCA 1.0 - TCA Binding (ch.04)TCA 2024. 2. 12. 09:32
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ ๊ธฐ๋ณธ๊ฐ๋ ๋ค์ ๋์ด ๋ ์ค์ํ ํํธ์ธ TCA Binding์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ํญ์ ํฌ์คํ ์์๋ ์๊ฐํ์ง๋ง, TCA 1.0 ์๋ฆฌ์ฆ ํ์ต์ ์๋ ํ์ต์๋ฃ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์์ต๋๋ค. ํด๋น ๋ ํผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ตํ๋ฉด์ ์ ๋๋ฆ๋๋ก ์ ๋ฆฌํด๋ณด๋ ํฌ์คํ ์ด๊ธฐ์, ์ฃผ๊ด์ ์ธ ์ฌ๊ฒฌ์ด ์ถ๊ฐ๋ฉ๋๋ค ๐๐ป Chapter 4. TCA Binding | Notion 4.1 SwiftUI Binding VS TCA Binding axiomatic-fuschia-666.notion.site ๊ทธ๋ผ ๋ฐ๋ก ์์๋ณด์์ฃ ๐ TCA Binding SwiftUI Binding vs TCA Binding SwiftUI์์ @State, @Binding, @ObservedObject๋ค์ ํตํด ์..