알람 실행 시 직접 만든 플레이리스트에 있는 음악 목록을 차례대로 재생하는 앱
https://play.google.com/store/apps/details?id=com.sample.alarmplaylist&hl=ko
- android, android studio
- kotlin
- MVVM, Android App Architecture, koin, Room DB, Retrofit2, Glide, AlarmManager, Notification, Coroutine
- BroadcastReceiver, Service
![](https://private-user-images.githubusercontent.com/61993128/300537670-6967ca99-1513-40b9-a70b-8c4cf7400262.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzNTkzMDgsIm5iZiI6MTcyMzM1OTAwOCwicGF0aCI6Ii82MTk5MzEyOC8zMDA1Mzc2NzAtNjk2N2NhOTktMTUxMy00MGI5LWE3MGItOGM0Y2Y3NDAwMjYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODExVDA2NTAwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgwOWNkMTlhMjAyMTEwYzVkOTZiYWIzMzg4YjZiNzg2MjYxOGYyNWJmY2Q4NGRhYmM0MjNhZjJhNWNkY2UxNWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.mLfWoD1JAbUcojxA7lGyl361-qomG-UFjV2hUqP0Tzc)
-
알람
- 알람 기능
- 알람 설정 시 알람음을 플레이리스트로 설정
-
플레이리스트
- 플레이리스트 만들기
- 플레이리스트 이름 변경 및 삭제
- 플레이리스트를 선택하여 유튜브 음악 추가 및 삭제
- 유튜브 비디오 검색 및 실행
|── di
| ├── appModule.kt
| └── ProvideAPI.kt
|
│── presentation
│ ├── add_alarm
│ │ ├── AddAlarmActivity.kt
│ │ └── AddAlarmViewModel.kt
│ ├── add_playlist
│ │ ├── AddPlaylistActivity.kt
│ │ ├── AddPlaylistViewModel.kt
│ │ └── SearchAdapter.kt
│ ├── alarm
│ │ ├── AlarmAdapter.kt
│ │ ├── AlarmFragment.kt
│ │ └── AlarmViewModel.kt
│ ├── notification
│ │ ├── AlarmReceiver.kt
│ │ └── AlarmService.kt
│ ├── play_youtube
│ │ ├── YoutubePlayActivity.kt
│ │ └── YoutubePlayViewModel.kt
│ ├── playlist
│ │ ├── PlaylistAdapter.kt
│ │ ├── PlaylistFragment.kt
│ │ ├── PlaylistViewModel.kt
│ │ └── RenamePlaylistDialog.kt
│ ├── select_playlist
│ │ ├── SelectPlaylistAdapter.kt
│ │ ├── SelectPlaylistDialog.kt
│ │ └── SelectPlaylistViewModel.kt
│ ├── shared_adapters
│ │ └── MusicListAdapter.kt
│ └── MainActivity.kt
│
├── domain
│ ├── alarm
│ │ ├── AddAlarmUseCase.kt
│ │ ├── DeleteAlarmUseCase.kt
│ │ ├── GetAllAlarmsUseCase.kt
│ │ ├── GetLastAlarmUseCase.kt
│ │ └── UpdateAlarmUseCase.kt
│ ├── playlist
│ │ ├── AddPlaylistUseCase.kt
│ │ ├── DeletePlaylistUseCase.kt
│ │ ├── GetAllPlaylistUseCase.kt
│ │ └── UpdatePlaylistUseCase.kt
│ └── youtube
│ ├── AddYoutubeUseCase.kt
│ ├── DeleteYoutubeUseCase.kt
│ ├── GetSelectedYoutubes.kt
│ └── SearchYoutubeUseCase.kt
│
├── data
│ ├── db
│ │ ├── alarm
│ │ │ ├── AlarmDao.kt
│ │ │ └── AlarmDataBase.kt
│ │ ├── playlist
│ │ │ ├── PlaylistDao.kt
│ │ │ └── PlaylistDataBase.kt
│ │ └── youtube
│ │ ├── PlaylistDao.kt
│ │ └── PlaylistDataBase.kt
│ ├── entity
│ │ ├── Alarm.kt
│ │ ├── Playlist.kt
│ │ └── Youtube.kt
│ ├── network
│ │ ├── SearchYoutubeInterface
│ │ └── SearchYoutubeResponse.kt
│ └── repository
│ ├── alarm
│ │ ├── AlarmRepository
│ │ └── AlarmRepositoryImpl.kt
│ ├── playlist
│ │ ├── PlaylistRepository
│ │ └── PlaylistRepositoryImpl.kt
│ └── youtube
│ ├── YoutubeRepository
│ └── YoutubeRepositoryImpl.kt
│
├── AlarmApplication.kt
└── Constants.kt