MVVM 아키텍처 고민, Protocol, enum


MVVM 아키텍처 고민, Protocol, enum

단순히 모델, 뷰, 뷰모델로만 구분하여 작성하는 것에서 더 확장해 네트워크 작업, 화면전환, 인증에 관한 작업을 분리해 설계하는 것이 더 좋지 않을까? 라는 생각이 들었다. 프로젝트 크기에 비해 과도하게 구분하는 것 또한 좋지 않겠지만, 아래와 같이 한번 구조를 생각해봤다. 구조 예시 아 그리고 protocol과 enum을 코드에서 잘 사용하면 휴먼에러를 확 줄일 수 있는 것을 체감하였다. 그리고 enum을 통한 패턴 매칭이 정말 유용하다 Service / NetworkService protocol NetworkServiceType { func fetchData(completion: @escaping (NetworkResult<MovieResponse>) -> Void) } 프로토콜 타입 선언한 데이터 처리 프로토콜 타입을 채택함으로써 휴먼에러를 방지하고, NetworkResult를 제네릭하게 만들어놓은 것을 활용해 모델을 안에 부여한다. NetworkResult는 성공, 실패 여부...



원문링크 : MVVM 아키텍처 고민, Protocol, enum