Swift 아키텍처

    [ReactorKit] (2) Reactorkit 내부 구조를 뜯어보고 사용하자

    [ReactorKit] (2) Reactorkit 내부 구조를 뜯어보고 사용하자

    이 글은 https://hasensprung.tistory.com/186 에서 이어지는 글 입니다. [Reactorkit] Reactorkit 도입기와 여전히 남은 고민들 MVVM을 사용하면서 가장 힘들었던 부분은 모두가 조금씩은 다른 각자의 형태로 MVVM을 사용하고 있다는 점이었습니다. 어느정도 틀이 잡혀 있는 Input/Output Transform 등 MVVM을 다양한 방식으로 시도했 hasensprung.tistory.com 1. Reactorkit의 기본 개념 ReactorKit은 어떤 방식으로 단방향과 코드의 일관성을 도와주는 걸까요? ReactorKit은 다음과 같은 방식으로 작동합니다. 이를 이해하기 위해서는 3가지 형태를 알아야 합니다. Action, Mutation, State 입니다..

    [RIBs] RIBs 분석

    [RIBs] RIBs 분석

    1. Builder 1) Builder 컴포넌트 Builder는 RIB의 본체라고 할 수 있는 해당 RIB의 Router를 만들고, 이를 위해 의존성을 외부에서 주입 받을 수 있는 컴포넌트 입니다. public protocol Buildable: class {} /// Utility that instantiates a RIB and sets up its internal wirings. open class Builder: Buildable { /// The dependency used for this builder to build the RIB. public let dependency: DependencyType /// Initializer. /// /// - parameter dependency: The..

    [Reactorkit] (1) Reactorkit 도입기와 여전히 남은 고민들

    [Reactorkit] (1) Reactorkit 도입기와 여전히 남은 고민들

    MVVM을 사용하면서 가장 힘들었던 부분은 모두가 조금씩은 다른 각자의 형태로 MVVM을 사용하고 있다는 점이었습니다. 어느정도 틀이 잡혀 있는 Input/Output Transform 등 MVVM을 다양한 방식으로 시도했었지만 그 틀 안에서도 ViewModel과 ViewController를 어떻게 만들 것인지에 대한 고민은 끝이 없었던 것 같아요. "Input으로 이벤트가 들어와서 Output으로 결과를 View로 반환한다."라는 개념 자체는 단순했지만, Delegate 처리를 위한 값은 어떻게 저장할 것인지, 그 결과가 어떻게 생겨야 하는지, transform의 input은 View에서 주입되어야 하는지 ViewModel에서 주입되어야 하는지, ViewModel 간의 데이터 바인딩은 어떤 방식으로 이..

    [MVC] iOS의 MVC 아키텍처에 대해서

    [MVC] iOS의 MVC 아키텍처에 대해서

    Apple Developer Academy @ POSTECH에서 매크로 프로젝트 팀원들에게 설명하는 세션을 위해 MVC 아키텍처를 정리해보았습니다. 이곳에 MVC 아키텍처를 적용한 예시코드가 있으니, 이 코드를 보면서 이어질 설명을 읽으시면 쉬운 MVC 아키텍처를 통해 아키텍처가 무엇인지 이해하시는 것에 꽤 도움이 많이 되실 거라고 생각해요. GitHub - feldblume5263/iOS_Session: iOS 세션 준비를 위해 만든 repository입니다. iOS 세션 준비를 위해 만든 repository입니다. Contribute to feldblume5263/iOS_Session development by creating an account on GitHub. github.com 1. MVC 아..

    [Redux] Redux를 이용한 상태관리 후기 (with SwiftUI)

    [Redux] Redux를 이용한 상태관리 후기 (with SwiftUI)

    애플 개발자 아카데미에서 SwiftUI로 개인 프로젝트를 진행하면서 Redux 아키텍처를 적용해보았습니다. Redux는 전역 상태관리에 중점을 두고 React에서 출발한 아키텍처였기 때문에, 중점적으로 보았던 부분은 크게 세가지였습니다. SwiftUI에서 Redux를 적용했을 때 장단점은 무엇일까? SwiftUI에서 Redux를 제대로 적용할 수 있을까? 어떤 프로젝트에서 어떻게 Redux를 적용하는 것이 좋을까? 이번 프로젝트에서는 비동기 처리와 사이드이펙트에 대해서는 고민할 필요가 없었기 때문에, 미들웨어를 뺀 State, Action, Store, Dispatcher 로 이루어진 Redux의 기본 형태만을 가져와 사용해보았습니다. 아직 Server Response 처리와 같은 Redux의 강력한 기..

    [Redux] SwiftUI에서 Redux 아키텍처 적용해보기 - 첫인상

    [Redux] SwiftUI에서 Redux 아키텍처 적용해보기 - 첫인상

    아키텍처의 중요성을 일깨워준 Apple Developer Academy @ POSTECH에서 함께 공부하는 Woody에게 감사합니다! 이전에 애플 개발자 아카데미의 첫 챌린지로, SwiftUI로 저의 두번째 프로젝트를 해보았습니다. 이전에 했던 첫번째 프로젝트는 일주일 동안 SiwftUI를 사용해야 음악 플레이어앱을 만드는 것이었고 그 당시에는 정말 쉽지 않았습니다. 기능적인 부분 때문이기도 하지만, SwiftUI라는 새로운 프레임워크를 처음 다루어본다는 측면에서 낯설음 때문이지 않았나 싶습니다. 제가 SwiftUI 첫번째 프로젝트를 마치고 면접장을 가서 받았던 질문은 "MVC를 쓰는 회사에 MVVM을 도입하자고 설득해야 하는 상황이면, 어떻게 설득할것인지" 였습니다. 정말 간단한 질문이라고 생각했지만,..