# GME Remit GME Remit iOS 아키텍쳐는 VIPER 를 기반으로 한다. 1. **Original VIPER** 2. **VIPER + ViewModel (RxSwift)** 3. **VIPER + RxPresenter (RxSwift)** *** ## 1. Original VIPER 앱 개발 초기에 사용한 VIPER 아키텍쳐로 각 모듈간 통신은 프로토콜을 사용한다. ### 사용모듈 * AppUpdate * AutoDebitModules * BiometricAuthModules * ExchangeRates * ForgotPassword * GmeContacts * Home * LauncherScreen * Login * Main * PopupNotification * Profile * RegisterModules * RemittanceModules/OverseasModules * RemittanceModules/TransactionHistoryModules * RewardModules * SideMenu * SplashScreen * WalletStatement ## 2. VIPER + ViewModel (RxSwift) RxSwift를 사용하기위해 ViewModel을 추가한 VIPER의 확장이다. 사용자 인터렉션의 처리는 ViewModel이 하며, ViewModel과 Presenter가 연결되어있으며 나머지는 프로토콜을 사용한다. ### 사용모듈 * RecipientModules * RemittanceModules/DomesticModules * RemittanceModules/TransactionHistoryModules/TransactionHistoryGroup ## 3. VIPER + RxPresenter (RxSwift) 2번의 VIPER + ViewModel (RxSwift) 아키텍쳐를 사용하다 ViewModel의 존재로 링크 코드가 증가하는 현상으로 인해 ViewModel을 Presenter로 변환한 개선된 아키텍쳐이다. View와 Presenter 간의 통신은 RxSwift로 진행되며, 나머지는 프로토콜을 사용한다. ### 사용 모듈 * RecipientModules * RemittanceModules/DomesticModules * RemittanceModules/TransactionHistoryModules/TransactionHistoryGroup ## 4. 점차적으로 3번의 아키텍쳐로 변환할 예정.