Swift/아키텍쳐
-
Redux Architecture (ReSwift)Swift/아키텍쳐 2021. 11. 18. 13:12
https://github.com/ReSwift/ReSwift/ GitHub - ReSwift/ReSwift: Unidirectional Data Flow in Swift - Inspired by Redux Unidirectional Data Flow in Swift - Inspired by Redux - GitHub - ReSwift/ReSwift: Unidirectional Data Flow in Swift - Inspired by Redux github.com ReSwift는 Swift의 단방향 데이터 흐름 아키텍처를 Redux 와 유사하게 구현한 것이다. ReSwift는 앱 구성 요소를 아래 세 가지로 분리하고 있다. State : ReSwift 앱에서 전체 앱 상태는 데이터 구조에 명시적으로 저..
-
Ribs - 로그인편Swift/아키텍쳐 2021. 10. 15. 16:36
위를 이어서 진행하고 있습니다. 이전편 : https://kkimin.tistory.com/89 Ribs 예제 도입기 - Root편 https://github.com/uber/RIBs/wiki 이거를 그대로 따라가면서 Root, LoggedIn 을 만들어 보자! 아 예제로 이런걸 구현하는구나 한눈에 이해한뒤,. 순서대로 1. Root 를 생성한다. 2. AppDelegate에서 호출 func.. kkimin.tistory.com 우버와 달리 login에 input은 하나만 넣어서 진행할 예정이다. 로그인에 통신 쪽까지 구현해보고 싶어서 다른건 좀 덜어내고 할 예정이다. 먼저 RootBuilder에서 Router, Interactor, View, Component를 모두 생성하고 DI를 정의합니다. Roo..
-
Ribs 예제 도입기 - Root편Swift/아키텍쳐 2021. 10. 15. 11:03
https://github.com/uber/RIBs/wiki 이거를 그대로 따라가면서 Root, LoggedIn 을 만들어 보자! 아 예제로 이런걸 구현하는구나 한눈에 이해한뒤,. 순서대로 1. Root 를 생성한다. 2. AppDelegate에서 호출 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let window = UIWindow(frame: UIScreen.main.bounds) self.window = window let launchRouter = RootBuilder(dependency:..
-
Ribs 예제 도입기 - Ribs 설치 편Swift/아키텍쳐 2021. 10. 15. 10:16
https://github.com/uber/RIBs#installation-for-ios 위의 방법을 참고해서 우선 설치를 한다. 나는 pod을 사용했다. pod 'RIBs', '~> 0.9' 그리고 나서 RIB 템플릿을 Xcode에 추가해야한다.https://github.com/uber/RIBs/tree/master/ios/tooling install-xcode-template.sh 를 아래처럼 실행한다. ./install-xcode-template.sh => 위 그림처럼 나오면 Xcode에 적용이 안료된것이다. NewFile을 만들때 아래처럼 템플릿이 보이면 아주 잘 적용된것입니다~ 그리고 나서 빌드를 했더니 문제가 생긴다. 바로 아래와 같은 내용인데,,, 뭔가 이상하다는 점을 알 수 있다. 그 외에..
-
Ribs 에 대해서...Swift/아키텍쳐 2021. 9. 30. 15:32
Ribs Uber 에서 만든 아키텍쳐 패턴으로, MVC (Massive ViewController 라고 하는...ㅠ) 패턴에 한계 에서 VIPER 패턴을 바탕으로 만든 패턴입니다. 깃헙 : https://github.com/uber/RIBs 짧게 우버에서 얘기하는 시작의 이유는 아래와 같습니다. 1. 신뢰성 최소한의 장애를 위해 핵심 코드에 대한 엄격한 검토 프로세스, 그 외는 핵심 비즈니스를 중단하지 않는지 확인하고 이러한 코드 분리로 새로운 기능을 시험하고 제대로 작동하는지 테스트한다. 2. iOS와 Android 가 통합된 기반에서 작업할 수 있는 호환성 동일한 패턴으로 더 쉽게 협업하고 동시에 작업할 수 있도록 작업. 아래가 두 플랫폼이 공유하는 내용입니다. Core architecture Cla..
-
ReactorKitSwift/아키텍쳐 2021. 6. 18. 15:42
ReactorKit으로 단방향 반응형 앱 만들기 - 전수열 를 보고 정리 및 사용해보겠습니다. https://www.youtube.com/watch?v=ASwBnMJNUK4 새로운 앱 구조를 위해 고민하고 있는 만큼 이 부분을 꼭 확인하고 넘어가고 싶었다. (Clean Architecture가 곧 정리해서 글이 올라올 예정) 예시로 들어주신 부분이 바로 스크롤 내렸을때 다음 화면으로 이동하면서 이전 통신의 데이터를 다음 통신에 사용하고, 이런 의존성이 생기는 부분 View 위의 protocol을 상속받아서 사용하는 식이다. 구조화가 되는 느낌이 있다. ViewController는 rendering만(bind), ViewReactor를 위처럼 만든다. 위처럼 assgin을 하고 ViewController에..
-
Clean SwiftSwift/아키텍쳐 2021. 3. 14. 16:54
Clean Swift? https://clean-swift.com/ 처음 보이는 페이지에서 Clean Swift에 대한 설명은 Clean Architecture + TDD Code less. Test More. 이라고 되어있습니다. 장점 이 템플릿의 아래와 같은 점을 해결할 수 있다고 소개하고 있습니다. - ViewController가 점점 거대해지고, 이해하기 어려워지고, 오류를 고치기 어렵다. - 비즈니스 로직을 model로 옮겼다. model이 너무 커졌다. - 앱이 하나의 거대한 스토리보드로 되어있다. - 버그 재현하는데 4시간을, 고치는데 일주일 걸리는 문제 - 코드의 새로운것을 추가하려면 다시 또또또 리팩토링하는 문제 - TDD 노력과 이익을 따졌을때 그만한 가치가 없을때 실제로, MVC 패턴..