프로젝트 개요
잠드림은 사용자의 숙면을 돕기 위해 개인 맞춤형 베개 높이 조절 기능과 숙면에 도움이 되는 향기 방출 기능을 제공하는 앱 서비스입니다.
앱과 베개가 블루투스로 연결되면 BLE 통신이 활성화되며, 앱을 통해 베개의 배터리 상태를 확인할 수 있습니다. 또한, 베개의 높낮이 조절 및 향기 방출 강도를 단계별로 설정할 수 있는 기능을 제공하고 있습니다.
개발 주요 사항
- **react-native-ble-plx** 라이브러리를 이용하여 BLE 앱 개발
- 프로토콜 데이터를 송수신 시 Base64 인코딩 및 디코딩 처리
- MMKV를 이용한 프로토콜 데이터 저장 및 로딩
- Zustand를 이용한 디바이스 정보 상태 관리
- Appstate 변경 시 블루투스 상태(on/off) 감지 및 설정 기능 구현
문제 발생 및 해결 과정
- 디바이스 탐색 속도 개선
- 문제: 블루투스 모듈을 탑재한 주변 기기까지 탐색하여 스마트 에어 베개 탐색 시간 지연 발생
- 해결: 기기명을
ZAMDREAM
로 변경하고, 앱에서 해당 이름의 기기만 탐색하도록 구현
- 결과: 기기 탐색 시간 5초 -> 3초 감소(40% 개선)
- 프로토콜 데이터 송신 이슈 대응
- 문제: 알파벳+숫자 조합의 프로토콜 데이터 송신 시 디바이스 수신 오류 발생
- 해결: 고유 알파벳 조합으로 프로토콜 데이터 규칙을 정의하여 데이터 송신 구현
- 디바이스 셧다운 에러 대응
- 문제: 프로토콜 데이터 전송 중 디바이스 연결 끊김 시 앱에서 상태 감지 불가 문제 발생
- 해결: 에러 발생 시 프로토콜 전송 전 연결 상태를 확인하고, Modal을 통해 연결 끊김 안내 구현
스크린샷