Skip to content

jungseok-corine/aloneDailyQuest

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

나 혼자만 일일퀘스트

information

"나혼자만 일일퀘스트 : 8Bit 도트 그래픽의 할 일 관리 앱!"

매일 할 일을 완료하고 경험치를 쌓아 레벨업하세요! 친구들과 랭킹 경쟁을 통해 최고의 할 일 고수가 되어보세요.

Released: 2024.6.8

Appstore - 나혼자만일일퀘스트

프로젝트 소개

주요 기능

퀘스트 확인 퀘스트 등록 랭킹 프로필
  • 요일 별 퀘스트 등록

    반복이 필요한 요일 별로 퀘스트를 등록할 수 있습니다.

  • 경험치 획득

    퀘스트 완료를 통해 경험치를 획득하고 순위를 올릴 수 있습니다.

팀원 소개(iOS Developers)

장우석(sidi) 김병수(Metthew) 오정석(Ben)
47639904 130636633 84053571

개발환경 및 도구

개발언어 및 환경 협업도구
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 스크린샷 2024-05-22 오후 3 59 40

프로젝트 중 학습 내용

  • CoreData 활용
  1. QuestInfo Model의 저장과 변환 작업을 수행합니다. 앱이 종료되어도 데이터를 저장하기 위해 필요합니다.
  2. CoreData CRUD(Create, Read, Update, Delete) 기능을 구현하여 데이터를 효율적으로 관리합니다.
  • Network 통신
  1. Back-End서버와의 통신을 위한 네트워크 모듈을 구축합니다.
  2. 디자인 패턴(Builder Pattern)을 적용해 모든 형태의 HTTP 통신을 지원할 수 있는 네트워크 모델을 구축합니다.
  • AutoLayout
  1. UIKit을 기반으로 한 코드를 통해 AutoLayout을 구현합니다. 이는 다양한 디바이스 크기 및 방향에 대해 유연한 UI를 제공합니다.
  2. UI라이브러리를 사용하지 않고 Constraint를 구축하여 UI 요소 간의 관계를 명확하게 정의합니다.
  • Clean Architecture with MVVM-C
  1. MVVM 패턴을 채택하 UI 로직과 비즈니스 로직을 분리하여 유지보수성을 향상시킵니다.
  2. Clean Architecture를 적용하기 위해 비즈니스 로직 모듈을 구현하여 의존성을 최소화하고 코드의 재사용성을 높입니다.
  3. Coordinator Pattern을 통해 뷰와 화면 전환, 의존성 관리를 분리해 단일 책임 원칙을 준수합니다.

트러블 슈팅

  • 아이디 중복체크 에러 네트워크 415 에러

    해결: post 요청을 보낼 때 json 형태로 데이터를 전송하는 경우 header에서 Content-Typeapplication/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 에러

    스크린샷 2024-05-21 오전 12 42 45

    ui작업인 popToRootViewControllerbackground thread에서 실행되는 현상

    해결

    didFinish를 실행하는 DetailViewModel@MainActor로 지정

About

나혼자만 일일퀘스트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%