Skip to content

NBCampArchive/Sikmogil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

888 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

header

🌳 식목일 (식단, 목표, 일일 운동량)



appStore

Generic badge Hits


Table of Contents

  1. Description
  2. Main Stacks
  3. Requirements
  4. Main Feature
  5. Technical communication
  6. Trouble Shooting
  7. Period
  8. Developer
  9. Contact

Description


깔끔한 라이프 사이클 기록 앱을 찾고 계셨나요?

식단, 운동, 다이어트를 꾸준히 진행할 수 있도록 식목일이 도와드릴게요 ✨

식목일(식)단, (목)표, (일)일 운동량 의 줄임말로

운동과 식단에 관심이 많은 현대인들을 위해 간편한 기능을 담은 어플입니다.  🍎🏋️‍♂️

식목일은 여러분이 식단과 운동을 꾸준히 기록하고 목표를 달성할 수 있도록 도와줍니다. 📈



Main Stacks

Environment

Language

Communication


Architecture - DI, MVVM

Dependency Management Tool - SPM

Interface - UIKit

Networking - Alamofire, GoogleCloudPlatform, RESTful API

Design Patterns - Singleton, Delegate, Observer

Local Storage - UserDefaults

Layout Configuration - SnapKit, Then

Image Processing - Kingfisher, Google Cloud Storage


Requirements

  • App requires iOS 15.0 or above


Main Feature

1) Onbording/Login

  • 소셜 로그인을 통해 회원가입을 하고 앱을 사용하기 위한 추가 정보를 수집해요.
  • 적정 칼로리 수집을 위해 키, 몸무게, 성별 과 함께 목표 기간, 목표 체중 또한 설정할 수 있어요.

2) Goal/Calendar

🎯 목표

  • 목표 기간을 확인할 수 있어요.
  • 체중을 기록하고 차트를 통해 지난 체중을 확인할 수 있어요.
  • 체중을 기록하면 지난 7번의 기록과 비교하는 차트를 보여드려요.

📆 캘린더

  • 오늘 하루를 기록하고 캘린더를 통해 하루 식단과 운동, 기록 내용을 확인할 수 있어요.
  • 목표기간을 보여주고 식단과 운동을 내용을 기록한 날을 표시해요.
  • 식단, 운동 앨범에서 해당 일자에 추가한 사진을 확인할 수 있어요.
  • 추가로 오늘 하루 기록을 남길 수 있어요.

2) Diet

🍚 식단 기록

  • 식사 추가 탭에서 원하는 메뉴를 검색하고 추가하세요.
  • 오늘의 권장 칼로리 대비 섭취 칼로리를 게이지로 간편하게 확인할 수 있어요.

💧 물 마시기, 공복 타이머

  • 물 섭취, 간헐적 단식 스케줄까지 도와드려요.
  • 권장 음수량인 2L와 비교해 오늘 마신 물을 게이지로 간편하게 확인할 수 있어요
  • 식사가 추가되면 공복타이머 시작/종료 여부 안내창이 떠요.

📸 식단 앨범

  • 오늘 먹은 음식을 사진으로 남기고 기록을 확인할 수 있어요.

3) Exercise

🏋🏻 운동 기록

  • 운동 화면에서 오늘의 권장 소모량 대비 활동량을 확인할 수 있어요.
  • 오늘 한 운동을 기록해 보세요.
  • 운동 시간과 강도를 입력하면 소모한 칼로리를 자동으로 계산해 드려요.

⏰ 운동 타이머 및 결과

  • 운동을 시작할 때 운동 시간을 정하고 측정할 수 있어요.
  • 운동 결과를 확인하고 추가할 수 있어요.

📸 운동 앨범

  • 운동 앨범에서 나의 노력들을 사진으로 모아볼 수 있어요.

🚶 걸음 수

  • ‘애플 건강’ 앱에서 걸음 수 데이터를 불러올 수 있어요.

4) Profile

🙇 회원정보 - 프로필

  • 프로필 화면에서 자신의 프로필을 확인 할 수 있어요.
  • 원하는 사진, 닉네임 및 키와 체중을 수정할 수 있어요.

