Приложение для поиска, прослушивания и сохранения любимых песен в плейлисты.
Приложение состоит их шести экранов с bottom navigation.
Экран "Поиск"
На этом экране пользователь может искать музыкальные композиции по любому непустому набору слов поискового запроса. Результаты поиска представляют собой список, содержащий краткую информацию о треках.
При вводе нового текста в поле ввода новый поиск начинается с debounce в 2000 миллисекунд. При наличии истории поиска и пустом поле ввода будет отображаться история поиска треков и кнопка "Очистить историю". По клику на трек из поиска или из истроии
пользователь перейдет на экран плеера.
Экран "Плеер"
В плеере пользователь видит обложку трека или плейсхолдер, если обложки нет. На экране есть 3 активные кнопки, кнопка play, кнопка добавить в альбом и добавить в избранное. Для прослушиванию доступны тридцатисекундные демо-треки. Добавление трека в плейлист
осуществляется через меню в bottom sheet, где трек можно добавить в существующий плейлист или создать новый.
Экран "Избранное"
Польователь может добавлять треки в избранное, чтобы быстро вернуться к полюбившейся композиции. При пустом списке избранного отображается соответствующий плейсхолдер. Данные сохраняются с помощью Room.
Экран "Плейлисты"
Пользователь может объединять любимые треки в плейлисты. На этом экране отображается список позданных плейлистов и количество треков в них. У плейлистов есть обложка, название и количество треков. Пользователь может в любой момент создать новый плейлист нажав на кнопку
"Новый плейлист"
Экран "Новый плейлист"
Это экран создания и редактирования плейлистов. Название плейлиста - обязательное поле, а обложка и описание - опциональны. В качестве обложки можно выбрать любой изображение с телефона
Экран "Настройки"
На экране настроек можно выбрать темную или светлую тему, поделиться приложением, написать в поддержку и почитать пользовательское соглашение. Приложение поддерживает портретную и альбомную ориентацию.
- Kotlin
- Clean Architecture
- Koin
- Retrofit
- Room
- SOLID
- MVVM (ViewModel, LiveData)
- RecyclerView
- ViewBinding
- Navigation Component
- Glide
- Coroutines