사용할 API 정리
아래의 공식문서를 참고하여 앱에 필요한 API를 정리했다.
앱의 MVP 설정 및 기본 플로우
아이디를 입력하면 내 Solved.ac아이디를 기준으로 내 정보를 보여주는 것이 이 앱의 MVP이다. 알고리즘 공부 시간, 친구 추가, 경쟁 등 다양한 기능을 넣어보고 싶었지만 우선 아래와 같은 최소한의 기능만 우선 구현해 보기로 했다. Widget, Watch앱도 간단하게 만들어볼 예정이다. (이 부분은 Entity를 어떻게 활용할 수 있을지에 대한 공부를 위해서 결정했다)
앱 구조 디테일 설계
조금 바뀌었다. 초기에는 데이터 레이어에 SwiftData가 있었지만, SwiftData자체가 Entity의 특성을 띄고 있기 때문에 Entity에 넣었다. Repository에는 API Client가 들어있다. Use Case에서는 유저 정보 가져오기, 유저 정보 업데이트하기 등이 있을 것 같다. View에서는 Model과 직접 송수신하는 ViewModel이 아닌 View가 관찰하는 View의 상태인 Store의 개념을 사용해보기로 했다. Repository의 경우에는 Use Case에서 API Client를 호출하기 위한 인터페이스로 사용하게 될 것 같다.
앱을 만들어 나가면서 아래의 도표로부터 완성해나갈 예정이다.
'→ Solver' 카테고리의 다른 글
[Project-Solver] 프로젝트 1차 배포 (v1.0.1) (0) | 2024.05.01 |
---|---|
[Project-Solver] SwiftData 문제 기록 (0) | 2024.04.25 |
[Project-Solver] 아키텍처 설계 (0) | 2024.04.21 |
[Project-Solver] 프로젝트 기본 세팅 (1) | 2024.04.19 |
[Project-Solver] 프로젝트 시작 (0) | 2024.04.17 |