이 프로젝트는 SMUMC 6th의 일환으로 진행되었습니다.
FocusUp은 게임형 습관 형성 및 집중력 향상 서비스입니다. 사용자는 특정 목표를 설정하고, 게임과 유사한 방식으로 목표를 달성하여 자신의 집중력을 강화할 수 있습니다. 이 레포지토리는 FocusUp의 프론트엔드 부분을 담당하며, Swift와 다양한 API를 활용한 iOS 애플리케이션을 구현하고 있습니다.
- 언어: Swift
- IDE: Xcode
- 의존성 관리: CocoaPods, FSCalendar
- API 통신: Alamofire, Kakao API, Naver API
- 카카오/네이버 로그인: 소셜 로그인 기능을 통해 간편하게 로그인하고 메인 화면으로 이동할 수 있습니다.
- 습관 형성 관리: 사용자가 설정한 목표에 맞춰 진행 상황을 추적하고 관리할 수 있는 기능.
- 게임화 요소: 목표 달성 시 보상 시스템을 도입하여 사용자 동기를 강화.
- UI 설계: 스토리보드 활용
FocusUP 프로젝트의 UI는 스토리보드를 통해 구현되었습니다. 이를 통해 뷰 계층 구조와 오토레이아웃을 시긱적으로 관리하며, 더 직관적인 UI 구성을 가능하게 했습니다.
- 자동 레이아웃(Auto Layout) 기능을 사용하여 다양한 화면 크기에서 최적의 사용자 경험을 제공하고 있습니다.
- UI 요소 간의 관계와 **전환(segue)**은 스토리보드 상에서 직관적으로 관리하며, 각 화면 간의 데이터 흐름과 네비게이션을 쉽게 설계하였습니다.
(담당자: 김민지)
- 생명, 물고기, 레벨 표시: 현재 사용자의 생명(조개껍데기), 물고기(코인), 레벨 상태가 표시됩니다.
- + 버튼: 루틴 추가 화면으로 이동하여 새로운 루틴을 설정할 수 있습니다.
- 집중 타이머: 타이머 시작 버튼을 누르면 집중 시간이 측정됩니다. 루틴 알람을 통해 진입한 경우 해당 루틴 제목이 표시되며, 그렇지 않으면 타이머만 표시됩니다.
- 집중 시간 기록 종료 버튼: 집중 시간을 종료하고 보상을 지급받을 수 있습니다.
- 부스터 기능
- 레벨별 부스터 타임: 사용자가 일정 시간 이상 집중하면 부스터 타임이 시작되며, 집중 시간에 따라 코인을 추가로 획득할 수 있습니다. 레벨에 따라 부스터 타임의 코인 획득 배율이 달라집니다.
- 부스터 타임 제한: 부정 사용 방지를 위해 부스터 타임은 최대 3시간까지 적용됩니다.
- 잠시 멈춤
- 집중 시간 일시 정지: 사용자가 불가피하게 집중 시간을 멈춰야 할 경우, 일시 정지 버튼을 눌러 최대 10분간 타이머를 멈출 수 있습니다. 10분을 넘기면 집중 시간이 자동으로 종료됩니다.
- 코인 정산
- 집중 시간 코인 지급: 사용자가 집중한 시간만큼 코인이 지급되며, 부스터 타임에 따라 추가 보상이 적용됩니다.
- 루틴 시간 보상: 알람을 통해 진입한 루틴에서 목표 시간을 달성하면 추가 코인이 지급됩니다.
- 보너스: 목표 시간을 초과하여 집중하면 보너스 코인을 획득할 수 있습니다.
- 루틴 설정
- 목표 루틴 설정: 루틴 제목, 반복 요일, 시작 시간, 목표 시간을 설정할 수 있습니다.
- 보너스 코인 지급: 설정한 목표 시간을 초과하여 집중했을 때 보너스 코인이 지급됩니다.
- 루틴 알람: 설정한 루틴 시간이 되면 알람이 울리며, 알람 제목과 현재 시간이 표시됩니다.
- 알람 연기 및 포기: 알람을 5분 뒤로 미룰 수 있으며, 그럴 경우 코인이 감소합니다. 루틴을 포기하면 생명(조개껍데기)이 차감됩니다.
- 레벨 조정 기능: 사용자가 자신의 레벨을 하향 조정할 수 있으며, 조정 후 부스터 타임 진입 횟수는 기록되지 않습니다.
- 루틴 관리: 가장 최근에 설정한 3개의 루틴이 표시되며, 전체 루틴은 ‘더보기’ 버튼을 눌러 확인할 수 있습니다.
- 캐릭터 상태 표시: 사용자의 캐릭터와 생명, 물고기 상태가 표시됩니다.
- 아이템 적용: 사용자가 보유한 아이템을 캐릭터에게 적용할 수 있으며, 상점을 통해 추가 아이템을 구매할 수 있습니다.
- 아이템 구매: 상점에서 생명 및 부활권을 구매할 수 있습니다. 생명이 모두 소진된 경우, 부활권을 통해 캐릭터와 아이템을 다시 불러올 수 있습니다.
- FocusUp.xcodeproj: Xcode 프로젝트 설정 파일.
- FocusUp.xcworkspace: Xcode 워크스페이스 파일.
- FocusUp: 앱의 메인 소스코드가 포함된 폴더.
- Pods: 프로젝트에 사용된 외부 라이브러리와 의존성을 관리하는 폴더.
- .github: GitHub용 pull request 템플릿과 설정 파일.
- Podfile & Podfile.lock: CocoaPods 의존성 설정 파일.