Проект представляет собой небольшое приложение для поиска треков, использующее API сервиса iTunes. Приложение предоставляет следующую функциональность:
- Поиск треков;
- Добавление и удаление треков в избранное и в плейлисты;
- Просмотр полной информации о треке;
- Прослушивание трека;
- Создание плейлистов;
- Отображение истории прослушенных треков.
Приложение должно поддерживать устройства, начиная с Android 6.0 (minSdkVersion = 23)
При вводе текста в поле поиска происходит поиск треков с помощью сервиса iTunes. Поиск произодится автоматически через 2 секунды после ввода или по нажатию ✅ на клавиатуре. В случае успеха отображает список треков, иначе показывает сообщение об ошибке. Также экран отображает историю последних десяти просмотренных треков с возможностью ее очистить.
На экране можно воспроизвести отрывок трека, добавить его в избранное или в конкретный плейлист. Также на нем отображается вся информация о треке.
Экран поделен на два фрагмента. В первом отображается список избранных треков с возможностью перехода в плеер. Во втором отображается список всех созданных плейлистов с возможностью перехода на экран "Детали плейлиста" и создания нового плейлиста.
На экране присутствует следующий функционал:
- Отображение информации о плейлисте (обложку, название и описание плейлиста, количество треков и общее время);
- Отображение списка треков с возможностью растянуть его на весь экран;
- Поделиться плейлистом текстовым сообщением (название и список треков) в другом приложении;
- Редактировать информацию плейлиста (название, обложка, описание);
- Удалить плейлист;
- При долгом нажатии на трек его можно удалить.
Этот же экран используется создания нового плейлиста. С помощью него можно редактировать название и описание плейлиста и выбирать обложку из изображений, представленных на устройстве.
На экране можно:
- Переключить тему (изначально приложение запускается с темой, выбранной в системе);
- Поделиться приложением (делиться ссылкой);
- Написать в поддержку (заполняет форму обращения в почтовом приложении для связи с разработчиком);
- Посмотреть пользовательское соглашение (открывает браузер с ссылкой на соглашение).
kotlin, sharedpreferences, recyclerview, mvvm, intent, fragment, glide, retrofit2, bottomnavigationview, bottomsheet, mediaplayer, constraint-layout, androidsdk, livedata, koin, room-database, viewpager2, singleactivity, jetpack-navigation-component, corutine-flow.