## 서비스 소개 <div align="center"> <a style="color: #111111" target="_blank" href="https://yeim.notion.site/FlipMate-7d65cbbf9a694f8d83f83b85f0bac684?pvs=4">📖 팀 노션</a> &nbsp; <a target="_blank" href="https://yeim.notion.site/d8274f08a875465fa23af289d9675271?pvs=4">🤔 개발일지</a> &nbsp; <a target="_blank" href="https://yeim.notion.site/DevLog-1cfd2d38a59a4c0b9135542a83a77547?pvs=4">📚 학습공유</a> <br/><br/> </div> <div align="center"> <img width="800" src="https://github.com/boostcampwm2023/iOS06-FlipMate/assets/56269396/01fec45d-5ac0-48d3-a05d-581f6a58a627" /> </div> <br/> <div align="center" style="text-align:center;"> FlipMate는 <strong>순수 학습 시간</strong>을 체크하고, 친구들과 <strong>공유</strong>할 수 있는 앱 입니다. <br/> 기존의 학습용 타이머보다 엄격하고 독특하게 학습시간을 측정할 수 있어요! </div> ## 💗 주요 기능 <div align="center"> <img width="200" src="https://github.com/boostcampwm2023/iOS06-FlipMate/assets/56269396/4f72abb8-10e6-4bba-97bc-1a07116c3ea0" /> <img width="200" src="https://github.com/boostcampwm2023/iOS06-FlipMate/assets/56269396/cff8c64c-0931-42b9-a7a0-698e50266c7e" /> <img width="200" src="https://github.com/boostcampwm2023/iOS06-FlipMate/assets/56269396/c3c732b7-5be8-4932-9006-b17b84a25499" /> <br/><br/> </div> - 디바이스를 뒤집어 화면이 안 보이게 책상 위에 놓으면, 타이머가 작동하여 공부한 시간을 체크합니다. - 친구 추가 기능을 통해 친구들이 학습한 시간을 실시간으로 확인할 수 있습니다. - 저장된 기록을 바탕으로 공부 시간 관련 통계를 제공합니다. <h3 align="center">학습 시작</h3> <div align="center"> <img width="600" src="https://github.com/boostcampwm2023/iOS06-FlipMate/assets/56269396/08383bf0-5b3e-416f-8bac-82dde7228f54" /> </div> <h3 align="center">학습 종료</h3> <div align="center"> <img width="600" src="https://github.com/boostcampwm2023/iOS06-FlipMate/assets/56269396/bd52e270-de3a-4c49-a806-317d8a110d2b" /> </div> <h3 align="center">다국어 지원</h3> <div align="center"> <img width="1200" src="https://github.com/boostcampwm2023/iOS06-FlipMate/assets/56269396/2d4aff7e-f736-4d59-b3b8-420e721f9d31" /> </div> ## 📝 FlipMate 개발 일지 ### 공통 - [다국 지원시 시간 공유 문제](https://yeim.notion.site/c57cbe0c77cf45da9b040ead521c80f9?pvs=4) ### BE - [Polling보다 Web Socket이 항상 좋을까?](https://yeim.notion.site/Polling-Web-Socket-da8d37c106124edbbfdc8787270a6636?pvs=4) - [k6를 통해 부하 테스트하기](https://yeim.notion.site/k6-4dc0f1254fc0424799412b0ef6d2210b?pvs=4) - [faker를 활용한 가짜 데이터 생성](https://yeim.notion.site/faker-js-faker-8b45cd9634a74ab387b58b2411832754?pvs=4) - [서비스 로직 테스트 코드 작성](https://yeim.notion.site/fdfb15bbd45644f3ae6b205987a2b204?pvs=4) - [CI-CD with GitHub Actions](https://yeim.notion.site/CI-CD-with-GitHub-Actions-287040b34dc9474f93813a3a9076a310?pvs=4) - [ncloud에서 VPC 구성하기](https://yeim.notion.site/ncloud-VPC-c55a9dcc39024ae6a0717d2d225b0412?pvs=4) ### iOS - [사용자의 TimeZone 대응하기](https://yeim.notion.site/TimeZone-7dbacef5214e4ee28b057c0f49f53aaa?pvs=4) - [CoreMotion으로 Device FaceDown 감지하기](https://yeim.notion.site/CoreMotion-cb91b16de7e74c86bd7369eb549b8c8c?pvs=4) - [Core Haptics로 커스텀 햅틱 피드백 만들기](https://yeim.notion.site/Core-Haptics-6f66eba841f84644bc010083bf1b700f?pvs=4) - [의존성 주입에 관한 고찰](https://yeim.notion.site/09ed955f90fc43b7953327a1de37ffe4?pvs=4) - [정확도 높은 타이머 설계](https://yeim.notion.site/Timer-26afd5eec87b431fb29347cf4f223351?pvs=4) - [Cell에서 타이머를 동작시킬 뻔한 사건](https://yeim.notion.site/Cell-7db7874b64a74c97ac262aff536dae55?pvs=4) - [Face Down 상태에서 화면 밝기 조정](https://yeim.notion.site/FaceDown-591d9e2dd93744078bc6616cf282cbb3?pvs=4) - [화면 방향 잠금이 켜져있을 때 UIDeviceOrientation 안되는 문제](https://yeim.notion.site/c6a2cd1d4d9d42b38083643541f7f314?pvs=4) ## ⚙️ BE ### 인프라 구조 <div align="center"> <img width="740" alt="스크린샷 2023-12-14 오후 1 42 09" src="https://github.com/boostcampwm2023/iOS06-FlipMate/assets/56269396/d1c77b53-497b-49cb-aeed-85f200df5636"> </div> ### 기술 스택 <div align="center"> <img width="740" alt="스크린샷 2023-12-14 오후 1 44 31" src="https://github.com/boostcampwm2023/iOS06-FlipMate/assets/56269396/0e899fe2-95df-4520-985f-f17c61179fd8"> </div> ## 🛠️ iOS ### 기술 스택 <div align="center"> <img width="740" alt="스크린샷 2023-12-15 오후 4 47 05" src="https://github.com/boostcampwm2023/iOS06-FlipMate/assets/56269396/6d70868f-dbd6-4d47-8843-59871a916d15"> </div> ### 아키텍처 - MVVM-C, Clean Architecture - DI Container, Coordinator Pattern <img width="1170" alt="image" src="https://github.com/boostcampwm2023/iOS06-FlipMate/assets/48830320/127f9da2-05e6-4b84-9ca3-ab628f7b0994"> </br> ## 👨‍👨‍👦‍👦 Member <table align="center"> <thead> <tr> <th>iOS</th> <th>iOS</th> <th>iOS</th> <th>BE</th> <th>BE</th> </tr> </thead> <tbody> <tr> <td align="center"><a href="https://github.com/erickwon95"><img src="https://github.com/erickwon95.png" width="100px;" alt=""/></a></td> <td align="center"><a href="https://github.com/nemanjabenkovic"><img src="https://github.com/nemanjabenkovic.png" width="100px;" alt=""/></a></td> <td align="center"><a href="https://github.com/leemhyungyu"><img src="https://github.com/leemhyungyu.png" width="100px;" alt=""/></a></td> <td align="center"><a href="https://github.com/victolee0"><img src="https://github.com/victolee0.png" width="100px;" alt=""/></a></td> <td align="center"><a href="https://github.com/yeongbinim"><img src="https://github.com/yeongbinim.png" width="100px;" alt=""/></a></td> </tr> <tr> <td align="center">S001_권승용</td> <td align="center">S018_신민규</td> <td align="center">S032_임현규</td> <td align="center">J106_이승우</td> <td align="center">J129_임영빈</td> </tr> </tbody> </table> <br/>