Favor-Gift-Reminder / Favor-iOS

Favor(페이버) iOS 리포지토리
https://apps.apple.com/kr/app/favor-%ED%8E%98%EC%9D%B4%EB%B2%84/id6449257998
Apache License 2.0
3 stars 2 forks source link
ios reactorkit rxswift swift

페이버 - Favor

특별한 선물을 받은 오늘의 감정을 기록해보세요.
개발기간: 2022.12.29


⭐️ 프로젝트 소개

페이버는 주고받은 선물을 기록하는 앱이에요.
선물에 대한 정보와 그 날의 감정을 보관해보세요.
잊기 쉬운 지인들의 특별한 기념일을 등록하면 리마인더 알림을 보내드려요.


🔨 개발환경 및 라이브러리

[Swift Badge]()
[SnapKit Badge]() [ReactorKit Badge]() [RxSwift Badge]()


🍎 iOS

이창준 김응철
@nomatterjun @eung7


⚒ 아키텍쳐

⏺ MVVM-C & ReactorKit

MVVM

  • MVVM 패턴을 사용하여 ViewController에는 화면 구성 코드만 담고 ViewModel(Reactor)에게 비즈니스 로직과 데이터 가공 코드를 담았습니다.
  • 비즈니스 로직 테스트에서 UI 컴포넌트 의존성을 없앨 수 있어 유닛 테스트에 용이했습니다. RxFlow (Coordinator)
  • Navigation Controller로 대표되는 화면 전환 로직들을 코디네이터 패턴에 전임하여 뷰 전환 코드의 재사용성을 높였습니다.
  • 데이터 전달, 의존성 주입 등의 로직을 비즈니스 로직에서 분리하였습니다.
  • 코디네이터 패턴에서의 delegate 패턴 사용을 Rx화 하여 대체하기 위해 RxFlow를 도입하였습니다. ReactorKit
  • ViewModel마다 신경써야 했던 의존성 주입 문제의 피곤을 덜 수 있도록 ReactorKit을 도입하였습니다.
  • Action ➡️ Mutate ➡️ State의 일방성 스트림을 통해 자연스러운 코딩 컨벤션 통일이 가능했습니다.

⚽ 테크 Goal

🔀 RxSwift + ReactorKit