Design Patterns 5

Design Pattern, RxSwift ) RxFlow 맛보기 - 1

RxFlow? RxFlow는 Reactive Flow Coordinator pattern을 기반으로 한 iOS 앱의 navigation framework입니다. Why use RxFlow? Storyboard를 더 작은 단위로 잘라내어 UIViewController들의 reusability와 collaboration이 가능하도록 해줍니다. navigation context에 따라 UIViewController가 나타나는 방식을 다양하게 가져갈 수 있습니다. 의존성 주입(Dependency Injection)을 편리하게 구현할 수 있습니다. UIViewController에서 모든 navigation과 관련된 코드를 없앨 수 있습니다. navigation 코드도 Reactive Programming이 가능하..

Design Patterns 2022.07.19

Iterator Pattern?!

ReactiveX 홈페이지에 들어가보면 바로 확인할 수 있는 이 단어! Iterator pattern? 그게 뭘까 하는 마음에 찾아보았습니다. Iterator pattern? Object-Oriented Programming에서 Iterator Pattern은 Iterator가 Container(Collection)을 순회(traverse)할 수 있게 해주고, 그 Container의 요소들에 접근(access)할 수 있게 해주는 디자인 패턴입니다. Iterator : Iterator란 프로그래머로 하여금 container(collection)나 특정 list들을 순회(traverse)할 수 있게 해주는 객체입니다. Container라는 용어는 현재 Collection이라는 단어로 바뀌어야 한다고 Wiki..

Design Patterns 2022.02.04

느낌대로 만들어본 TabBar, Navigation Coordinator

최근에 Coordinaotr 패턴에 대해 알아보다보니 흥미가 생겨서 좀 더 복잡한 구조에서의 Coordinator 패턴을 어떻게 구성할지에 대해 고민을 해보았습니다. 많은 앱에서 사용되고, 저의 N행시인 앱에서도 사용중인 UITabBarController와 UINavigationController를 Coordinator 패턴을 활용하여 구성해보는 포스팅이 되겠습니다. 만들고 싶은 프로젝트의 형태는 아래와 같습니다! 이런 형식의 프로젝트입니다. TabBarController 가 제일 상단에 위치하고, 하나의 탭 마다 UINavigationController들이 존재합니다. 1. SceneDelegate 이 프로젝트에서는 Storyboard를 사용하지 않았습니다. 그렇기 때문에 SceneDelegate 에서..

Design Patterns 2022.01.27

Coordinator Pattern 연습 1

Coordinator Pattern을 연습해 보았습니다. 우선 Coordinator 라는 영어 단어의 의미를 생각해 보았습니다. 가장 눈에 들어왔던 의미는 '진행자'였습니다. View Controller들 사이의 흐름에 대한 구조를 구성하기 위한 즉, "View Controller들 사이에 진행자인 Coordinator가 View Controller의 흐름을 컨트롤 해주는구나!" 정도로 이해중입니다. Raywenderlich의 Coordinator Pattern 자료에는 Router라는 녀석도 함께 나오는데 간단하게 정리해보자면, Router : Router는 어떤 View Controller를 보여줄지 모르지만, View Controller를 어떻게(How) 보여줄지에 대한 정의를 하는 녀석입니다. C..

Design Patterns 2022.01.25

Observer Pattern

Observer Pattern에 대해서 공부를 해보았습니다. Observe Pattern은 하나의 Object가 다른 Object의 변화를 관찰하는 패턴입니다. Subscriber Subscriber는 Observer의 역할을 하는 친구입니다. 관찰하고 싶은 Object를 관찰하고, 변경이 일어나면 Update를 받습니다. Publisher Publisher는 관찰이 가능한 Object입니다. 다른 Object가 자신을 관찰할 수 있게 해주고, 변경사항을 보내는 역할을 합니다. Value Value는 값의 변경이 일어나는 근본적인 Object입니다. 이들의 관계를 그림으로 표현해보면 아래와 같은 모습입니다. Swift 5.1 부터 이 Observer Pattern을 더 편하게 활용할 수 있는 Combin..

Design Patterns 2021.06.03