Android/Side Projects

녹음기 앱 개발하기

화요밍 2022. 1. 31. 19:13
728x90
반응형
Side Projects - Recorder
소리를 녹음하고 재생하는 기본적인 녹음기 앱을 구현한 프로젝트

 

 

GitHub - hwayeon351/Recorder

Contribute to hwayeon351/Recorder development by creating an account on GitHub.

github.com

 


학습 회고

오늘은 우리가 익히 사용하는 녹음기 앱을 만드는 프로젝트를 시작했다.

이번 프로젝트에서 구현할 기능은 녹음하고 녹음한 소리를 재생하고, 리셋 버튼을 클릭해 기존에 녹음한 것을 삭제하는 기본적인 녹음기 앱이 가지고 있는 기능이다.

오늘은 필요한 View 구성요소들을 레이아웃 내에 배치하고, 녹음을 하기 위해 RECORD_AUDIO 권한을 사용자에게 받아오는 로직을 구현했다.


오늘 공부한 내용

  • enum class

enum class는 열거형 클래스로 상수를 집합으로 관리하는데 사용하면 코드의 가독성을 높일 수 있다.

녹음기 앱에서 녹음 버튼을 클릭해서 녹음을 시작하고, 녹음을 완료하고, 녹음한 음성을 재생한다.

따라서 이러한 상태들을 관리해서 버튼에 UI를 적용하고, 버튼을 클릭했을 때 상태에 맞는 기능을 제공해야 한다.

 

이때 필요한 State는 다음과 같다.

  • 녹음 시작 전 - BEFORE_RECORDING
  • 녹음 중 - ON_RECORDING
  • 녹음 완료 - AFTER_RECORDING
  • 재생 중 - ON_PLAYING

이러한 상태값을 효율적으로 활용하기 위해서 enum class를 활용해서 상태들을 선언해줬다.

 

 

  • companion object

companion object는 companion object를 선언한 클래스가 메모리에 적재될 때 함께 생성되는 동반 객체를 의미한다.

따라서, 어떤 클래스의 모든 인스턴스가 공유하는 객체를 만들고 싶을 때 사용하면 좋다.

클래스.Companion으로 접근 할 수 있어 static과 유사한 점이 있다.

또한, 하나의 클래스 내에 하나의 companion object만 사용할 수 있다.

 

녹음 권한을 얻을 때 권한 요청코드를 정의하기 위해서 companion object를 사용하였다.

 

728x90
반응형

'Android > Side Projects' 카테고리의 다른 글

녹음기 앱 개발하기  (0) 2022.02.02
녹음기 앱 개발하기  (0) 2022.02.01
Pomodoro Timer 앱 개발하기  (0) 2022.01.30
Pomodoro Timer 앱 개발하기  (0) 2022.01.29
전자 액자 앱 개발하기  (0) 2022.01.28