"나혼자만 일일퀘스트 : 8Bit 도트 그래픽의 할 일 관리 앱!"
매일 할 일을 완료하고 경험치를 쌓아 레벨업하세요! 친구들과 랭킹 경쟁을 통해 최고의 할 일 고수가 되어보세요.
Released: 2024.6.8
퀘스트 확인 | 퀘스트 등록 | 랭킹 | 프로필 |
---|---|---|---|
-
요일 별 퀘스트 등록
반복이 필요한 요일 별로 퀘스트를 등록할 수 있습니다.
-
경험치 획득
퀘스트 완료를 통해 경험치를 획득하고 순위를 올릴 수 있습니다.
장우석(sidi) | 김병수(Metthew) | 오정석(Ben) |
---|---|---|
개발언어 및 환경 | 협업도구 |
---|---|
Swift | Notion |
UIKit | Github |
Xcode 17.0 | Discord |
Figma |
종류 | 버전 | 사용 목적 |
---|---|---|
RxSwift | 6.7.1 | 반응형 프로그래밍 |
SnapKit | 5.7.1 | UI 레이아웃 |
Then | 3.0.0 | UI 레이아웃 |
Lottie | 4.4.3 | 애니메이션 |
App Architecture: Clean Architecture with MVVM-C
- CoreData 활용
- QuestInfo Model의 저장과 변환 작업을 수행합니다. 앱이 종료되어도 데이터를 저장하기 위해 필요합니다.
- CoreData CRUD(Create, Read, Update, Delete) 기능을 구현하여 데이터를 효율적으로 관리합니다.
- Network 통신
- Back-End서버와의 통신을 위한 네트워크 모듈을 구축합니다.
- 디자인 패턴(
Builder Pattern
)을 적용해 모든 형태의 HTTP 통신을 지원할 수 있는 네트워크 모델을 구축합니다.
- AutoLayout
- UIKit을 기반으로 한 코드를 통해 AutoLayout을 구현합니다. 이는 다양한 디바이스 크기 및 방향에 대해 유연한 UI를 제공합니다.
- UI라이브러리를 사용하지 않고 Constraint를 구축하여 UI 요소 간의 관계를 명확하게 정의합니다.
- Clean Architecture with MVVM-C
- MVVM 패턴을 채택하 UI 로직과 비즈니스 로직을 분리하여 유지보수성을 향상시킵니다.
- Clean Architecture를 적용하기 위해 비즈니스 로직 모듈을 구현하여 의존성을 최소화하고 코드의 재사용성을 높입니다.
- Coordinator Pattern을 통해 뷰와 화면 전환, 의존성 관리를 분리해 단일 책임 원칙을 준수합니다.
-
아이디 중복체크 에러 네트워크 415 에러
해결:
post
요청을 보낼 때json
형태로 데이터를 전송하는 경우header
에서Content-Type
을application/json
으로 지정해 줘야함Before
URLRequestBuilder(baseURL: API.baseURL) .setMethod(.post) .setPath("/check_id") .setBodyParameters(userId) .build()
After
let header = ["Content-Type": "application/json"] URLRequestBuilder(baseURL: API.baseURL) .setMethod(.post) .setHeaderParameters(header) .setPath("/check_id") .setBodyParameters(userId) .build()
-
코디네이터 화면 전환 중 Thread 에러
ui작업인
popToRootViewController
가background thread
에서 실행되는 현상해결
didFinish
를 실행하는DetailViewModel
을@MainActor
로 지정