boostcampwm-2022 / iOS03-DailyQuest

잊지 말아야 할 하루의 퀘스트🧩, Daily Quest와 함께

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Daily Quest 🧩

Group_36

잊지 말아야 할 하루의 퀘스트, Daily Quest와 함께 🧩

Features 👏

😃 달성하고자 하는 퀘스트들을 등록해보세요! ✅ 캘린더를 통해 퀘스트를 확인할 수 있습니다! 👀 다른 사람들의 퀘스트들을 둘러보세요! 🤼‍♀️ 다른 사람의 전체 퀘스트도 확인할 수 있어요!

Stacks 🧑‍💻

MVVM-C & Clean Architecture

Frame 9

  • 어플을 기획하면서 한곳에서 다른 여러곳으로 이동할 수 있는 View가 생겼고, 화면을 전환하는 역할을 해당 ViewController가 처리하면, 코드량이 길어져 가독성이 떨어지고, 역할과 책임에 대해 생각해보아야할 필요가 있다는 판단하에 Coordinator를 도입하였습니다.
  • 의존성 주입과 관련된 부분을 DI 컨테이너를 통해 진행하면서 각 ViewController들을 이에 해당하는 역할과 책임에서 자유롭게 할 수 있었습니다.
  • 원활한 프로젝트 진행을 하는데 있어서 6주라는 기간을 효율적으로 사용하여 개발할 수 있는 방법이라 생각하고 채택하였습니다.
  • 각 레이어별로 개발을 진행할 때, 다른 레이어의 추상화된 인터페이스만 생각하고 개발하였습니다.
  • 레이어별로 분리가 되었기에 테스트 코드 작성이 용이해졌습니다.

RxSwift

  • MVVM 패턴을 사용함에 따라, 데이터 바인딩 방식을 Combine, RxSwift, 그리고 자체 구현으로 처리할 필요가 있어서 많은 곳에서 사용중인 RxSwift를 채택하였습니다.
  • Firebase에서 비동기로 받는 데이터들을 클로저가 아닌 return 형식으로 받아서 간단하게 처리하고, 에러도 쉽게 처리하기 위해서 채택하였습니다.

Firebase & Realm

  • 퀘스트들을 데이터로 저장하는 데에 있어 안정성을 더해주기 위해 **서버 데이터 베이스(Firebase)**와 **로컬 데이터 베이스(Realm)**를 사용하였습니다.
  • 다양한 기술 스택을 이용해보는 것을 이번 프로젝트의 목표로 잡았고, 애플이 지원해주는 라이브러리가 아닌 외부의 라이브러리를 선택해보기로하여 Realm을 채택하게 되었습니다.

Frame 10

  • 6주라는 짧은 개발 기간 동안 프로젝트를 구현하기 위해 서버 구축이 아닌 손쉽게 사용할 수 있는 Firebase를 채택하였습니다.

Untitled 3

Design 🖌️

  • 개발을 진행하기에 앞서 피그마를 통해 프로젝트의 레이아웃을 구성하여 구체화하였습니다.
  • Daily Quest의 메인 캐릭터인 맥스를 디자인하여 Daily Quest만의 아이덴티티를 부여하였습니다.

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2022-12-02_18 19 22

Team 👥

S014_김진웅 S017_박동훈 S036_이다연 S042_이전희 S000_맥스
INTJ
@jinwoong
ISTP
@wickedRun
ISTP
@sprituz
ENFJ
@Jeonhui
ESFP
@Max

Notion 📕

347km Notion 바로가기

About

잊지 말아야 할 하루의 퀘스트🧩, Daily Quest와 함께


Languages

Language:Swift 99.8%Language:Objective-C 0.2%