---
# System prepended metadata

title: iOS06-FlipMate

---

## 서비스 소개


<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/>
