MVVM
-
Pagination (feat. SwiftUI & MVVM)SwiftUI 2024. 11. 15. 18:56
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ ํ์ด์ง๋ค์ด์ ๊ธฐ์ด์ ๋ํด ๊ตฌํํด๋ณด๋ ค ํฉ๋๋ค ๐๐ป๊ทผ๋ฐ, SwiftUI์ MVVM์ ๊ณ๋ค์ธ.. ๊ฑฐ๊ธฐ๋ค Concurrency๋ ๊ณ๋ค์ธ~ ์ฌ์ค ๊ฐ๋ ์ ์ผ๋ก ์ด๋ ค์ด๊ฒ ์ ํ ์๋๊ธฐ์ ๋ฐ๋ก ๋ค์ด๊ฐ๋ณด๊ฒ ์ต๋๋ค! Pagination?ํ์ด์ง๋ค์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ํ์ด์ง๋ก ๋๋ ์ ๋ค๋ฃจ๋ ๊ธฐ์ ์ด์ฃ .์๋ฅผ ๋ค์ด, ์๋ฒ์ ํต์ ์ํด์ ๊ฒ์๊ธ์ ๋ณด์ฌ์ค์ผํ๋ ๋ฐ์ดํฐ๊ฐ ๋ฌด์ํ ํ ๋ง๊ฐ์ฏค ๋ง๋ค๊ณ ์๊ฐํด๋ณผ๊ป์.๊ทธ๋ฌ์๋ ์ด ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ํ๋ฒ์ ๋ค ๊ฐ์ ธ์ค๊ณ ๋ ๋ณด์ฌ์ค๋ค๋๊ฑด ๊ต์ฅํ ์ฑ๋ฅ ๋ญ๋น์ผ๊ฑฐ์์.ํ ํ๋ฉด์ ์คํฌ๋กค์ ๋ด๋ฆฌ๊ฑฐ๋ ๋ค์ ํ์ด์ง๋ก ๋์ด๊ฐ์ง ์๋ ์ด์ 10๊ฐ์ ๋๋ง ๋ณด์ฌ์ค ์ ์์๋ ๋จ๋์ง 9990๊ฐ๋ ์์ง ๋ณด์ฌ์ค์๋ ์๋๋ฐ๋ ๋ค๊ณ ์์ด์ผ ํ๋๊น์ ๐ฅฒ ๊ทธ๋์, ํ์ด์ง๋ค์ด์ ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์..
-
SwiftUI์์ MVVM ์ฌ์ฉ์ ๋ฉ์ถฐ์ผ ํ๋๊ฐ?SwiftUI 2022. 7. 28. 11:12
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์์ฆ ์๋ ์์ ๋ถํฐ ์กฐ๊ธ ๋ง์ด ๋ง์ด ๋์ค๊ณ ์๋ SwiftUI๋ฅผ ์ฐ๋ฉด์ MVVM ์ํคํ ์ณ ์ฌ์ฉ์ ์ง์ํ๋ ์๊ฒฌ๋ค์ด ๋ง์ด ๋์ค๊ณ ์์ต๋๋ค. ์ด์ ํ ๊ฐ๋ฐ์๊ฐ ์๊ฐ์ ์ ๋ฆฌํ ๋ ํผ๋ฐ์ค๋ฅผ ๋ณด๋ฉด์ ์ ์๊ฒฌ๋ ๊ฐ์ด ํ๋ฒ ์ ๋ฆฌํด๋ณผ๊นํฉ๋๋ค๐ ์ฐ์ ๋ง์ ๋ ํผ๋ฐ์ค๋ฅผ ์ด๊ฒ์ ์ํด ๋ดค๋๋ฐ์. ๊ทธ์ค์์ ์ง๊ธ๋ถํฐ ์ด ํฌ์คํ ์ ์ ๋ฆฌํ ๊ธ๋ค์ ์๋ณธ์ ์๋์์ ์ฐธ๊ณ ํ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค! ๋ฌผ๋ก ์ ๊ธฐ์ ์ ์๊ฒฌ๊ณผ ๋ค๋ฅธ ๋ถ๋ถ๋ ์๊ณ ์กฐ๊ธ ๋ ์ ๋ฆฌํด๋ณผ ๋ถ๋ถ๋ ์์ด์ ์ด ๋ถ๋ถ์๋ ์ ์๊ฒฌ์ ๊ฐ๋ฏธํ์ต๋๋ค~ https://qiita.com/karamage/items/8a9c76caff187d3eb838 ใSwiftUIใงMVVMใๆก็จใใใฎใฏๆญขใใใใใจๆใ่ณใฃใ็็ฑ - Qiita โป2022/04/23 ่ฟฝ่จ ..
-
ReactorKit์ผ๋ก ๊ณ์ฐ๊ธฐ ๊ตฌํํ๊ธฐSwift 2021. 7. 5. 21:48
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ReactorKit์ผ๋ก ๊ณ์ฐ๊ธฐ๋ฅผ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ฐ์ ์ด๋ฒ ๊ณ์ฐ๊ธฐ ํ๋ก์ ํธ ๊ฐ์ ๊ฒฝ์ฐ์๋ ReactorKit์ผ๋ก ์ด๋์ ๋ ์ ํํ๋ ๋ฆฌ์กํธ MVVM ์ํคํ ์ณ ํจํด์ ๋ฐ๋ฆ ๋๋ค. ์ฌ๊ธฐ ํฌ์คํ ์์๋ ํ์ ํ์ผ์ ๋ํ ๊ตฌํ๋ค๋ง ๊ฐ๋จํ ์๊ฐํ๊ณ ์๋ ์ Git ๋ ํฌ ์ฃผ์๋ฅผ ๋จ๊ฒจ๋๊ฒ ์ต๋๋ค! ๋ ์ฐธ๊ณ ํ์ค ๋ถ๋ค์ Git์ ์ฐธ๊ณ ํด์ฃผ์ธ์๐๐ป 1. View - ๋ทฐ๋ ์ฐ์ ์คํ ๋ฆฌ๋ณด๋๋ก UI์์ ๋ฐฐ์น์ ์คํ ๋ ์ด์์์ ์ ์ฉํ์ต๋๋ค. - ๊ทธ ํ ViewController์์ ReactorKit์ ์ํฌํธํ๊ณ ์คํ ๋ฆฌ๋ณด๋๋ทฐ๋ฅผ ์ฑํํ์ฌ ๋ฆฌ์กํธ์ ๋ฐ์ธ๋ฉ๋ ์ ์๊ฒ ๊ตฌํํ์์ต๋๋ค. import UIKit import ReactorKit import RxCocoa class CalculatorV..
-
ReactorKitLibrary 2021. 6. 16. 10:55
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ReactorKit์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ReactorKit? - ๋ฐ์ํ ๋จ๋ฐฉํฅ Swift ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์จ๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ - Flux์ Reactive Programming์ ์กฐํฉ์ผ๋ก ์ด๋ฃจ์ด์ง - User Action๊ณผ View๋ ์คํธ๋ฆผ์ ํตํด ๊ฐ ๊ณ์ธต์ ์ ๋ฌ (์คํธ๋ฆผ์ ๋จ๋ฐฉํฅ) - View๋ Action๋ง ๋ด๋ณด๋ด๊ณ Reactor๋ State๋ง ๋ด๋ณด๋ผ ์ ์์ ReactorKit ์ฌ์ฉ์ ์ํ ์๊ตฌ์ฌํญ? - Swift 5 ์ด์ - iOS 8 ์ด์ - Cocoapods๋ก๋ง ์ง์ ๊ฐ๋ฅ (https://github.com/ReactorKit/ReactorKit) ReactorKit์ ํน์ง? - ๊ธฐ์กด MVVM ์ํคํ ์ณ ํจํด์๋ ํน์ ์ ํํ๋ ํ ํ๋ฆฟ์ด ์..
-
CombineCombine 2021. 6. 9. 16:27
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Combine์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป Combine์ ์๊ธฐ์ ! MVVM ํจํด์ ๋ฐ๋ฅด๊ธฐ ์ํด ์คํ ๋ฆฌ๋ณด๋ ์์ ๋์ SwiftUI๋ฅผ ์ฌ์ฉํ๋ฉด์ RxSwift๋ก ๊ตฌํ์ ํด์ฃผ์๋๋ฐ์. WWDC 2019 ์ดํ Combine์ด ๋ํ๋ฌ์ต๋๋ค. Combine์ด ๋ฌด์์ด๋? ์ฝ๊ฒ ์๊ฐํ๋ฉด RxSwift๋ ์จ๋ํํฐ ํ๋ ์์ํฌ์ด๊ณ Combine์ ์ ํ์์ RxSwift์ ์ญํ ์ ์ํด ๋ง๋ ํผ์คํธํํฐ ํ๋ ์์ํฌ์ ๋๋ค. Combine์ ์ ์ฐ๋? RxSwift๋ฅผ ์ฐ๋ ์ด์ ์ ์์ถฉํ๋ค๊ณ ๋ณด๋๋ฐ์. ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํจ์ ๋๋ค. ๊ธฐ์กด์ ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ์ํด delegate, GCD, notification center, ์ฝ๋ฐฑ ํด๋ก์ ๋ฑ์ ์ฌ์ฉํ์ต๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ ๋ฌธ..
-
RxSwiftRxSwift 2021. 4. 15. 16:07
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ RxSwift์ ๋ํด ๊ธฐ์ด์ ์ธ ๋ถ๋ถ์ ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ฐ์ ์ด์ ํฌ์คํ ์ธ SwiftUI์ ์ด์ด RxSwift๋ฅผ ํ์ตํ๊ธฐ์ ์ ์ด๋ฐ๊ฒ์ ๋ํด ๋ฐฐ์์ผํ๋์ง ๋ญ๊ฐ ์ค์ํ์ง ๊ฐ๋ตํ ์์๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๊ธฐ ์ํด์๋ ์ฐ์ MVVM์ ๋ํด ์ ํ์๊ฐ ์์ต๋๋ค. MVC / MVP / MVVM 1. MVC - ์ปจํธ๋กค๋ฌ์์ ์ฌ์ฉ์์ ์ด๋ฒคํธ๋ฅผ ๋ฐ๊ณ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญ ๋ฐ ๋ณํํ์ฌ ๋ทฐ์ ์ ๋ฐ์ดํธ ํด์ฃผ๋ ์ํคํ ์ณ ํจํด - ๊ฐ๊ฐ์ ๋ถ๋ฆฌํ์ฌ ์์กด์ฑ์ ์์ ๋ คํ๋๋ฐ ๋ทฐ์ ์ปจํธ๋กค๋ฌ์์๋ ์ํต์ ํ๊ธฐ์ ์์กด์ฑ์ด ์๊ธธ ์ ์์ด ์ฌ์ฌ์ฉ์ฑ์ด ๋ฎ์์ง 2. MVP - MVC์ ๋์ผํ ๊ฐ๋ ์ผ๋ก C๋์ P๊ฐ ๋ค์ด๊ฐ๊ฒ์ผ๋ก ํ๋ ์ ํฐ๋ก ๋ณ๊ฒฝ - ๋ทฐ์ ํ๋ ์ ํฐ์ ์์กด์ฑ ๋ฌธ์ ๊ฐ ๊ฒฐ๊ตญ ๋ํ๋จ 3. MVVM -..