- 프로젝트 개발 설계 할때, 기본 구조에 참고 할만한(될만한) 샘플 앱을 만들어 보려 합니다.
RxSwift
기반에 ReactorKit
아키텍쳐 라이브러리를 활용하여, iOS Sample App
을 만들어보려합니다.
- RxFlowDemo 소스를 많이 활용하여 이동처리 셈플 부분을 작성할 예정입니다. (적용 중)
- RxReactorKit Examples 소스를 활용하여 화면 구성을 할 예정입니다. (적용 중)
- 나머지 화면은 라이센스 사용 목록을 보여주는 정도로 할 예정입니다.
- GitHubSearch 에서 네트워크 처리한 부분은 Drrrible 에서 네트워크 처리한 부분(Moya, MoyaSugar)을 참고한 방식으로 변경할 예정입니다.
- MoyaSugar가 4.2 대응이 되어있지 않아 포크떠서 수정한 링크를 사용할 것입니다. 저처럼 Moya를 처음 사용한다면, MoyaSugar를 사용하면 처음에 조금 더 깔끔하게 사용할 수 있을 것이라 생각됩니다.
- awesome-blogs-ios 소스도 참고하고 있습니다. 유용하다 판단되는 부분은 적극 활용하려고 합니다.
- Reactive eXtensions(RX)
- ReactorKit
- Flux Architecture + RX (Reactive eXtentsion)
- A framework for a reactive and unidirectional Swift application architecture
- Data Binding (using RxSwift)
- Dependencies management (using Cocoapods)
- ReactorKit는 Flux와 반응형 프로그래밍의 조합입니다.
사용자 Actions 및 View States는 관찰 가능한 스트림을 통해 각 계층으로 전달됩니다. 이러한 흐름은 단방향입니다.
View는 Actions를 보낼 수 만 있고, reactor는 states만 emit 할 수 있습니다.
- Action은 사용자 상호 작용을 나타내고 상태는 View State를 나타냅니다.
Mutation은 action과 state 사이에서 브릿지 역활을 합니다.
reactor는 mutate() 및 reduce()의 두 단계로 Action 스트림을 State 스트림으로 변환 단계를 거칩니다.
-
상세한 내용은 https://github.com/ReactorKit/ReactorKit 에서 확인부탁드립니다.
ReactorKit은 반응형 단방향 앱을 위한 프레임워크로, StyleShare와 Kakao를 비롯한 여러 기업에서 사용하고 있는 기술입니다.
-
SwiftGen 을 이용한 지역화 처리
-
SwiftLint 를 이용하여 스타일 규칙 적용
-
Storyboards 를 UI 구현으로 사용
-
XIBs 공통 UI에 사용
-
RxFlow라는 Reactive Flow Coordinator를 구현해주는 프레임워크를 활용하였습니다.
-
- API endpoints를 추상화하는 네트워크 추상화 레이어
- 스토리보드를 유닛 단위로 쪼개서 UIViewController의 재사용성을 높임.
- 네비게이션의 흐름(context)에 맞게 UIViewController를 다른 방식으로 보여줌.
- 의존성 주입(Dependency Injection)을 쉽게 구현.
- UIViewController에 있는 모든 네비게이션 매커니즘을 삭제.
- 반응형 프로그래밍(Reactive Programming) 사용을 촉진.
- 네비게이션에서 일어나는 대부분의 케이스를 처리하면서 선언형으로 표현.
- 어플리케이션을 네비게이션의 논리적인 블록으로 나누어 처리.
- Cocoapods
- XCode 10.1+
- iOS 10.0+
- 90% 이상이 최신 OS와 한단계 전 OS를 사용.
- https://developer.apple.com/support/app-store/
- iOS OS버전을 사용하는 지나간 통계 정보
- SwiftGen
- SwiftLint
- FLEX : For Debugging
- firebase : 샘플 소스에는 미적용
- crashlytics : 샘플 소스에는 미적용
- (검토중) Fastlane
-
Installation
-
Core
-
Architecture
-
Network
- RESTful
- Socket
-
UI
-
Navigation
-
ETC
-
Log
-
CI & Documentation
-
Analytics
- 작성중
- 작성중
Rx 구현 방식, 폴더 구조, 소스활용, ReactorKit 활용, Moya 네트워크 처리 방법 등등 여러가지로 참고 하였습니다.
- Drrrible : ReactorKit을 사용하는 비공식 Dribbble iOS 응용 프로그램입니다.
- awesome-blogs-ios : 어썸블로그 ・ 개발 블로그 모음 ・ 개발 잡덕들을 위한 본격 고퀄리티 개발 블로그 큐레이션 서비스 🕵️♀️ - iOS 버전.
- ReactorKit Examples : ReactorKit 예제 소스
- RxFlow Demo : RxFlow Demo 소스