일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Swift
- uicollectionview
- JSONDecoder
- UIDocument
- UIGestureRecognizer
- MVP
- Git
- reactivex
- UIDocumentBrowserViewController
- Singleton Design Pattern
- UIDynamicAnimator
- UIBezierPath
- weak
- unowned
- Observable
- Stanford cs193p
- CoreGraphics
- 오늘의성취도
- Equatable
- 에어팟
- PhotoKit
- CustomStringConvertible
- AVFoundation
- IOS
- Arc
- Hashable
- Codable
- NSAttributedString
- rxswift
- JSONEncoder
- Today
- Total
목록MVP (2)
아직은 개린이
MVC 패턴에 워낙 익숙해져있어서, 새로운 패턴으로 코드를 작성하는 연습을 많이 해봐야 할 것 같다! 우선 오늘은 간단한 예제로 MVP 패턴에 대해 학습한 걸 정리해보려고 한다. MVP 간단히 MVP에서 각각이 무엇을 의미하는지 다시 짚고 넘어가보자. Model - MVC 패턴에서 의미하는 모델과 같은 역할을 한다. 앱의 실행에 필요한 실질적인 데이터를 갖고 있다. View - UIView와 UIViewController가 여기에 해당한다. 비즈니스 로직과 관련된 일은 모두 Presenter가 하도록 한다. Presenter - UIKit과 관련이 없는 로직들을 수행한다. 사용자 응답에 반응하거나 UI를 업데이트하는 일을 한다. 예제코드 화면에 나타난 두 버튼 중 어느 버튼을 클릭했는지 출력하는 간단한 ..
앞선 글에서 좋은 아키텍처란 무엇인지와 MVC 패턴에 대해 살펴보았다. 이번 글에서는 새롭게 공부하는 주제인 MVP 패턴에 대해 알아보고자 한다. MVP MVP 패턴의 다이어그램은 아래와 같다. MVC 패턴과 굉장히 유사한 구조로 이루어져있지만, MVC는 아니다! 우선 MVC와 달리 UIView와 UIViewController가 Passive View에 속해있다. 따라서, Controller에 해당하는 Presenter에는 View의 레이아웃과 관련된 코드와 View의 Life Cycle을 다루는 코드가 들어가지 않는다. 대신 View와 Model의 중재자 역할에 더 집중하여 View의 데이터와 상태 변화를 갱신하는 역할만을 수행한다. 이로 인해 각 객체의 독립성이 높이졌고, 테스트가 용이해졌다. 하지만..