본문

[2019.02.10] 122. Android 음악 플레이어 프로젝트 [Refactoring - data]

도입

이번 포스팅에서는 음악 플레이어의 data관련 클래스들을 리팩토링할 예정이다. 

최종 설계를 바탕으로 TO-BE를 확인 후 실습 과정 확인


결과

AS-IS

TO-BE

 

1. Video model 확장 가능성 생각

2. MediaRemoteDataSource 확장 생각


실습

Step1. Package 재구성 및 Rename

 

AS-IS

TO-BE

비교

 

개선사항

해결책

의존성 강함, 확장성 적음

Interface를 통해 의존성 제거, 확장성 증가

변수, 메소드 명이 명확하지 않음

Renaming을 통해 명확화

 

Step2. const -> enum으로 변경

 

AS-IS

TO-BE

비교

1
2
3
4
5
6
object Const {
    const val SORT_AUDIO_BY_ARTIST = "BY_ARTIST"
    const val SORT_AUDIO_BY_TITLE = "BY_TITLE"
    const val SORT_AUDIO_BY_GENRE = "BY_GENRE"
    const val SORT_AUDIO_BY_ALBUM = "BY_ALBUM"
}
cs
1
2
3
4
5
6
enum class AudioSortOrder {
    SORT_AUDIO_BY_ARTIST,
    SORT_AUDIO_BY_TITLE,
    SORT_AUDIO_BY_GENRE,
    SORT_AUDIO_BY_ALBUM
}
cs

개선사항

해결책

Const value 사용 시, 적합하지 않은 값이 입력되어도 컴파일 에러 X

Enum class를 사용하므로 적합하지 않은 값이 입력되면 컴파일 에러 O

Step3. 테스트 코드 작성

지난 Java -> Kotlin으로 변경하는 과정에서 테스트 코드의 중요성을 많이 느꼈다.

그래서 리팩토링을 진행하며 테스트 코드를 작성했다.

 

 

#안드로이드 음악플레이어 #음악 플레이어 개발 #Android MusicPlayer  #앱개발 #모바일앱개발 #어플개발

공유

댓글