forked from codesquad-members-2022/issue-tracker
-
Notifications
You must be signed in to change notification settings - Fork 2
[iOS] 프로젝트 목표
Song Taehwan edited this page Jun 13, 2022
·
2 revisions
Welcome to the issue-tracker-Team08 wiki!
- MVVM 패턴 적용하기
- Coordinator 패턴 적용하기
- Alamofire, RxSwift 사용하지 않기
- Reusable & Testable 한 구조로 객체 구현하기
- Massive ViewController 의 역할을 분리하여 테스트 및 재사용 가능한 구조로 변경함으로써 향후에 생길 요구사항 및 변경사항에 유연하게 대응하고 기능을 쉽게 확장할 수 있는 구조로 만들기 위함입니다.
- ViewContoller 로 부터 Navigation 로직을 분리하여 ViewController 의 재사용성을 높이기 위함입니다.
- 해당 라이브러리가 등장한 배경과 해결한 문제를 이해하고 경험해야지만 라이브러리의 동작 원리와 개념을 정확히 이해할 수있다고 생각합니다.
- 코드를 잘 구현하는 것도 중요하지만 결국 사람은 실수를 하게 마련입니다. 때문에 테스트라는 장치를 두어 실수를 미연해 방지할 수 있고 버그가 예상되는 지점을 빠르게 파악할 수 있다고 생각합니다. 따라서 재사용성과 테스트 가능한 구조는 앱의 안정성을 높이는 방법 중 하나라고 생각하며 이번 프로젝트에서 중점을 두고 구현하려 합니다.
- SwiftLint & SwiftFormatter
- 의사 결정 배경 - 협업을 하는대 있어 코드 스타일을 통일하는 것은 중요하다고 생각합니다. 서로의 스타일이 다르면 코드의 가독성에 영향을 미치게 되는데 이 지점이 때로는 개발자의 피로도를 높이는 부분이 될 수 있다고 생각합니다. 때문에 통일한 코드 스타일을 준수하는 것이 협업을 원활하게 도와주는 역할을 할 수 있을거라고 생각하여 선택하였습니다.
- SnapKit
- 의사 결정 배경 - 코드 베이스로
AutoLayout
을 설정하는 일은 많은 코드량과 실수를 유발하곤 합니다. SnapKit 은AutoLayout
코드 작성의 실수를 줄이고 생산성을 높이는데 도움이되는 툴이라고 생각하였고 협업을 원활히 하기 위해 선택하게 되었습니다.
- 의사 결정 배경 - 코드 베이스로
코드 베이스 방식으로 UI 를 개발하는 일은 시각적인 피드백을 바로 얻을 수 있다는 장점이 존재하지만 UI 를 커스텀하는대 있어 제한사항이 존재합니다. 또한 협업하는 개발자간의 Xcode 버전 등이 다르면 코드를 공유하는 과정에서 Conflict 가 발생하기 매우 쉽습니다. 이부분이 협업의 생산성에 미치는 영향이 크고 병목 현상이 될 수 있다고 생각하여 코드 베이스로 진행하기로 하였습니다.