해당 개발은 PL-Coding 강의 The Android Architecture Masterclass를 이용한 음성 녹음 앱입니다.
- 해시태그 엔티티와 기록에 대한 정보인 Echo 엔티티를 분리 및 멀티테이블로 다대다 연결 작업을 통해 Topic의 정보를 가져올 때 Echo의 모든 해시태그 정보를 조회하지 않고 전체 해시태그를 가져올 수 있도록 구현
- MediaRecorder를 이용한 음성녹음 기능 구현을 경험하였으며, Coroutine을 이용한 비동기 작업 처리 진행 경험
- Modifier.pointerInput을 활용한 드래그 기능을 통해 Quick Record 기능 구현
- MVI 아키텍처를 이용한 단방향 흐름(State -> Event -> Effect) 구조를 학습을 통해 UI의 흐름을 직관적으로 판단하여 문제점을 쉽게 발견할 수 있는 장점
- Clean Architecture 준수하여 패키지 분리 및 Mapper를 통한 데이터 변환 기능 경험
- Bundle의 음성 녹음 크기 제한의 문제점과 음성 녹음의 길이를 통일하기 위함 길이 Normalizer기능을 통해 길이에 맞게 녹음 길이 재설정 및 진폭 조절 기능 경험
- 위젯 구현을 통해 앱을 실행하지 않아도 위젯 클릭으로 빠른 녹음 기능 구현
- 음성 녹음 파일을 cache에 저장 후 실제 일기 작성 완료 시 file에 저장 후 cacheDir 초기화 기능 경험
- 다양한 유틸리티 작성 방법 경험(stringResource 관리하기 위한 UiText 구현, 날짜 정보 변환 기능, foreground 상태 여부 판단 기능
| 기술 스택 | |
|---|---|
| 안드로이드 라이브러리 | Compose UI Koin (version 4.0.0) Room (2.7.0) Ksp (version 2.1.20-2.0.0) serialization (version 1.8.1) Timber (version 5.0.1) glance (version 1.1.1) DataStroe |
| 아키텍처 | MVI 아키텍처 |
| 음성 녹음 | 퀵 음성 녹음 | 위젯 녹음 |
|---|---|---|
![]() |
![]() |
![]() |
| 글작성 | 분류 - 감정 | 분류 - Topic |
|---|---|---|
![]() |
![]() |
![]() |





