- Description
- Main Stacks
- Requirements
- Main Feature
- Technical communication
- Trouble Shooting
- Period
- Developer
- Contact
깔끔한 라이프 사이클 기록 앱을 찾고 계셨나요?
식단, 운동, 다이어트를 꾸준히 진행할 수 있도록 식목일이 도와드릴게요 ✨
식목일은 (식)단, (목)표, (일)일 운동량 의 줄임말로
운동과 식단에 관심이 많은 현대인들을 위해 간편한 기능을 담은 어플입니다. 🍎🏋️♂️
식목일은 여러분이 식단과 운동을 꾸준히 기록하고 목표를 달성할 수 있도록 도와줍니다. 📈
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
- App requires iOS 15.0 or above
- 소셜 로그인을 통해 회원가입을 하고 앱을 사용하기 위한 추가 정보를 수집해요.
- 적정 칼로리 수집을 위해 키, 몸무게, 성별 과 함께 목표 기간, 목표 체중 또한 설정할 수 있어요.
🎯 목표
- 목표 기간을 확인할 수 있어요.
- 체중을 기록하고 차트를 통해 지난 체중을 확인할 수 있어요.
- 체중을 기록하면 지난 7번의 기록과 비교하는 차트를 보여드려요.
📆 캘린더
- 오늘 하루를 기록하고 캘린더를 통해 하루 식단과 운동, 기록 내용을 확인할 수 있어요.
- 목표기간을 보여주고 식단과 운동을 내용을 기록한 날을 표시해요.
- 식단, 운동 앨범에서 해당 일자에 추가한 사진을 확인할 수 있어요.
- 추가로 오늘 하루 기록을 남길 수 있어요.
🍚 식단 기록
- 식사 추가 탭에서 원하는 메뉴를 검색하고 추가하세요.
- 오늘의 권장 칼로리 대비 섭취 칼로리를 게이지로 간편하게 확인할 수 있어요.
💧 물 마시기, 공복 타이머
- 물 섭취, 간헐적 단식 스케줄까지 도와드려요.
- 권장 음수량인 2L와 비교해 오늘 마신 물을 게이지로 간편하게 확인할 수 있어요
- 식사가 추가되면 공복타이머 시작/종료 여부 안내창이 떠요.
📸 식단 앨범
- 오늘 먹은 음식을 사진으로 남기고 기록을 확인할 수 있어요.
🏋🏻 운동 기록
- 운동 화면에서 오늘의 권장 소모량 대비 활동량을 확인할 수 있어요.
- 오늘 한 운동을 기록해 보세요.
- 운동 시간과 강도를 입력하면 소모한 칼로리를 자동으로 계산해 드려요.
⏰ 운동 타이머 및 결과
- 운동을 시작할 때 운동 시간을 정하고 측정할 수 있어요.
- 운동 결과를 확인하고 추가할 수 있어요.
📸 운동 앨범
- 운동 앨범에서 나의 노력들을 사진으로 모아볼 수 있어요.
🚶 걸음 수
- ‘애플 건강’ 앱에서 걸음 수 데이터를 불러올 수 있어요.
🙇 회원정보 - 프로필
- 프로필 화면에서 자신의 프로필을 확인 할 수 있어요.
- 원하는 사진, 닉네임 및 키와 체중을 수정할 수 있어요.
🔔 알림 설정
- 설정 페이지에서 회원정보, 알림에 대한 설정을 확인할 수 있어요.
- 원하는 시간대로 알림을 설정할 수 있어요.
MVVM 패턴
- 효율적인 데이터 바인딩
- 식단, 운동, 스케줄을 관리하는 어플리케이션 특성상 화면 간 데이터 전달이 빈번하게 발생합니다. 이를 효율적으로 처리하기 위해 MVVM 패턴을 도입하였습니다. 뷰모델과 컴바인을 사용한 데이터 바인딩으로 데이터 흐름을 간편하게 관리할 수 있습니다.
- 기술 역량 향상
- 팀원들이 기존에 MVC 패턴에 익숙했기 때문에, 새로운 아키텍처를 도입하여 개인의 기술 역량을 향상시키고자 하였습니다. MVVM 패턴을 통해 보다 구조적이고 유지보수가 용이한 코드를 작성할 수 있게 되었습니다.
컴바인 데이터 바인딩
- 신뢰성 및 호환성
- 컴바인은 애플에서 직접 개발한 프레임워크로, 향후 지원과 호환성 측면에서 신뢰할 수 있습니다.
- 학습 용이성
- RXSwift에 비해 학습 곡선이 완만하여, MVVM을 처음 접하는 팀원들도 쉽게 적용할 수 있었습니다. 이를 통해 개발 속도를 높이고 코드의 일관성을 유지할 수 있었습니다.
백앤드 서버 연결
- 자체 데이터베이스 설계
- 파이어베이스 대신 자체적으로 설계한 데이터베이스를 서버에서 운영하고 있습니다. 사진 앨범, 캘린더 기록등 앱을 사용하는 기간이 길어질 수록 저장되는 데이터의 증가로 내부 저장소 사용시에 앱 크기가 증가하는 현상을 방지할 수 있었습니다.
UserDefaults
- 알림 시간, 타이머 시작 시간 등 서버에 저장하기엔 단기간 저장되는 데이터를 보관하기 위해 사용하였습니다.
KeychainSwift
- JWT token 을 안전하게 저장하기 위해 사용하였습니다.
UI 구성
- Snapkit 및 Then 라이브러리 도입
- 코드를 간결하게 구성하고 유지보수를 용이하게 하기 위해 스냅킷과 댄 라이브러리를 도입하였습니다. 이를 통해 UI 레이아웃 작업을 효율적으로 처리할 수 있었습니다.
Asset
- SVG 파일 사용
- 이미지 확장자를 SVG 파일로 통일하여 Asset 저장소 용량을 관리하였습니다. 이는 앱의 성능 최적화와 용량 관리를 효과적으로 할 수 있게 해줍니다.
- 공통 자원 관리
- 컬러, 폰트, 아이콘 등 앱 전반에 공통적으로 사용되는 파일을 Asset으로 관리하여, 일관된 디자인과 효율적인 자원 관리를 실현하였습니다
- 2.1.0 Performance: App Completeness
- UITabBarController 설정 문제
- 한번에 여러 화면 이동
- 페이징 처리를 통한 데이터 로드
- 네트워크 요청과 UI업데이트 싱크
- 개발 기간 : 2024.05.28 - 2024.07.04.
- version 1.0 : 앱 스토어 배포 (24.07.01)
- version 1.1 : 기록을 확인 할 수 있는 캘린더 구현, 식단, 운동 등 앨범 구현 (24.07.06)
| 박현렬 @devpark435 |
정유진 @yyujnn |
박준영 @Neo-agnes |
조희라 @Heather-Cho |
-
박현렬
- 회원 가입, 온보딩
- 커스텀 캘린더, 하루 일기
- API 요청 코드 제작, 관리
- 커스텀 프로그레스 바 제작
-
정유진
- 운동 API 모델 생성
- 운동 추가 및 관리 구현
- 운동 타이머 구현
- 애플 건강 걸음 수 연동
-
박준영
- 회원정보 표시 구현
- 회원정보 수정 구현
- 알림기능 구현
-
조희라
- 식단데이터 API 모델생성
- 식단관리 구현
- 물마시기 구현
- 공복타이머 구현
- Email: 문의 및 건의사항, 피드백 전달
- Introduction URL: Sikmogil 지원 URL
