VIPER란?

박성민·2021년 6월 7일
0

iOS

목록 보기
20/30

VIPER

그림 출처: http://labs.brandi.co.kr/2018/02/21/kimjh.html

View, Interactor, Presenter, Entity, Router로 이루어져 있는 패턴입니다.

View

  • View와 ViewController 파일들입니다.
  • Presenter의 요청대로 디스플레이 하고, 사용자 입력은 Presenter로 보냅니다.
  • Business logic은 없습니다.

Interactor

  • Use case에 따라 Data(Entity) 또는 networking과 관련된 business logic(Entity들의 새로운 instance를 만든다던가, 서버로부터 가져오는)을 가지고 있습니다.
  • 이러한 목적을 위해 VIPER 모듈의 일부가 아닌 외부 의존성을 띄는 Service와 Manager들을 사용합니다.

Presenter

  • View의 변경 사항을 interactor로 알려줍니다.
  • Interactor를 통해 데이터를 가져오고, View로 보내기 위한 데이터를 준비하여 "언제" View에 보여줄지 결정합니다.
  • UI관련 business logic을 가지고 있지만 UIKit과는 독립적입니다.

Entitiy

  • 모델 객체(Plain Data, Dumb Model)

Router(Wireframe)

  • 화면전환을 담당하며, presenter가 "언제" 화면을 전환해야하는지 안다면, Wireframe은 화면전환을 "어떻게"해야하는지 알고 있습니다.

출처 및 참고

profile
iOS시작~

0개의 댓글