🔔 알림 설정

  • 설정 페이지에서 회원정보, 알림에 대한 설정을 확인할 수 있어요.
  • 원하는 시간대로 알림을 설정할 수 있어요.


Technical communication

🌱 Architecture

MVVM 패턴
  • 효율적인 데이터 바인딩
    • 식단, 운동, 스케줄을 관리하는 어플리케이션 특성상 화면 간 데이터 전달이 빈번하게 발생합니다. 이를 효율적으로 처리하기 위해 MVVM 패턴을 도입하였습니다. 뷰모델과 컴바인을 사용한 데이터 바인딩으로 데이터 흐름을 간편하게 관리할 수 있습니다.
  • 기술 역량 향상
    • 팀원들이 기존에 MVC 패턴에 익숙했기 때문에, 새로운 아키텍처를 도입하여 개인의 기술 역량을 향상시키고자 하였습니다. MVVM 패턴을 통해 보다 구조적이고 유지보수가 용이한 코드를 작성할 수 있게 되었습니다.
컴바인 데이터 바인딩
  • 신뢰성 및 호환성
    • 컴바인은 애플에서 직접 개발한 프레임워크로, 향후 지원과 호환성 측면에서 신뢰할 수 있습니다.
  • 학습 용이성
    • RXSwift에 비해 학습 곡선이 완만하여, MVVM을 처음 접하는 팀원들도 쉽게 적용할 수 있었습니다. 이를 통해 개발 속도를 높이고 코드의 일관성을 유지할 수 있었습니다.

🌱 Networking

백앤드 서버 연결
  • 자체 데이터베이스 설계
    • 파이어베이스 대신 자체적으로 설계한 데이터베이스를 서버에서 운영하고 있습니다. 사진 앨범, 캘린더 기록등 앱을 사용하는 기간이 길어질 수록 저장되는 데이터의 증가로 내부 저장소 사용시에 앱 크기가 증가하는 현상을 방지할 수 있었습니다.

🌱 Data Storage

UserDefaults
  • 알림 시간, 타이머 시작 시간 등 서버에 저장하기엔 단기간 저장되는 데이터를 보관하기 위해 사용하였습니다.
KeychainSwift
  • JWT token 을 안전하게 저장하기 위해 사용하였습니다.

🌱 UI / Asset Management

UI 구성
  • Snapkit 및 Then 라이브러리 도입
    • 코드를 간결하게 구성하고 유지보수를 용이하게 하기 위해 스냅킷과 댄 라이브러리를 도입하였습니다. 이를 통해 UI 레이아웃 작업을 효율적으로 처리할 수 있었습니다.
Asset
  • SVG 파일 사용
    • 이미지 확장자를 SVG 파일로 통일하여 Asset 저장소 용량을 관리하였습니다. 이는 앱의 성능 최적화와 용량 관리를 효과적으로 할 수 있게 해줍니다.
  • 공통 자원 관리
    • 컬러, 폰트, 아이콘 등 앱 전반에 공통적으로 사용되는 파일을 Asset으로 관리하여, 일관된 디자인과 효율적인 자원 관리를 실현하였습니다


Trouble Shooting



Period

  • 개발 기간 : 2024.05.28 - 2024.07.04.
  • version 1.0 : 앱 스토어 배포 (24.07.01)
  • version 1.1 : 기록을 확인 할 수 있는 캘린더 구현, 식단, 운동 등 앨범 구현 (24.07.06)

Developer

박현렬
@devpark435
정유진
@yyujnn
박준영
@Neo-agnes
조희라
@Heather-Cho
  • 박현렬

    • 회원 가입, 온보딩
    • 커스텀 캘린더, 하루 일기
    • API 요청 코드 제작, 관리
    • 커스텀 프로그레스 바 제작
  • 정유진

    • 운동 API 모델 생성
    • 운동 추가 및 관리 구현
    • 운동 타이머 구현
    • 애플 건강 걸음 수 연동
  • 박준영

    • 회원정보 표시 구현
    • 회원정보 수정 구현
    • 알림기능 구현
  • 조희라

    • 식단데이터 API 모델생성
    • 식단관리 구현
    • 물마시기 구현
    • 공복타이머 구현

Contact

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages