개발 (93) 썸네일형 리스트형 [iOS] 디자인패턴 - MVP MVP MVP는 Model - View - Presenter의 약자로 MVC에서 의존성 분리가 추가된 개념이다. MVP 핵심요소 Model 일반 데이터 모델, DB 계층을 담당 View (= UIViewController) UI 담당으로 UIKit을 사용. Presenter Model과 View의 중간다리로 이 둘을 관리. 뷰의 이벤트에 반응하여 모델에서 데이터를 가져온다. Presenter는 UIKit을 사용할 수 없다. MVP 특징 View의 재사용성으로 테스트성이 좋다. (Testability) 의존성 분리로 역할이 나뉘어 수정, 유지보수가 편리하다. 단, MVC 보다 코드의 양이 더 든다. (Easy of use) Model과 View는 서로의 존재를 모른다. View는 UI만을 담당하며 비즈니스.. [Swift] Typealias Typealias 란 Typealias는 기존에 존재하는 데이터 타입에 새로운 이름을 붙일 수 있는 기능이다. typealias가 정의되면, 프로그램에 존재하는 타입 대신 다른 이름을 사용할 수 있다. 새로운 타입을 생성하는 것이 아닌 원래 존재하는 타입의 이름만을 바꾼다. 코드를 더 읽기 쉽고 명확하게 만든 것에 목적을 두고 있다. 즉 typealias는 수학의 치환과 같은 논리이다. (+) AssociatedType과 typealias는 상당히 비슷해보인다. 필자 역시 같은 고민을 겪었으나, 이 둘은 다르다고 말할 수 있다. 이 둘의 차이점을 보기전 AssociatedType을 간단하게 살펴보자. AssociatedType는 타입을 대신(지정)해서 사용할 수 있다. AssociatedType는 Equ.. [Swift] Protocol 프로토콜 (Protocol) 프로토콜은 특정 작업이나 기능에 적합한 방법, 기타 요구사항을 정의한다. 간단하게 말하면 프로토콜은 어떠한 기능을 제공하기 위해 구성된 청사진이다. 프로토콜의 요건을 만들고 클래스(Class), 구조체(Structure), 열거(Enumeration)에서 채택되면 프로토콜에서 정의한 요구사항의 실제 구현을 진행할 수 있다. 프로토콜 구문 (Protocol Syntax) 간단한 프로토콜을 살펴보자. 프로토콜은 클래스와 구조체 형식과 매우 비슷한 형태로 선언한다. protocol Rice { } 프로토콜은 다중으로 채택될 수 있다. struct Lunch : Rice, Noodle { } class AmazingLunch : Lunch, Steak { } 속성 요구사항 (Prop.. [iOS] 디자인 패턴 - VIPER 화면 전환 예제 앞선 글은 아래에 있다. [iOS] 디자인패턴 - VIPER Clean Architecture 이란? iOS 도메인에 있는 Clean Architecture의 다양한 구성 요소 사이의 데이터 흐름을 살펴봅시다. 교차 경계 섹션에서는 다음과 같이 데이터 흐름이 단반향이어야 하는 방법에 대해 논의했.. djgmd1021.tistory.com VIPER에서 화면 전환인 View -> Router 에 대해 알아보려 한다. 아래 화면은 새롭게 추가한 시작 화면이다. 이곳에서 사용자는 Candy Store 뷰를 클릭하면, 다음 화면으로 넘어가도록 구성했다. 화면 이동은 Router담당이니 View에서 바로 Router로 보내버린다. 새롭게 추가된 화면은 Main이다. MainEntity struct StoreEnt.. [iOS] 디자인패턴 - VIPER VIPER 이란? Viper는 View, Interactor, Presenter, Entity, Router의 약자다. Entity 단순 데이터 모델 Interaction 비즈니스 로직이 위치한다. 네트워크 호출이나 데이터베이스 쿼리 등 데이터를 수집한다. Presenter VIPER 아키텍처의 중심 부분. Clean Architecture의 Interface Adaper과 비슷하다. 뷰에서 사용하는 데이터 변환과 UI작업 가로채기 등의 작업을 수행. View (ViewController) = 여기서 View는 ViewController와 ViewContainer 모두를 의미한다. 이곳에서는 비즈니스 로직을 피하고 UI코드만 기억한다. Presenter에게 뷰에서 일어나는 이벤트와 변화를 전송한다. Ro.. 이전 1 ··· 9 10 11 12 다음